Maison cadre php Laravel Comment utiliser le conteneur Laravel

Comment utiliser le conteneur Laravel

May 26, 2023 pm 12:36 PM

Laravel est un framework PHP très populaire qui offre de nombreuses fonctionnalités pratiques, dont les conteneurs. Le conteneur Laravel est un système d'injection de dépendances qui nous permet de gérer facilement les instances d'objets dans notre application. Dans cet article, nous découvrirons le conteneur Laravel et comment l'utiliser.

  1. Qu'est-ce que le conteneur Laravel

Le conteneur Laravel est un conteneur IoC, qui est un conteneur d'injection de dépendances. Il s'agit d'un registre qui permet une gestion aisée des objets dans les applications. Ces objets peuvent être n'importe quoi, notamment des services, des middlewares, des contrôleurs, des modèles, etc.

L'utilisation du conteneur Laravel présente deux avantages principaux :

  • Code facile à gérer
  • Facile à tester
  1. Comment utiliser le conteneur Laravel

Le conteneur Laravel peut être facilement utilisé dans les applications. Tout d’abord, nous devons comprendre l’un des concepts fondamentaux des conteneurs : la liaison.

Binding

La liaison est le processus de liaison d'une classe ou d'une interface dans un conteneur. Lorsque nous avons besoin d’une instance liée, le conteneur la fournit. Dans Laravel, la liaison se fait à l'aide de la méthode bind/bindShared. La méthode bind lie une instance, tandis que la méthode bindShared lie un singleton.

Par exemple, nous souhaitons lier une classe d'opérations de base de données. Nous pouvons le lier au conteneur en utilisant le code suivant dans Laravel :

App::bind('db', function()
{
    return new Database;
});
Copier après la connexion

Cela liera une classe appelée "db" et chaque fois que nous appellerons "db", le conteneur renverra une nouvelle connexion.

Injection de dépendances

L'injection de dépendances est l'une des principales fonctionnalités du conteneur Laravel. Il s'agit de transmettre des dépendances à un objet au lieu de les instancier à l'intérieur de l'objet.

Par exemple, nous avons un contrôleur qui nécessite un objet de base de données comme paramètre. Nous pouvons utiliser l'injection de dépendances pour le transmettre au contrôleur :

class UserController extends Controller {

    protected $db;

    public function __construct(Database $db)
    {
        $this->db = $db;
    }

    public function index()
    {
        $users = $this->db->table('users')->get();
        return view('users.index', compact('users'));
    }

}
Copier après la connexion
Copier après la connexion

Dans cet exemple, nous utilisons l'injection de dépendances pour transmettre un objet de base de données instancié au contrôleur. Cette opération est effectuée automatiquement par le conteneur Laravel.

Dans Laravel, vous pouvez utiliser deux méthodes pour l'injection de dépendances. L’une est l’injection de constructeur et l’autre est l’injection de méthode. L'exemple de code ci-dessus utilise l'injection de constructeur.

Injection de méthode

L'injection de méthode est une autre méthode d'injection de dépendance. Il peut injecter des instances de classes dans des méthodes selon les besoins.

Par exemple, nous avons une classe qui gère les utilisateurs, qui a une méthode getUser, qui nécessite une instance de la classe Auth. On peut injecter cette instance dans le paramètre de la méthode :

class UserService {

    public function getUser(Auth $auth)
    {
        return $auth->user();
    }

}
Copier après la connexion

Dans cet exemple, lorsque l'on appelle la méthode getUser, le conteneur Laravel injectera automatiquement une instance de la classe Auth.

  1. Scénarios d'application du conteneur Laravel

Le conteneur Laravel peut être utilisé dans de nombreux scénarios. Voici quelques scénarios typiques :

  • Fournisseur de services

Le fournisseur de services est l'un des concepts couramment utilisés dans les conteneurs Laravel. C'est une classe qui fournit des services à une application. Par exemple, dans Laravel, nous pouvons enregistrer un fournisseur de services en utilisant le code suivant :

class AppServiceProvider extends ServiceProvider {

    public function boot()
    {
        //
    }

    public function register()
    {
        $this->app->bind('db', function()
        {
            return new Database;
        });
    }

}
Copier après la connexion

Dans le code ci-dessus, nous lions un service nommé "db" qui renverra une nouvelle connexion à la base de données.

  • Middleware

Middleware est une classe appelée pendant le processus de traitement des requêtes Laravel. Dans le middleware, nous pouvons modifier ou améliorer les requêtes et réponses HTTP. Nous pouvons injecter un middleware dans l'application à l'aide du conteneur Laravel :

class ExampleMiddleware {

    public function handle($request, Closure $next)
    {
        // 处理请求
        $response = $next($request);

        // 处理响应
        return $response;
    }

}
Copier après la connexion

Dans le code ci-dessus, nous avons défini un middleware appelé SampleMiddleware qui gérera les requêtes et les réponses HTTP.

  • Controller

Le contrôleur Laravel est une classe utilisée pour gérer les requêtes HTTP. Nous pouvons utiliser le conteneur Laravel pour injecter des contrôleurs dans l'application :

class UserController extends Controller {

    protected $db;

    public function __construct(Database $db)
    {
        $this->db = $db;
    }

    public function index()
    {
        $users = $this->db->table('users')->get();
        return view('users.index', compact('users'));
    }

}
Copier après la connexion
Copier après la connexion

Dans le code ci-dessus, nous instancions et injectons une classe de base de données dans le contrôleur UserController.

  1. Résumé

Le conteneur Laravel est un puissant conteneur d'injection de dépendances. Cela nous permet de gérer facilement les instances d'objets et rend notre code plus facile à tester et à étendre. Dans les applications Laravel, nous pouvons utiliser des conteneurs pour effectuer de nombreuses tâches telles que l'enregistrement des fournisseurs de services, des middlewares et des contrôleurs. Si vous souhaitez en savoir plus sur les conteneurs Laravel, consultez la documentation officielle de 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!

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Quel est le meilleur, Django ou Laravel? Quel est le meilleur, Django ou Laravel? Mar 28, 2025 am 10:41 AM

Django et Laravel sont tous deux des frameworks à pile. Django convient aux développeurs Python et à la logique métier complexe, tandis que Laravel convient aux développeurs PHP et à la syntaxe élégante. 1.Django est basé sur Python et suit la philosophie "Battery-Complete", adaptée au développement rapide et à une grande concurrence. 2.Laravel est basé sur PHP, mettant l'accent sur l'expérience du développeur et convient aux projets de petite et moyenne taille.

Laravel et le backend: alimentation logique d'application Web Laravel et le backend: alimentation logique d'application Web Apr 11, 2025 am 11:29 AM

Comment Laravel joue-t-il un rôle dans la logique backend? Il simplifie et améliore le développement backend par le biais de systèmes de routage, d'éloquente, d'authentification et d'autorisation, d'événements et d'auditeurs et d'optimisation des performances. 1. Le système de routage permet la définition de la structure d'URL et demande la logique de traitement. 2.Lao-éloquente simplifie l'interaction de la base de données. 3. Le système d'authentification et d'autorisation est pratique pour la gestion des utilisateurs. 4. L'événement et l'écoute implémentent la structure de code couplée de manière lâche. 5. L'optimisation des performances améliore l'efficacité de l'application par la mise en cache et la file d'attente.

Quel est le meilleur PHP ou Laravel? Quel est le meilleur PHP ou Laravel? Mar 27, 2025 pm 05:31 PM

PHP et Laravel ne sont pas directement comparables, car Laravel est un cadre basé sur PHP. 1.Php convient aux petits projets ou à un prototypage rapide car il est simple et direct. 2. Laravel convient à de grands projets ou à un développement efficace car il offre des fonctions et des outils riches, mais a une courbe d'apprentissage abrupte et peut ne pas être aussi bon que PHP pur.

Laravel est-il un frontend ou un backend? Laravel est-il un frontend ou un backend? Mar 27, 2025 pm 05:31 PM

LaravelisabackendFrameworkBuiltonPhp, conçue pourwebapplicationdevelopment.itfocusonServer-sidelogic, databasemanagement, andapplicationsstructure, andcanbenegrategratedwithfrontentechnologies likevue.jsorrectForfull-stackdevelopment.

Exemple d'introduction de Laravel Exemple d'introduction de Laravel Apr 18, 2025 pm 12:45 PM

Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

Comment apprendre Laravel comment apprendre Laravel gratuitement Comment apprendre Laravel comment apprendre Laravel gratuitement Apr 18, 2025 pm 12:51 PM

Vous voulez apprendre le cadre de Laravel, mais ne souffrez pas de ressources ni de pression économique? Cet article vous fournit un apprentissage gratuit de Laravel, vous apprenant à utiliser des ressources telles que les plateformes en ligne, les documents et les forums communautaires pour jeter une base solide pour votre parcours de développement PHP de la mise en place de maîtrise.

Polyvylity de Laravel: des sites simples aux systèmes complexes Polyvylity de Laravel: des sites simples aux systèmes complexes Apr 13, 2025 am 12:13 AM

Le projet de développement de Laravel a été choisi en raison de sa flexibilité et de sa puissance pour répondre aux besoins de différentes tailles et complexités. Laravel fournit un système de routage, Eloquentorm, une ligne de commande artisanale et d'autres fonctions, soutenant le développement de blogs simples aux systèmes complexes au niveau de l'entreprise.

Fonction de connexion de l'utilisateur de Laravel Fonction de connexion de l'utilisateur de Laravel Apr 18, 2025 pm 12:48 PM

Laravel fournit un cadre Auth complet pour implémenter les fonctions de connexion des utilisateurs, notamment: définir des modèles d'utilisateurs (modèle éloquent), créant des formulaires de connexion (moteur de modèle de lame), rédaction des contrôleurs de connexion (héritage de l'authentification \ loginContrôleur), vérifiant les demandes de connexion (Auth :: tentative) Redirection après la connexion de la connexion, la limitation de la sécurité). De plus, le cadre Auth fournit également des fonctions telles que la réinitialisation des mots de passe, l'enregistrement et la vérification des e-mails. Pour plus de détails, veuillez consulter la documentation de Laravel: https://laravel.com/doc

See all articles