Процесс выполнения
Процесс запуска
После выполнения команды 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
② Загружается middleware, указанный вconfig/middleware.php
(включаяconfig/plugin/*/*/middleware.php
)
③ Выполняется метод start классов, указанных вconfig/bootstrap.php
(включаяconfig/plugin/*/*/bootstrap.php
), для инициализации некоторых модулей, таких как инициализация соединения с базой данных Laravel
④ Загружается маршрутизация, определенная вconfig/route.php
(включаяconfig/plugin/*/*/route.php
)
Процесс обработки запросов
- Проверяется, соответствует ли URL запроса статическим файлам в
public
; если да, возвращается файл (завершение запроса), если нет, переходит к пункту 2 - Проверяется, попадает ли URL под какой-либо маршрут; если не попадает, переходит к пункту 3, если попадает, переходит к пункту 4
- Проверяется, отключен ли маршрут по умолчанию; если да, возвращается 404 (завершение запроса), если нет, переходит к пункту 4
- Находятся middleware контроллера, сопоставленного запросу, и последовательно выполняются предварительные операции middleware (этап запроса модели лука), выполняется бизнес-логика контроллера, выполняются последующие операции middleware (этап ответа модели лука), запрос завершается. (Смотрите модель лука middleware)