Flusso di esecuzione
Processo di avvio
Dopo aver eseguito php start.php start
, il flusso di esecuzione è il seguente:
- Carica la configurazione dalla cartella
config/
- Imposta le configurazioni relative al Worker come
pid_file
,stdout_file
,log_file
,max_package_size
, ecc. - Crea il processo webman e ascolta sulla porta (predefinita 8787)
- Crea processi personalizzati in base alla configurazione
- 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 inconfig/autoload.php
, comeapp/functions.php
② Carica i middleware definiti inconfig/middleware.php
(inclusiconfig/plugin/*/*/middleware.php
)
③ Esegue il metodo start delle classi definite inconfig/bootstrap.php
(inclusiconfig/plugin/*/*/bootstrap.php
) per inizializzare alcuni moduli, come la connessione al database di Laravel
④ Carica le rotte definite inconfig/route.php
(inclusiconfig/plugin/*/*/route.php
)
Flusso di gestione delle richieste
- 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
- Determina se l'URL corrisponde a una rotta; se non corrisponde, passa a 3, se corrisponde, passa a 4
- Controlla se le rotte predefinite sono disabilitate; se sì, restituisce 404 (fine della richiesta), altrimenti passa a 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)