Guide de l'injection des dépendances dans les contrôleurs

Guide de l'injection des dépendances dans les contrôleurs


Les façades de Laravel présentent une interface simple aux classes les plus utiles de la base de code de Laravel. Vous pouvez obtenir des informations sur la demande actuelle et la contribution des utilisateurs, la session, les caches et bien plus encore.

Mais si vous préférez injecter vos dépendances, ou si vous souhaitez utiliser un service qui n'a pas de façade, vous devrez trouver un moyen d'apporter des cas de ces classes dans votre contrôleur.

Toutes les méthodes de contrôleur (y compris les constructeurs) sont résolues dans le conteneur de Laravel, ce qui signifie tout ce que vous tapez que le conteneur sait comment résoudre sera automatiquement injecté.

Comme bel exemple, et si vous préférez avoir une instance de l'objet de demande au lieu d'utiliser la façade? Juste TypeHint iluminate \ http \ request dans les paramètres de votre méthode:]

Public Function Store (\ illuminate \ http \ request $ request)

$ organisation = nouvelle organisation;
$ organisation-> name = $ request-> input ('name');
$ organisation-> ans = $ demande-> entrée («années»);
$ organisation-> sauver ();
redirection de retour («organisations»);

Ainsi, vous avez défini un paramètre qui doit être transmis dans la méthode du magasin (). Et puisque vous l'avez fait l'origine, et puisque Laravel sait comment résoudre ce nom de classe, vous allez avoir l'objet de demande prêt à utiliser dans votre méthode sans travail de votre part. Aucune contrainte explicite, rien d'autre - c'est juste là comme la variable de demande $.

BTW, c'est en fait ainsi que moi et de nombreux autres développeurs Laravel préfèrent obtenir l'entrée de l'utilisateur: injectez une instance de la demande et lisez l'entrée de l'utilisateur à partir de là, au lieu de compter sur la façade d'entrée.