How to get the current logged User in a service
Inject security.token_storage
service into your service, and then use:
$this->token_storage->getToken()->getUser();
as described here: http://symfony.com/doc/current/book/security.html#retrieving-the-user-object and here: http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services
Works with Symfony 3.4, 4.x, 5.x & above. The Security utility class was introduced in Symfony 3.4.
use Symfony\Component\Security\Core\Security;public function indexAction(Security $security){ $user = $security->getUser();}
https://symfony.com/doc/3.4/security.html#always-check-if-the-user-is-logged-in
Using constructor dependency injection, you can do it this way:
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;class A{ private $user; public function __construct(TokenStorageInterface $tokenStorage) { $this->user = $tokenStorage->getToken()->getUser(); } public function foo() { dump($this->user); }}