FOSUserBundle to pakiet służący do zarządzania użytkownikami i kontrolą ich uprawnień. Najczęściej wykorzystywany jest w CMS-ach (systemach zarządzania treścią). W skład pakietu wchodzą m.in.:

  • logowanie,
  • rejestracja,
  • przypomnienie hasła,
  • resetowanie hasła,
  • dodawanie nowych użytkowników.

Poniżej przedstawię krok po kroku, w jaki sposób zainstalować i skonfigurować (w Symfony 4) pakiet FOSUserBundle.
 

1. INSTALACJA PAKIETU FOSUserBundle

lub poprzez plik composer.phar:

Jeśli na końcu instalacji otrzymasz taki wyjątek:
„The child node „db_driver” at path „fos_user” must be configured.
to nie przejmuj się, tzn., że pakiet nie jest jeszcze skonfigurowany. Tak czy siak, FOSUserBUndle jest zainstalowany 🙂
 

2. KONFIGURACJA

Tworzymy klasę User.php (src/Entity/User.php). Klasa dziedziczy wszystkie składowe z klasy bazowej BaseUser pakietu FOSUserBundle. Przyda nam się potem do wygenerowania tabeli user. Oczywiście, klasę tą możesz rozszerzyć o własne / dodatkowe pola, w zależności od potrzeb Twojej aplikacji.

Aktualizujemy plik routes.yaml (/config/routes.yaml), w którym wskazujemy adres do trasowania.

Jak widać importujemy i włączamy wszystkie (all.xml) pliki routingu. Możesz również sam zdecydować, które trasy włączyć / wyłączyć, korzystając z poszczególnych plików konfiguracji routingu. Szczegóły znajdziesz tutaj.

Dodaj do pliku framework.yaml (/config/packages/framework.yaml) renderowanie szablonów w PHP. Domyślnie Symfony korzysta z szablonów Twiga. Oczywiście możesz korzystać z dowolnego silnika.

Edytuj zawartość pliku security.yaml (/config/packages/security.yaml) do postaci:

Jest to pewien standard, dlatego nie będziemy się w to zagłębiać 😉
W komentarzach masz linki do dokumentacji.

W kolejnym kroku, utwórz plik fos_user.yaml (/config/packages/fos_user.yaml) i skopiuj do niego zawartość:

Na koniec zaktualizujemy bazę danych. W tym celu wywołaj z wiersza poleceń komendę, która wygeneruje tabelę user z klasy User.php:

Jeśli wszystko przeszło bez problemów to uruchom w przeglądarce internetowej strony z formularzami do logowania i rejestracji:

localhost:8000/public/index.php/login

localhost:8000/public/index.php/register

Skorzystaj z gotowego formularza i stwórz pierwszego użytkownika.
Symfony udostępnia również szereg poleceń do tworzenia użytkowników i ich ról: symfony.com/doc/2.0/bundles/FOSUserBundle/command_line_tools.html.

Poniższe polecenie utworzy użytkownika z nazwą username, hasłem: password i adresem e-mail: email@localhost.com:

Nadanie roli „administratora” (ROLE_ADMIN) użytkownikowi username jest równie proste:

Więcej informacji o pakiecie FOSUserBUndle przeczytasz na oficjalnej stronie projektu Symfony: symfony.com/doc/current/bundles/FOSUserBundle/index.html

I to wszystko 😉

W kolejnym poście: NADPISYWANIE SZABLONÓW BUNDLI dowiesz się, w jaki sposób poprawić widok obskurnego logowania poprzez dodanie własnych stylów i atrybutów do znaczników formularza.

nadpisywanie widoków, szablonów