Flusso di esecuzione

Processo di avvio

Dopo aver eseguito php start.php start, il flusso di esecuzione è il seguente:

  1. Carica la configurazione dalla cartella config/
  2. Imposta le configurazioni relative al Worker come pid_file, stdout_file, log_file, max_package_size, ecc.
  3. Crea il processo webman e ascolta sulla porta (predefinita 8787)
  4. Crea processi personalizzati in base alla configurazione
  5. Dopo che i processi webman e personalizzati sono stati avviati, esegue la seguente logica (tutte le operazioni sono svolte in onWorkerStart):
    ① Carica i file impostati in config/autoload.php, come app/functions.php
    ② Carica i middleware definiti in config/middleware.php (inclusi config/plugin/*/*/middleware.php)
    ③ Esegue il metodo start delle classi definite in config/bootstrap.php (inclusi config/plugin/*/*/bootstrap.php) per inizializzare alcuni moduli, come la connessione al database di Laravel
    ④ Carica le rotte definite in config/route.php (inclusi config/plugin/*/*/route.php)

Flusso di gestione delle richieste

  1. Controlla se l'URL della richiesta corrisponde a un file statico nella cartella public; se sì, restituisce il file (fine della richiesta), altrimenti passa a 2
  2. Determina se l'URL corrisponde a una rotta; se non corrisponde, passa a 3, se corrisponde, passa a 4
  3. Controlla se le rotte predefinite sono disabilitate; se sì, restituisce 404 (fine della richiesta), altrimenti passa a 4
  4. Trova i middleware corrispondenti al controllore della richiesta e esegue le operazioni predefinite dei middleware in ordine (fase di richiesta del modello a cipolla), esegue la logica di business del controllore, quindi esegue le operazioni postdefinite dei middleware (fase di risposta del modello a cipolla), terminando la richiesta. (Riferimento al modello a cipolla dei middleware)