Maison > cadre php > Laravel > Demande Laravel au cycle de vie de la réponse

Demande Laravel au cycle de vie de la réponse

藏色散人
Libérer: 2019-11-05 13:51:36
avant
2259 Les gens l'ont consulté

L'ensemble du processus d'exécution, de la requête Laravel à la réponse, peut être résumé en quatre étapes, à savoir l'étape de préparation du démarrage du programme, l'étape d'instanciation de la demande, l'étape de traitement de la demande, l'envoi de la réponse et l'étape de terminaison du programme.

Phase de préparation au démarrage du programme

Instanciation du conteneur de services

Instanciation et enregistrement de base du conteneur de services, y compris les services Le conteneur lui-même est enregistré, le fournisseur de services de base est enregistré, le nom de la catégorie principale est enregistré et le chemin de base de l'application est enregistré. Le service enregistré n'est qu'un nom de classe spécifique, et l'objet est instancié via le mécanisme de réflexion, et les dépendances dans le constructeur sont automatiquement résolues via le mécanisme de réflexion.

Instanciation de classe principale

L'instanciation de classe principale est un objet d'instanciation automatique du conteneur de service obtenu en enregistrant le service avec le nom de la classe principale après l'instanciation du conteneur de service. Par exemple : Instanciation de la classe noyau dans index.php :

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
Copier après la connexion

Phase d'instanciation de la requête

Une requête est un message de requête envoyé par le client, comprenant la ligne de requête, Request en-tête et entité de requête. Laravel le classe et l'enregistre dans l'objet instance de la classe IlluminateHttpRequest, ce qui signifie convertir la requête en objet instance. La création de l'instance de requête s'effectue via la méthode statique capture() de la classe IlluminateHttpRequest, c'est-à-dire :

$request = Illuminate\Http\Request::capture();
Copier après la connexion

Mais dans la méthode capture(), on peut voir que l'instance de requête de Laravel est créée en fonction de l'instance de requête Symfony de. Symfony instancie les requêtes via les tableaux globaux de PHP $_GET, $_POST, $_COOKIE, $_FILE et $_SERVER comme paramètres.

Phase de traitement des demandes

La phase de traitement des demandes prépare d'abord l'environnement pour le traitement des demandes, y compris le chargement de l'environnement, l'enregistrement du fournisseur de services, etc., puis transmet l'instance de demande via le middleware Contrôle du traitement et de la distribution via le routage et les contrôleurs, le processus de traitement des différentes demandes via les gestionnaires correspondants et de génération de réponses.

Envoi de la réponse et phase de fin du programme

Envoi de la réponse

La classe de traitement des réponses de Laravel est la classe IlluminateHttpResponse, qui est en bas layer est également dans la classe Response de Symfony. L'envoi de la réponse comprend deux parties : l'envoi des informations d'en-tête de réponse et l'envoi du contenu du corps de la réponse.

Terminaison du programme

Dans Laravel, la terminaison du programme termine principalement l'appel du middleware de terminaison.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal