Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Symfony][SF2] Dlaczego nie mam klasy FOSUserEvents?
Forum PHP.pl > Forum > PHP > Frameworki
Foxx
Podczas rejestracji użytkownika chciałbym mu nadać odgórnie uprawnienia. Zorientowałem się, że chyba najlepszym sposobem będzie zastosowanie EventListenera i skopiowałem odpowiedni kod z dokumentacji FOSUserBundle: "Hooking into the controllers". W międzyczasie zauważyłem, że w dokumentacji jest napisane "All events can be found in the constants of the FOS\UserBundle\FOSUserEvents class." ale ja tej klasy nie widzę. No i po podłączeniu listenera sprawa wróciła bo dostaję błąd: "FatalErrorException: Error: Class 'FOS\UserBundle\FOSUserEvents' not found".

Będę wdzięczny za podpowiedzi dlaczego mogę nie mieć tego pliku oraz co teraz można zrobić.

pedro84
Która wersja bundla? Bo z tym się już spotkałem na GH: https://github.com/FriendsOfSymfony/FOSUserBundle/issues/945
Foxx
Faktycznie, wygląda na to, że to wersja 1.3.1, a więc rzeczywiście w tej wersji obsługi events jeszcze nie ma.

Czy w takim razie lepiej zrezygnować z events i po prostu nadpisać kontroler czy zrobić upgrade FOSUB? Wersja Symfony to 2.2.

Jeżeli lepiej zrobić upgrade to w jaki sposób można za pomocą composera to zrobić?

pedro84
Jeśli chcesz mieć wersję z gałęzi 2.x, to w Composerze wystarczy (sekcja require):
Kod
"friendsofsymfony/user-bundle": "dev-master"

Ja w dwóch nowych projektach używam właśnie wersji 2.x bundla.

Możesz to też zrobić tworząć listener dla encji. Możesz też wdrożyć swoje eventy i nadpisać kontroler bundla. W sumie, lepsze chyba będzie użycie eventów. Masz trzy wyjścia wink.gif
Foxx
Wielkie dzięki. Faktycznie udało się w ten sposób zainstalować wersję 2.x.

A w jaki sposób zdobyłeś wiedzę w jak to zrobić? Czy to jest jakaś specyficzna wiedza dotycząca composera?
pedro84
Z repozytorium FOSUserBundle, konkretnie tego zagadnienia, które Ci podałem. Tam właśnie masz info, że eventy będą dopiero w wersji 2.x, która wydana jeszcze nie została.
Foxx
Tak, tak, to przeczytałem ale chodziło mi bardziej o tą cenną informację, że można w composerze wpisać "dev-master" - przyszło mi coś takiego do głowy i wpisywałem tam 2.0, 2.* ale nie działało. Ale chyba już widzę, że należało poczytać więcej o composerze.
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-2025 Invision Power Services, Inc.