Nous savons tous que LaravelL'ensemble du processus d'exécution, de la requête à la réponse, peut être principalement divisé en quatre étapes : 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 fin du programme ; Alors, qu’est-ce qui est inclus dans chaque étape ? Jetons un bref aperçu de l'ensemble du cycle de vie du framework laravel, de la requête à la réponse.
Phase de préparation au démarrage du programme
Instanciation du conteneur de service
L'instanciation et l'enregistrement de base du conteneur de services comprennent l'enregistrement du conteneur de services lui-même, l'enregistrement du fournisseur de services de base, l'enregistrement du nom de la catégorie principale et l'enregistrement du chemin de base de l'application. 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 classe noyau dans index.php :
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
Phase d'instanciation de la requête
La requête est celle envoyée par le client Request message, y compris la ligne de demande, l'en-tête de demande et l'entité de demande. 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 dans l'instance de requête Symfony Créé sur la base 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 le processus de traitement des instances de demande via un middleware et le contrôle de distribution via le routage et les contrôleurs, de sorte que différentes demandes soient traitées via les gestionnaires correspondants et que des réponses soient générées.
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 IlluminateHttpResponse
classe, la couche inférieure de cette classe se trouve é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 représente l'intégralité du contenu de cet article. Pour plus de contenu sur Laravel, veuillez prêter attention au didacticiel Démarrage de Laravel Framework.
Articles connexes recommandés :
Présentation d'images du cycle de vie PHP, tutoriel PHP life cycle_PHP
[ Laravel 5.2 Documentation] Architecture -- le cycle de vie d'une requête
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!