実行フロー
プロセスの起動フロー
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 に進みます
- リクエストに対応するコントローラのミドルウェアを見つけ、順番にミドルウェアの前処理を実行します(オニオンモデルのリクエスト段階)、コントローラのビジネスロジックを実行し、ミドルウェアの後処理を実行します(オニオンモデルの応答段階)、リクエストを終了します。(ミドルウェアのオニオンモデルを参照)