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