Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] Event kernel.request i pobranie instancji aktualnego użytkownika
LowiczakPL
post 6.05.2019, 22:12:32
Post #1





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


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?

Ten post edytował LowiczakPL 6.05.2019, 22:13:18


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
Pyton_000
post 7.05.2019, 07:39:50
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
LowiczakPL
post 7.05.2019, 22:07:23
Post #3





Grupa: Zarejestrowani
Postów: 531
Pomógł: 55
Dołączył: 3.01.2016
Skąd: Łowicz

Ostrzeżenie: (0%)
-----


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

Ten post edytował LowiczakPL 7.05.2019, 22:10:34


--------------------
Szukam zleceń Symfony, Laravel, Back-End, Front-End, PHP, MySQL ...
Go to the top of the page
+Quote Post
Pyton_000
post 8.05.2019, 08:15:38
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A to ci ciekawostka biggrin.gif Zepsułeś forum biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.03.2024 - 07:50