実行フロー

プロセス起動フロー

php start.php start を実行した後のフローは以下の通りです:

  1. config/ 以下の設定を読み込みます
  2. pid_filestdout_filelog_filemax_package_size などの Worker に関連する設定を行います
  3. webman プロセスを作成し、ポートをリッスンします(デフォルトは8787)
  4. 設定に基づいてカスタムプロセスを作成します
  5. webman プロセスとカスタムプロセスが起動後、以下のロジックを実行します(以下はすべて onWorkerStart 内で実行されます):
    config/autoload.php で設定されたファイルを読み込みます(例: app/functions.php
    config/middleware.phpconfig/plugin/*/*/middleware.php を含む)で設定されたミドルウェアを読み込みます
    config/bootstrap.phpconfig/plugin/*/*/bootstrap.php を含む)で設定されたクラスの start メソッドを実行し、一部のモジュールを初期化します。例えば、Laravel のデータベース接続の初期化です
    config/route.phpconfig/plugin/*/*/route.php を含む)で定義されたルートを読み込みます

リクエスト処理フロー

  1. リクエストの URL が public 以下の静的ファイルに対応するかを判断します。該当する場合はファイルを返します(リクエスト終了)、該当しない場合は 2 に進みます
  2. URL に基づいて、特定のルートにヒットするかを判断します。ヒットしない場合は 3 に進み、ヒットした場合は 4 に進みます
  3. デフォルトルートが無効になっているかを判断します。無効になっている場合は 404 を返します(リクエスト終了)、無効になっていない場合は 4 に進みます
  4. リクエストに対応するコントローラーのミドルウェアを見つけ、順番にミドルウェアの前処理を実行します(オニオンモデルのリクエストフェーズ)、コントローラーのビジネスロジックを実行し、ミドルウェアの後処理を実行します(オニオンモデルのレスポンスフェーズ)、リクエストが終了します。(参考:ミドルウェアのオニオンモデル