Laravel est un framework PHP open source qui fournit une syntaxe concise et élégante, ainsi que de nombreuses fonctions utiles et diverses. Lors du développement d'applications avec Laravel, nous devons souvent effectuer beaucoup de configuration et de fourniture de services. La fourniture de ces configurations et services peut être gérée par l'intermédiaire de fournisseurs de services dans Laravel.
Dans Laravel, les fournisseurs de services sont un outil important pour maîtriser et orchestrer les applications au niveau de l'entreprise. Cela peut nous aider à gérer efficacement des tâches telles que la configuration et l'injection de dépendances des applications Laravel. Mais pour de nombreux débutants de Laravel, le concept de fournisseurs de services est encore un peu inconnu, c'est pourquoi cet article présentera en détail les fournisseurs de services dans Laravel et approfondira leur fonctionnement.
Le fournisseur de services Laravel est un outil d'enregistrement, de maintenance et d'injection de services. Il fournit une méthode de configuration flexible pour les applications Laravel et nous aide à éviter le danger de modifier directement le code principal du framework. Dans Laravel, les fournisseurs de services jouent un rôle clé dans la liaison des composants dans un conteneur. Sa responsabilité est de maintenir les différentes instances de classe, interfaces et dépendances de l'application et de gérer leur cycle de vie.
En termes simples, un fournisseur de services est une classe qui fournit des services à une application. Ces services peuvent aller des connexions de bases de données à des bibliothèques tierces, en passant par des services personnalisés tels que des services de messagerie, des services de paiement, etc.
Dans Laravel, les fournisseurs de services peuvent être divisés en trois types différents :
Les fournisseurs de services d'application (fournisseurs de services d'application) sont les composants essentiels des applications Laravel Fournisseur de services principal. Ils sont utilisés pour enregistrer divers services au démarrage de l'application. Si votre application utilise de nombreuses bibliothèques tierces, une série de fournisseurs de services seront enregistrés pour être utilisés au démarrage de l'application.
Dans une application Laravel, chaque fournisseur de services applicatifs doit hériter de la classe IlluminateSupportServiceProvider. De plus, chaque fournisseur de services applicatifs doit implémenter les méthodes register() et boot().
Dans la méthode register(), les fournisseurs de services d'application sont généralement principalement utilisés pour enregistrer des services spécifiques dans le conteneur Laravel. Dans la méthode boot(), le fournisseur de services d'application démarre généralement l'application à l'aide de n'importe quel service enregistré.
Les fournisseurs de services de packages sont un composant réutilisable dans Laravel. Ils ressemblent à des fournisseurs de services d’application, mais avec une réutilisabilité et une commodité supplémentaires. Si vous écrivez un package et souhaitez le publier en tant que package Composer, utilisez un fournisseur de services de package.
Dans la structure de fichiers par défaut de Laravel, chaque fournisseur de services de package doit être placé dans le dossier src/ et nommé ServiceProvider.php. De même, chaque fournisseur de services de packages doit implémenter la méthode register() et la méthode boot().
Les fournisseurs de services Middleware sont une méthode d'enregistrement middleware pratique fournie par Laravel. Un fournisseur de services middleware peut enregistrer tous les middlewares via une simple définition de classe sans avoir à enregistrer chaque middleware au milieu du fournisseur de services d'application ou de package.
Les fournisseurs de services middleware héritent d'IlluminateFoundationSupportProvidersMiddlewareServiceProvider. Cette classe est essentiellement un simple fournisseur de services Laravel qui étend la méthode de registre. Comme d'autres fournisseurs de services, les fournisseurs de services middleware peuvent également utiliser l'attribut routeMiddleware pour enregistrer le middleware et spécifier des alias pour le middleware via la méthode $this->app['router']->aliasMiddleware().
Le fournisseur de services de Laravel est démarré au démarrage du framework et il enregistre tous les services dans le conteneur. Toute tentative d'une application pour accéder à ces services échouera jusqu'à ce que le fournisseur de services soit enregistré.
Lorsque le framework démarre, Laravel chargera automatiquement toutes les classes de fournisseurs de services et enregistrera les services correspondants dans le conteneur. Le conteneur Laravel est un puissant conteneur d'injection de dépendances chargé d'instancier les classes, de gérer les dépendances entre les classes et d'analyser et d'injecter automatiquement les dépendances de classe.
Lorsqu'une classe nécessite une dépendance, le conteneur injectera automatiquement la dépendance demandée. Par exemple, si vous avez besoin d'une instance de la classe Mailer, le conteneur recherche tous les fournisseurs de services enregistrés auprès du conteneur pour trouver la classe et l'instancier. Si la classe Mailer nécessite d'autres dépendances, le conteneur résoudra également automatiquement ces dépendances jusqu'à ce que la classe soit complètement instanciée.
Dans la méthode register(), le fournisseur de services doit enregistrer le service dans le conteneur. Un service peut aller d’une connexion à une base de données à une classe personnalisée avec une logique personnalisée.
Avec les prestataires de services, le conteneur Laravel peut automatiquement résoudre et injecter les dépendances requises lors de l'enregistrement de ces services. Ces dépendances peuvent être d'autres services, classes, interfaces, etc. Une fois que les prestataires de services de l'application ont terminé leur enregistrement, diverses classes dispersées dans l'application peuvent s'appuyer sur ces services pour réaliser une application plus faiblement couplée.
Les prestataires de services Laravel sont les outils clés pour maîtriser les composants d'une application Laravel. Il gère les instances de classe, les interfaces et les dépendances dans l'application et nous aide à gérer efficacement des tâches telles que la configuration et l'injection de dépendances des applications Laravel. Nous pouvons utiliser trois types différents de fournisseurs de services pour gérer les services : les fournisseurs de services d'application, les fournisseurs de services de packages et les fournisseurs de services middleware.
Bien que les débutants puissent prendre un certain temps pour comprendre le fonctionnement des fournisseurs de services, une fois que vous aurez ces connaissances, cela vous aidera à simplifier grandement la gestion et la maintenance de votre application Laravel.
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!