Heim > Artikel > PHP-Framework > Laravel-Anfrage-zu-Antwort-Lebenszyklus
Der gesamte Ausführungsprozess von der Laravel-Anfrage bis zur Antwort kann in vier Phasen zusammengefasst werden, nämlich die Phase der Vorbereitung des Programmstarts, die Phase der Anforderungsinstanziierung, die Phase der Anforderungsverarbeitung, das Senden der Antwort und die Phase der Programmbeendigung.
Vorbereitungsphase für den Programmstart
Service-Container-Instanziierung
Instanziierung und grundlegende Registrierung des Service-Containers, einschließlich der Dienste Der Container selbst wird registriert, der Basisdienstanbieter wird registriert, der Kernkategoriename wird registriert und der Basispfad der Anwendung wird registriert. Der registrierte Dienst ist nur ein bestimmter Klassenname, und das Objekt wird über den Reflexionsmechanismus instanziiert, und die Abhängigkeiten im Konstruktor werden automatisch über den Reflexionsmechanismus aufgelöst.
Kernklasseninstanziierung
Kernklasseninstanziierung ist ein automatisches Instanziierungsobjekt des Dienstcontainers, das durch Registrieren des Dienstes mit dem Kernklassennamen nach der Instanziierung des Dienstcontainers erhalten wird. Beispiel: Kernel-Klasseninstanziierung in index.php:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
Request-Instanziierungsphase
Eine Anfrage ist eine vom Client gesendete Anfragenachricht, einschließlich der Anfragezeile „Request“. Header und Anforderungsentität. Laravel klassifiziert und speichert es im Instanzobjekt der IlluminateHttpRequest-Klasse, was bedeutet, dass die Anfrage in ein Instanzobjekt umgewandelt wird. Die Erstellung der Anforderungsinstanz wird über die statische Methode „capture()“ der IlluminateHttpRequest-Klasse abgeschlossen, d die Symfony-Anfrageinstanz von. Symfony instanziiert Anfragen über die globalen Arrays $_GET, $_POST, $_COOKIE, $_FILE und $_SERVER von PHP als Parameter.
AnforderungsverarbeitungsphaseDie Anforderungsverarbeitungsphase bereitet zunächst die Umgebung für die Anforderungsverarbeitung vor, einschließlich Laden der Umgebung, Registrierung des Dienstanbieters usw., und übergibt dann die Anforderungsinstanz durch die Middleware Verarbeitungs- und Verteilungssteuerung durch Routing und Controller, der Prozess der Verarbeitung verschiedener Anfragen durch entsprechende Handler und der Generierung von Antworten.
Antwortsende- und ProgrammbeendigungsphaseAntwortsende
Laravels Antwortverarbeitungsklasse ist die IlluminateHttpResponse-Klasse, die unten Die Schicht befindet sich auch in der Response-Klasse von Symfony. Das Senden der Antwort umfasst zwei Teile: das Senden der Antwort-Header-Informationen und das Senden des Antworttextinhalts.
ProgrammbeendigungIn Laravel schließt das Beenden des Programms hauptsächlich den Aufruf der Beendigungs-Middleware ab.
Das obige ist der detaillierte Inhalt vonLaravel-Anfrage-zu-Antwort-Lebenszyklus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!