![]() |
|
Getting Started with symfony環境 |
|
You are currently reading "Getting Started with symfony" which is licensed under the Creative Commons Attribution-Share Alike 3.0 Unported License license.

|
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. |
web/ディレクトリを見てみると、2つのPHPファイル: index.phpとfrontend_dev.phpが見つかります。
これらのファイルはフロントコントローラーと呼ばれます:
アプリケーションへのすべてのリクエストはこれらを通して行われます。
しかしなぜアプリケーションごとにフロントコントローラーを2つ用意するのでしょうか?
両方のファイルは同じアプリケーションを指し示しますが環境は異なります。 運用サーバーで直接開発する場合を除いて、アプリケーションを開発するとき、複数の環境が必要です:
環境を使いわける基準は何でしょうか? たとえば開発環境では、アプリケーションはデバッグ作業を楽にするためにリクエストの詳細をすべてログに記録する必要がありますが、 コードへのすべての変更が即座に反映されるようにするためにキャッシュシステムを無効にしなければなりません。 ですので、開発環境は開発用に最適化しなければなりません。 最良の例は例外が起きるときです。 開発者が問題を速くデバッグするのを手助けするために、symfonyは現在のリクエストに関するすべての情報を持つ例外をブラウザーに表示します:

しかし開発環境では、キャッシュレイヤーは有効にしなければならず、もちろんアプリケーションは生の例外の代わりにカスタマイズされたエラーメッセージを表示しなければなりません。 ですので、運用環境ではパフォーマンスとユーザーエクスペリエンスのために最適化しなければなりません。

フロントコントローラーのファイルを開くと、環境設定以外の内容が同じであることがわかります:
// web/index.php <?php require_once(dirname(__FILE__).'/../config/ProjectConfiguration.class.php'); $configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false); sfContext::createInstance($configuration)->dispatch();
Webデバッグツールバーも環境の使い方のすばらしい例です。 これは開発環境のすべてのページに存在し、異なるタブをクリックすることでたくさんの情報: 現在のアプリケーションの設定、現在のリクエスト用のログ、データベースエンジンで実行されるSQLステートメント、メモリの情報と時間の情報にアクセスできます。
If you find a typo or an error, please register and open a ticket.
If you need support or have a technical question, please post to the official user mailing-list.