2011年05月04日

symfony導入メモ3 モジュール作成、config、ルーティング設定などなど

・ symfony1.,4系にてアプリ作成するときは
インストールしたフォルダにて。
php symfony generate:app アプリ名

・ モジュールやら作るときは
インストールしたフォルダにて。
php symfony generate:module アプリ名 モジュール名

んで、私の場合は
アプリのmodelsやらconfigsやらは、ルートディレクトリの外側において、
web以下の中身だけはルートディレクトリ以下に置きたい、と考えているので、
できあがったディレクトリのうち、webディレクトリ以下だけルートディレクトリに移動させた。

========================================
↓これはルートディレクトリの外側
apps/ プロジェクトのすべてのアプリケーションを格納する
cache/ フレームワークによってキャッシュされるファイル
config/ プロジェクトの設定ファイル
lib/ プロジェクトのライブラリとクラス
log/ フレームワークのログファイル
plugins/ インストールされたプラグイン
test/ ユニットテストと機能テストのファイル

↓WEBディレクトリはルートディレクトリ以下に置きたい
web/ Web 公開ルートディレクトリ
========================================

・ symfony起動時のアプリ指定
web以下の
index.phpにて
$configuration = ProjectConfiguration::getApplicationConfiguration('アプリ名', 'prod', false);

こーんな感じで、アプリを指定すれば、
ウェブルートに来たときに指定したアプリを起動するようになる。
(デフォルトでは、defaultってなってたと思う)


・ ルーティング設定
初期起動時のモジュール、アクションを設定する
symfonyインストールディレクトリ/apps/アプリ名/config/routing.yml

# default rules
homepage:
url: /
param: { module: モジュール名, action: アクション名 }


・ キャッシュの消し方
index_dev.phpではキャッシュを作らないけどindex.phpだとキャッシュ作るから、キャッシュを消さないと正しく表示されないことがある。
なのでキャッシュを消す。
php symfony cc
でキャッシュは消える。

・ urlから「index.php」を消したい
デフォルトでは、link_toなどのリンクヘルパーを使ったらフロントコントローラーの名前を出力する。これは格好悪い!というときは
app/モジュール名/config/settings.ymlの

prod:
.settings:
no_script_name: false



prod:
.settings:
no_script_name: true


・ symfonyでmod_rewrite
/apps/アプリ名/config/routing.ymlにて

任意の名前:
url: /:任意の変数名/*
param: { module: 呼び出したいモジュール名, action: 呼び出したいアクション名 }
requirements: { urlのところで指定した任意の変数名: 正規表現 }

ってかんじで指定する。

☆具体例(半角数字のURLの場合は都道府県モジュールを起動させる)

pref:
url: /:p/*
param: { module: pref, action: index }
requirements: { p: ^\d+$ }

※ただし、デフォルトで記述されてあるルーティング設定より前に記述すること。そうでないと設定が反映されない。
ラベル:symfony rooting Setting PHP
posted by 名無し at 11:16| Comment(0) | symfony | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。