Maison cadre php Laravel Quel est le processus de démarrage de Laravel

Quel est le processus de démarrage de Laravel

Apr 23, 2023 am 09:10 AM

Laravel est un framework open source PHP populaire. Son processus de démarrage est similaire à d'autres frameworks et nécessite certaines préparations. Cet article présentera en détail le processus de démarrage de Laravel.

1. Fichier d'entrée index.php

Le fichier d'entrée de Laravel est index.php Toutes les requêtes entreront dans le framework via ce fichier. Dans index.php, nous pouvons voir l'extrait de code suivant :

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/

$app = require_once __DIR__.'/../bootstrap/app.php';
Copier après la connexion

Ce commentaire explique la fonction du code. Vous pouvez également voir que require_once introduit le fichier bootstrap/app.php, qui est le fichier de démarrage de Laravel.

2. Fichier de démarrage bootstrap/app.php

Dans le fichier app.php, on peut principalement voir l'instanciation de trois classes clés : $app, $kernel, $router. Présentons-les un par un ci-dessous.

  1. $app

$app est une instance de la classe IlluminateFoundationApplication et constitue le cœur de l'ensemble du framework. Il gère le conteneur de l'application Laravel et fournit de nombreuses fonctions puissantes, telles que le routage, le traitement des requêtes, les événements, les cookies. , et les sessions, la gestion des exceptions, etc. Voyons ensuite comment $app est initialisé.

Dans le constructeur de $app, il hérite d'abord de la classe IlluminateContainerContainer et génère une instance de conteneur. Dans cette instance de conteneur, nous pouvons lier et injecter les services dont nous avons besoin.

Ensuite, il enregistrera tous les services de conteneurs de base de Laravel, tels que le routage, les journaux, les vues, etc.

Enfin, il chargera les fichiers de configuration de Laravel, qui sont stockés dans le répertoire de configuration, et les placera dans les propriétés de l'instance $app.

  1. $kernel

$kernel est une instance de l'interface IlluminateContractsHttpKernel. Il s'agit du noyau HTTP de Laravel et est responsable du traitement de toutes les requêtes HTTP. C'est un pont entre les demandes de connexion et les réponses. La fonction principale de $kernel est d'appeler le middleware demandé, de transmettre la requête au routeur et enfin de transmettre la réponse au client.

Une fois $app instancié, il appellera la méthode $app->make(), puis obtiendra l'instance $kernel via la résolution du conteneur. Dans ce processus, le conteneur de $app analysera la configuration $config['app']['middleware'] et enregistrera le middleware, puis stockera le middleware dans l'instance de $kernel.

  1. $router

$router est une instance de la classe IlluminateRoutingRouter, qui est le routeur de Laravel et gère toutes les résolutions et distributions de routes. La fonction principale de $router est de faire correspondre la requête avec l'opération correspondante et de stocker la route à traiter pour la requête dans les propriétés de l'instance de requête.

Une fois $app instancié, il générera une instance de routeur en utilisant la configuration correspondante et l'enregistrera dans le conteneur Laravel via la méthode d'instance de l'instance $app.

De plus, il convient de mentionner que $app liera l'instance de requête et les autres instances associées au conteneur pour une utilisation par le middleware, le routage et les contrôleurs. Une fois la liaison du conteneur terminée, Laravel a terminé le travail de préparation.

3. Requêtes de planification

Dans Laravel, le processus de planification des requêtes est le suivant :

1. Lancez une requête HTTP depuis le client.

2. La requête passe d'abord par le fichier public/index.php de Laravel et est transmise au fichier bootstrap/app.php.

3. Dans le fichier bootstrap/app.php, Laravel génère des instances de $app, $kernel et $router et lie l'instance de requête au conteneur. Ensuite, $app appellera la méthode handle de $kernel pour gérer la requête.

4. Dans la méthode handle de $kernel, Laravel analyse et appelle le middleware enregistré en séquence via le conteneur, puis transmet la requête au routeur.

5. Dans le routeur, Laravel extrait l'URI de la requête et le compare à toutes les routes définies dans l'instance du routeur. Si une route correspondante est trouvée, Laravel passe le contrôle au contrôleur approprié.

6. Le contrôleur est le gestionnaire principal de la requête. Il appelle le code de logique métier pour traiter la requête et renvoie finalement le résultat au client en réponse.

7. Si le routeur ne trouve pas de route correspondante, il transmettra la requête au gestionnaire d'erreurs.

8. Dans le gestionnaire d'erreurs, Laravel générera une réponse correspondante et la renverra au client en fonction du type d'erreur et de la configuration.

Ce qui précède est le processus complet d'une requête Laravel. En ayant une compréhension approfondie du processus de démarrage de Laravel et du processus de planification des demandes, nous pouvons mieux comprendre son architecture interne et ses principes de fonctionnement, et ainsi mieux l'utiliser pour gérer notre activité.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment construire une API RESTful avec des fonctionnalités avancées à Laravel? Comment construire une API RESTful avec des fonctionnalités avancées à Laravel? Mar 11, 2025 pm 04:13 PM

Cet article guide la construction d'API Robust Laravel Restful. Il couvre la configuration du projet, la gestion des ressources, les interactions de base de données, la sérialisation, l'authentification, l'autorisation, les tests et les meilleures pratiques de sécurité cruciale. Aborder l'évolutivité chall

Comment mettre en œuvre l'authentification et l'autorisation OAuth2 dans Laravel? Comment mettre en œuvre l'authentification et l'autorisation OAuth2 dans Laravel? Mar 12, 2025 pm 05:56 PM

Cet article détaille la mise en œuvre d'authentification et d'autorisation OAuth 2.0 dans Laravel. Il couvre à l'aide de packages comme les solutions de ligue / oauth2-serveur ou spécifiques au fournisseur, mettant l'accent sur la configuration de la base de données, l'enregistrement du client, la configuration du serveur d'autorisation

Comment utiliser les composants de Laravel pour créer des éléments d'interface utilisateur réutilisables? Comment utiliser les composants de Laravel pour créer des éléments d'interface utilisateur réutilisables? Mar 17, 2025 pm 02:47 PM

L'article discute de la création et de la personnalisation des éléments d'interface utilisateur réutilisables dans Laravel à l'aide de composants, offrant les meilleures pratiques pour l'organisation et suggérant des packages améliorant.

Comment créer et utiliser des directives de lame personnalisées à Laravel? Comment créer et utiliser des directives de lame personnalisées à Laravel? Mar 17, 2025 pm 02:50 PM

L'article discute de la création et de l'utilisation des directives de lame personnalisées à Laravel pour améliorer les modèles. Il couvre la définition des directives, les utilisant dans des modèles et les gérer dans de grands projets, mettant en évidence des avantages tels que l'amélioration de la réutilisabilité du code et R

Quelles sont les meilleures pratiques pour utiliser Laravel dans un environnement natif du cloud? Quelles sont les meilleures pratiques pour utiliser Laravel dans un environnement natif du cloud? Mar 14, 2025 pm 01:44 PM

L'article traite des meilleures pratiques pour déployer Laravel dans des environnements natifs du cloud, en se concentrant sur l'évolutivité, la fiabilité et la sécurité. Les problèmes clés incluent la conteneurisation, les microservices, la conception sans état et les stratégies d'optimisation.

Comment puis-je créer et utiliser des règles de validation personnalisées dans Laravel? Comment puis-je créer et utiliser des règles de validation personnalisées dans Laravel? Mar 17, 2025 pm 02:38 PM

L'article discute de la création et de l'utilisation de règles de validation personnalisées dans Laravel, offrant des étapes pour les définir et les mettre en œuvre. Il met en évidence des avantages tels que la réutilisabilité et la spécificité et fournit des méthodes pour étendre le système de validation de Laravel.

Quelles sont les meilleures façons de gérer les téléchargements de fichiers et le stockage cloud dans Laravel? Quelles sont les meilleures façons de gérer les téléchargements de fichiers et le stockage cloud dans Laravel? Mar 12, 2025 pm 05:54 PM

Cet article explore des stratégies optimales de téléchargement de fichiers et de stockage cloud dans Laravel. Il examine le stockage local vs fournisseurs de cloud (AWS S3, Google Cloud, Azure, DigitalOcean), mettant l'accent sur la sécurité (validation, désinfection, HTTPS) et Performance Opti

Comment utiliser la console artisanale de Laravel pour automatiser les tâches courantes? Comment utiliser la console artisanale de Laravel pour automatiser les tâches courantes? Mar 17, 2025 pm 02:39 PM

La console artisanale de Laravel automatise des tâches comme la génération de code, l'exécution de migrations et la planification. Les commandes clés incluent la marque: contrôleur, migrer et db: graines. Les commandes personnalisées peuvent être créées pour des besoins spécifiques, améliorant l'efficacité du flux de travail.

See all articles