Flujo de ejecución
Flujo 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 el Worker con opciones como
pid_file
,stdout_file
,log_file
,max_package_size
, etc. - Crear el proceso webman y escuchar en el puerto (por defecto 8787)
- Crear procesos personalizados según la configuración
- Una vez que el proceso webman y los procesos personalizados se inician, se ejecuta la lógica siguiente (todo se ejecuta en onWorkerStart):
- Cargar los archivos configurados en
config/autoload.php
, comoapp/functions.php
- Cargar los middleware configurados en
config/middleware.php
(incluyendo los definidos enconfig/plugin/*/*/middleware.php
) - Ejecutar las clases definidas en
config/bootstrap.php
(incluyendo las definidas enconfig/plugin/*/*/bootstrap.php
) para inicializar algunos módulos, como la inicialización de la base de datos de Laravel - Cargar las rutas definidas en
config/route.php
(incluyendo las definidas enconfig/plugin/*/*/route.php
)
- Cargar los archivos configurados en
Flujo de manejo de solicitudes
- Verificar si la URL de la solicitud corresponde a un archivo estático en la carpeta public. Si es así, devolver el archivo (fin de la solicitud). Si no, ir al paso 2.
- Determinar si la URL coincide con alguna ruta. Si no, pasar al paso 3. Si sí, pasar al paso 4.
- Verificar si se ha deshabilitado la ruta predeterminada. Si es así, devolver un error 404 (fin de la solicitud). Si no, pasar al paso 4.
- Encontrar los middleware correspondientes al controlador de la solicitud, ejecutar las operaciones previas a los middleware en orden (fase de solicitud del modelo cebolla), ejecutar la lógica del controlador, ejecutar las operaciones posteriores a los middleware (fase de respuesta del modelo cebolla) y finalizar la solicitud. (Consultar el modelo cebolla de middleware)