Flujo de ejecución
Flujo de inicio del proceso
Tras ejecutar php start.php start, el flujo de ejecución es el siguiente:
- Cargar las configuraciones bajo 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
- Tras iniciar el proceso webman y los procesos personalizados, se ejecuta la siguiente lógica (todo dentro de
onWorkerStart):
① Cargar los archivos definidos enconfig/autoload.php, comoapp/functions.php
② Cargar los middlewares definidos enconfig/middleware.php(incluyendoconfig/plugin/*/*/middleware.php)
③ Ejecutar el métodostartde las clases definidas enconfig/bootstrap.php(incluyendoconfig/plugin/*/*/bootstrap.php) para inicializar módulos, como la conexión de base de datos de Laravel
④ Cargar las rutas definidas enconfig/route.php(incluyendoconfig/plugin/*/*/route.php)
Flujo 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 (fin de la solicitud). Si no, pasar al paso 2.
- Determinar si la URL coincide con alguna ruta. Si no coincide, pasar al paso 3; si coincide, pasar al paso 4.
- Comprobar si la ruta por defecto está deshabilitada. Si es así, devolver 404 (fin de la solicitud). Si no, pasar al paso 4.
- Encontrar los middlewares del controlador correspondiente a la solicitud, ejecutar las operaciones previas de los middlewares en orden (fase de solicitud del modelo cebolla), ejecutar la lógica del controlador, ejecutar las operaciones posteriores de los middlewares (fase de respuesta del modelo cebolla) y finalizar la solicitud. (Consulte el modelo cebolla de middleware)