実行フロー
プロセス起動フロー
php start.php start を実行した後の流れは以下の通りです:
- config/ 以下の設定を読み込む
- Worker 関連の設定を行う(
pid_file、stdout_file、log_file、max_package_sizeなど) - webman プロセスを作成し、ポート(デフォルト: 8787)で待ち受ける
- 設定に基づいてカスタムプロセスを作成する
- webman プロセスおよびカスタムプロセスが起動後、以下のロジックを実行する(いずれも
onWorkerStart内で実行):
①config/autoload.phpで設定されたファイルを読み込む(例:app/functions.php)
②config/middleware.php(config/plugin/*/*/middleware.phpを含む)で設定されたミドルウェアを読み込む
③config/bootstrap.php(config/plugin/*/*/bootstrap.phpを含む)で設定されたクラスのstartメソッドを実行し、Laravel データベース接続の初期化などモジュールを初期化する
④config/route.php(config/plugin/*/*/route.phpを含む)で定義されたルートを読み込む
リクエスト処理フロー
- リクエスト URL が public 以下の静的ファイルに対応するか判定する。対応する場合はファイルを返す(リクエスト終了)。対応しない場合は 2 へ
- URL が何らかのルートにマッチするか判定する。マッチしない場合は 3 へ、マッチする場合は 4 へ
- デフォルトルートが無効になっているか判定する。無効の場合は 404 を返す(リクエスト終了)。有効の場合は 4 へ
- リクエストに対応するコントローラのミドルウェアを特定し、ミドルウェアの前処理を順に実行(オニオンモデル要求段階)、コントローラのビジネスロジックを実行、ミドルウェアの後処理を実行(オニオンモデル応答段階)してリクエストを終了する。(ミドルウェアのオニオンモデルを参照)