Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony] Event kernel.request i pobranie instancji aktualnego użytkownika
Forum PHP.pl > Forum > PHP > Frameworki
LowiczakPL
Próbowałem Eventów kernel.request i kernel.response i w żadnym nie udało mi się pobrać instancji zalogowanego użytkownika. Nie znalazłem na ten temat żadnych działających przykładów.

Chciałbym wykonać na Encji użytkownika aktualizację danych przy każdym requescie, idealny do tego wydaje się EventSubscriber kernel.request ale nie widzi zalogowanego usera.

Czy ktoś to już robił, czy jest to w ogóle możliwe?
Pyton_000
A może użyj `kernel.controller` ?

Generalnie z tego co widziałem to kernel.request jest inicjalizowany przed security i musiałbyś zmienić priotity tego drugiego żeby się odpalało przed request.

No i Pokaż kod.
LowiczakPL
Używałem wcześniej kernel.controler ale odniosłem mylne wrażenie może dlatego że sugerowałem się dumpem, a używam debugbara i on coś psuje zwracając pusty token.

Teraz działa idealnie oto kod:

  1. <?php
  2.  
  3. namespace App\EventSubscriber;
  4.  
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\HttpKernel\Event\FilterControllerEvent;
  7. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterfa
    ce;
  8.  
  9. class UserSubscriber implements EventSubscriberInterface
  10. {
  11. public function __construct(TokenStorageInterface $tokenStorage)
  12. {
  13. $this->tokenStorage = $tokenStorage;
  14. }
  15.  
  16. public function onKernelController(FilterControllerEvent $event)
  17. {
  18. if (!empty($this->tokenStorage)) {
  19. if (!empty($this->tokenStorage->getToken())) {
  20. $user = $this->tokenStorage->getToken()->getUser();
  21. dump($user);
  22. }
  23. }
  24. }
  25.  
  26. public static function getSubscribedEvents()
  27. {
  28. return [
  29. 'kernel.controller' => ['onKernelController', 1],
  30. ];
  31. }
  32. }


dzięki

PS. 7 linijka jest prawidłowa tylko forum ją psuje, nie pomaga edycja, w niej jest OK a po zapisie znowu przenosi te 3 znaki do nowej linii
Pyton_000
A to ci ciekawostka biggrin.gif Zepsułeś forum biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.