Flusso di esecuzione
Flusso di avvio del processo
Dopo l'esecuzione di php start.php start, il flusso di esecuzione è il seguente:
- Caricare le configurazioni sotto config/
- Impostare le configurazioni relative al Worker come
pid_file,stdout_file,log_file,max_package_size, ecc. - Creare il processo webman e ascoltare sulla porta (predefinita: 8787)
- Creare processi personalizzati in base alla configurazione
- Dopo l'avvio del processo webman e dei processi personalizzati, viene eseguita la seguente logica (tutto all'interno di
onWorkerStart):
① Caricare i file impostati inconfig/autoload.php, comeapp/functions.php
② Caricare i middleware impostati inconfig/middleware.php(inclusiconfig/plugin/*/*/middleware.php)
③ Eseguire il metodostartdelle classi impostate inconfig/bootstrap.php(inclusiconfig/plugin/*/*/bootstrap.php) per inizializzare i moduli, come la connessione al database Laravel
④ Caricare le rotte definite inconfig/route.php(inclusiconfig/plugin/*/*/route.php)
Flusso di gestione delle richieste
- Verificare se l'URL della richiesta corrisponde a un file statico sotto public. Se sì, restituire il file (fine della richiesta). Altrimenti, procedere al passo 2.
- Determinare se l'URL corrisponde a una rotta. Se non corrisponde, procedere al passo 3; se corrisponde, procedere al passo 4.
- Verificare se la rotta predefinita è disabilitata. Se sì, restituire 404 (fine della richiesta). Altrimenti, procedere al passo 4.
- Trovare i middleware del controller corrispondente alla richiesta, eseguire le operazioni preliminari dei middleware in ordine (fase di richiesta del modello a cipolla), eseguire la logica di business del controller, eseguire le operazioni successive dei middleware (fase di risposta del modello a cipolla) e terminare la richiesta. (Vedere il modello a cipolla dei middleware)