2011年10月12日水曜日

独学Symfony2 : report3

version : BETA3 (正式リリース後, 改変の可能性あり)

今回も, ドキュメント的には Creating Pages in Symfony2 の続きになります。

Symfony2プロジェクトの構造

一応, 基本的なSymfony2プロジェクトのディレクトリ構造は, 名前かも判るように
Symfony2プロジェクトのディレクトリ構造
  • app/: アプリケーションのコンフィグファイルを含む
  • src/: 作成するソースなどはここに格納
  • vendor/: 様々なvendorファイルを置く場所
  • web/: 公開ディレクトリ, img, css, js などといったのはココ, あとフロントコントローラもここ!
という感じ。

ちなみに, プロジェクトを公開するときは, web/ のフロントコントローラにおいて,
$kernel = new AppKernel('prod', true);
dev環境では見れても, 上記のようにprod環境をtrueにしていないと、prodには反映されないので注意!
(一度prodで実行すると キャッシュが作成され, 以後はそのキャッシュで動くっぽいな。たぶん。)

また, prod 環境の場合, 速度のための最適化が行われ, そのためにキャッシュを作成するようになっている。そのため, もしprodの環境を変更した場合は, 以下のコマンドを実行すること!

rm -rf app/cache/*


Bundleの構造

そして Symfony2 のアプリケーションは, Bundle によって構成されている。この Bundle のディレクトリ構造は以下のようになっている。
Bundle のディレクトリ構造
  • Controller/ : Bundleのコントローラを格納
  • Resources/config/ : コンフィグレーションファイルを格納 (routing.yml などもここに入れます)
  • Resources/views/ テンプレートファイルを置く (コントローラー名/テンプレート名 という形式で)
  • Resources/public/ webディレクトリにシンボリックリンクが作成されるので, ここに img, css, js を置ける
  • Tests/ Bundleのテストをするためのもの


アプリケーションの設定

app/config/を見ると, config.yml だけでなく, config_[prod,dev,text].yml といったように, それぞれの環境に対するコンフィグレーションファイルが存在する。
まず初めに config.ymlが呼ばれ(これは必ず呼ばれる), その後に, AppKernelクラスの registerContainerConfiguration で, 環境に応じた config_[prod,dev,text].yml が呼ばれる。
これにより, 環境に柔軟な設定が可能。


 

0 コメント:

コメントを投稿

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More