Ausführungsablauf
Prozessstartablauf
Nach dem Ausführen von php start.php start erfolgt der folgende Ablauf:
- Laden der Konfigurationen unter config/
- Setzen der Worker-bezogenen Konfigurationen wie
pid_file,stdout_file,log_file,max_package_sizeusw. - Erstellen des webman-Prozesses und Abhören des Ports (Standard: 8787)
- Erstellen benutzerdefinierter Prozesse basierend auf der Konfiguration
- Nach dem Start von webman-Prozess und benutzerdefinierten Prozessen wird folgende Logik ausgeführt (alles innerhalb von
onWorkerStart):
① Laden der inconfig/autoload.phpdefinierten Dateien, z.B.app/functions.php
② Laden der inconfig/middleware.php(inkl.config/plugin/*/*/middleware.php) definierten Middlewares
③ Ausführen derstart-Methode der inconfig/bootstrap.php(inkl.config/plugin/*/*/bootstrap.php) definierten Klassen zur Modulinitialisierung, z.B. Laravel-Datenbankverbindung
④ Laden der inconfig/route.php(inkl.config/plugin/*/*/route.php) definierten Routen
Anfragebehandlungsablauf
- Prüfen, ob die Anfrage-URL einer statischen Datei unter public entspricht. Wenn ja, Datei zurückgeben (Anfrage beenden). Andernfalls zu Schritt 2.
- Prüfen, ob die URL eine Route trifft. Wenn nicht, zu Schritt 3; wenn ja, zu Schritt 4.
- Prüfen, ob die Standardroute deaktiviert ist. Wenn ja, 404 zurückgeben (Anfrage beenden). Wenn nicht, zu Schritt 4.
- Middlewares des angefragten Controllers ermitteln, Middleware-Voroperationen der Reihe nach ausführen (Onion-Modell Anfragephase), Controller-Geschäftslogik ausführen, Middleware-Nachoperationen ausführen (Onion-Modell Antwortphase) und Anfrage abschließen. (Siehe Middleware-Onion-Modell)