Процесс выполнения
Процесс запуска
После выполнения команды 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)