リクエストからレスポンスまで

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アプリケーションに共通する終了プロセスを実行します。
※ 不要であれば、無くても構いません

次ページ: 実装時の留意点