WEBブラウザからリクエストを受け、レスポンスを返すまでの一連の処理を解説します。
lmd は、下記のステップで処理を実行していきます。
実行順
0. <DOCUMENT_ROOT>/index.php
1. Lambda/Lambda.init.php
2. Lambda/apps/apps.conf.php
3. Lambda/apps/<APP_DIR>/app.conf.php
4. new Lambda();
4.1 Lambda/apps/<APP_DIR>/app.env.php
5. Lambda/apps/apps.init.php
6. Lambda/apps/<APP_DIR>/app.init.php
7. Lambda/apps/<APP_DIR>/<MODULES>
8. Lambda/apps/<APP_DIR>/app.fini.php
9. Lambda/apps/apps.fini.php
太字は必ず実行されるプロセスです。 – 0, 1, 4, 7
それ以外は、ファイルが存在しなければ処理をスキップします。
.
0. <DOCUMENT_ROOT>/index.php
すべてのリクエストは、ドキュメントルートに設置されたディスパッチャ(フロントコントローラー)である index.php が引き受けます。
※ http://example.com/subdir/ のように、サブディレクトリで運用する場合は、
サブディレクトリにディスパッチャを設置します。
1. Lambda/Lambda.init.php
lmd の初動プロセスを実行します。
エラーハンドラーの登録やコンポーネントのロードを行います。
2. Lambda/apps/apps.conf.php
複数のWEBアプリケーションに共通する設定ファイルを読み込みます。
設定は定数で定義することを推奨します。
※ 不要であれば、無くても構いません
3. Lambda/apps/<APP_DIR>/app.conf.php
WEBアプリケーションの設定ファイルを読み込みます。
設定は定数で定義することを推奨します。
セッションを利用する場合は、ここで session.* 系の設定を定義することが推奨されます。
※ 不要であれば、無くても構いません
4. new Lambda();
lmd を初期化します。
ここで、インスタンス「$lmd」が作られます。
4.1 Lambda/apps/<APP_DIR>/app.env.php
WEBアプリケーションの環境設定ファイルを読み込みます。
代表的な設定項目は下記になります。
- デバッグモード(開発モード/本番モード)の切替
- session_start の設定
- モバイルに対する動作設定
※ 不要であれば、無くても構いません
5. Lambda/apps/apps.init.php
複数のWEBアプリケーションに共通する初動プロセスを実行します。
※ 不要であれば、無くても構いません
6. Lambda/apps/<APP_DIR>/app.init.php
WEBアプリケーションの初動プロセスを実行します。
※ 不要であれば、無くても構いません
7. Lambda/apps/<APP_DIR>/<MODULE>
リクエストに対応するモジュールを実行します。
このフェーズで、HTTPヘッダーおよびHTTPボディーをブラウザに返します。
- モジュールが存在しない場合は、404モジュールに処理を委譲します。
- 不正なリクエストの場合は、400モジュールに処理を委譲します。
8. Lambda/apps/<APP_DIR>/app.fini.php
WEBアプリケーションの終了プロセスを実行します。
※ 不要であれば、無くても構いません
9. Lambda/apps/apps.fini.php
複数のWEBアプリケーションに共通する終了プロセスを実行します。
※ 不要であれば、無くても構いません