Proceso de Ejecución
Proceso de Inicio del Proceso
Después de ejecutar php start.php start
, el flujo de ejecución es el siguiente:
- Cargar la configuración en
config/
. - Configurar las opciones relevantes de Worker, como
pid_file
,stdout_file
,log_file
,max_package_size
, etc. - Crear el proceso de webman y escuchar en el puerto (por defecto 8787).
- Crear procesos personalizados según la configuración.
- Después de que se inicien el proceso de webman y los procesos personalizados, se ejecuta la siguiente lógica (todo esto se ejecuta en
onWorkerStart
):
① Cargar los archivos configurados enconfig/autoload.php
, comoapp/functions.php
.
② Cargar los middleware configurados enconfig/middleware.php
(incluyendoconfig/plugin/*/*/middleware.php
).
③ Ejecutar el métodostart
de las clases configuradas enconfig/bootstrap.php
(incluyendoconfig/plugin/*/*/bootstrap.php
), que se utiliza para inicializar algunos módulos, como la conexión de la base de datos de Laravel.
④ Cargar las rutas definidas enconfig/route.php
(incluyendoconfig/plugin/*/*/route.php
).
Proceso de Manejo de Solicitudes
- Comprobar si la URL de la solicitud corresponde a un archivo estático en
public
; si es así, devolver el archivo (finalizar solicitud); si no, ir a 2. - Determinar si la URL coincide con alguna ruta; si no coincide, ir a 3, si coincide, ir a 4.
- Comprobar si las rutas por defecto están desactivadas; si es así, devolver 404 (finalizar solicitud); si no, ir a 4.
- Encontrar los middleware correspondientes al controlador de la solicitud, ejecutar las operaciones de preprocesamiento de los middleware en orden (fase de solicitud del modelo de cebolla), ejecutar la lógica del negocio del controlador, y ejecutar las operaciones de postprocesamiento de los middleware (fase de respuesta del modelo de cebolla); la solicitud termina. (Ver referencia en Modelo de Cebolla de Middleware)