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

Demande Laravel au cycle de vie de la réponse

藏色散人
藏色散人avant
2019-11-05 13:51:362020parcourir

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);

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();

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:différence laravel yiiArticle suivant:différence laravel yii