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:

  1. Cargar la configuración en config/.
  2. Configurar las opciones relevantes de Worker, como pid_file, stdout_file, log_file, max_package_size, etc.
  3. Crear el proceso de webman y escuchar en el puerto (por defecto 8787).
  4. Crear procesos personalizados según la configuración.
  5. 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 en config/autoload.php, como app/functions.php.
    ② Cargar los middleware configurados en config/middleware.php (incluyendo config/plugin/*/*/middleware.php).
    ③ Ejecutar el método start de las clases configuradas en config/bootstrap.php (incluyendo config/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 en config/route.php (incluyendo config/plugin/*/*/route.php).

Proceso de Manejo de Solicitudes

  1. 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.
  2. Determinar si la URL coincide con alguna ruta; si no coincide, ir a 3, si coincide, ir a 4.
  3. Comprobar si las rutas por defecto están desactivadas; si es así, devolver 404 (finalizar solicitud); si no, ir a 4.
  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)