Comment obtenir l'utilisateur actuellement connecté dans un service
Dans Symfony 2.8/3.0, avec notre nouvelle fantaisie composants de sécurité, comment puis-je obtenir actuellement connecté User
(c'est à dire FOSUser) de l'objet dans un service sans l'injection de l'ensemble du conteneur?
Est-il possible, dans un non-hacky façon?
PS: il ne faut pas considérer la "le passer à la fonction de service en tant que paramètre" pour être trivialement évident. Aussi, sale.
source d'informationauteur xDaizu
Vous devez vous connecter pour publier un commentaire.
Injecter
security.token_storage
service dans votre service, et ensuite utiliser:comme décrit ici: http://symfony.com/doc/current/book/security.html#retrieving-the-user-object et ici: http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services
À l'aide du constructeur de l'injection de dépendance, vous pouvez le faire de cette façon:
si vous classe étendre de Contrôleur de
Ou, si vous avez accès à l'élément conteneur..
http://symfony.com/blog/new-in-symfony-2-6-security-component-improvements
De
Symfony 3.3
à partir d'un seul Contrôleurselon cet article de blog: https://symfony.com/blog/new-in-symfony-3-2-user-value-resolver-for-controllersC'est simple comme:
Symfony ne ce dans Symfony\Bundle\FrameworkBundle\ControllerControllerTrait
Donc, si vous simplement injecter et remplacer
security.token_storage
vous êtes bon pour aller.