• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Logowanie użytkowników różnych kategorii | Symfony 3.4 i Doctrine 2

0 głosów
44 wizyt
pytanie zadane 18 października 2018 w PHP, Symfony, Zend przez Tom K Nowicjusz (190 p.)

Cześć,

Tworzę aplikację w Symfony 3.4 i Doctrine 2 i napotkałem pewien problem. Otóż podzieliłem użytkowników na różne kategorie i każdy ma swoją Entity. Kiedy użytkownik chce się zalogować za pomocą formularza zawierającego nick oraz hasło muszę sprawdzić każde entity (de facto tabelę w bazie danych). Problem polega na tym, że nie chcę robić tego ręcznie, bo mogę dodać różne typy użytkowników w przyszłości, a nie chcę za każdym razem modyfikować klasy, która dokonuje sprawdzenia. Jak najlepiej rozwiązać ten problem?

Rozwiązania które przyszły mi na myśl, oraz komentarze odnośnie koncepcji działania klas odpowiedzialnych za obsługę operacji na użytkownikach zawarłem w komentarzach kodu. Najlepiej moim zdaniem przeanalizować jego działanie zaczynając od metody kontrolera registerAction() w pliku UsersController.php, gdyż jest ona (pomijając pewne poprawki) ukończona i dodałem tam obszerne komentarze. Dopiero potem proponuję przejść do kontrolera loginAction().

Proszę bardziej doświadczonych kolegów koderów o sugestie i zarazem jestem bardzo ciekaw Waszych opinii i pomysłów.

Jestem początkującym koderem i jest to moja pierwsza aplikacja w symfony i doctrine. Będę więc bardzo wdzięczny za uwagi dotyczące nie tylko problemu z logowaniem, ale też samego kodu, organizacji klas, oceny pomysłu na zarządzanie użytkownikami, i wszelkich innych uwag jakie przyjdą Wam do głowy.

Zastanawiam się też jaki typ powiązania łączy klasę UsersManager z UserManagerComponent. Czy jest to kompozycja, czy agregacja?

Zamieszczam link do repozytorium na github zawierający omawianą część aplikacji:
https://github.com/Tomasz-Kolasa/UsersManager

Serdecznie pozdrawiam wszystkie życzliwe osoby i z góry dziękuję za pomoc i uwagi!

1 odpowiedź

+1 głos
odpowiedź 18 października 2018 przez Ehlert Mędrzec (162,040 p.)
wybrane 18 października 2018 przez Tom K
 
Najlepsza

Skoro użytkownicy to kilka encji, toto wykorzystaj discriminator. Wyodrębnij wspólne cechy do jednej klasy.

Na Twoim miejscu nie realizowałbym sam logowania. Symfony udostępnia mnóstwo opcji: Security, firewall. Możesz skorzystać z Fosuserbundle. Masz możliwość również napisania customowych guardów, userproviderów itp itd. Ale tego typu akcje na pewno nie w kontrolerach.

Ostatnia rada to komentarze. Porzuć je na rzecz dokumentacji. Oczywiście w języku ang. W necie masz mnóstwo przykładów.

komentarz 18 października 2018 przez Tom K Nowicjusz (190 p.)
Cześć,

Dzięki za szybką odpowiedź, w najbliższym czasie zapoznam się z sugerowanymi tematami.

Co do logowania to nie miałem zamiaru realizować go w kontrolerze. Wnioskuję, że nie widziałeś kodu.

Komentarze były w angielskim, ale zmieniłem na Polski przed wrzuceniem na forum. To mój pierwszy post więc nie wiem co lepsze. Poczytam też o dokumentacji. Przyznam jednak że do tej pory o nie myślałem o jej prowadzeniu. Uznałem że na potrzeby kilku klas i forum komentarze wystarczą.

Jeszcze raz dzięki za odpowiedź, Twoje uwagi i sugestie są dla mnie bardzo cenne.
komentarz 24 października 2018 przez Tom K Nowicjusz (190 p.)

@Ehlert,  discriminator jak najbardziej fajna sprawa, ale w moim przypadku raczej nie przyda mi się posiadanie kilku encji użytkowników jeśli pójdę w rozwiązanie z Fosuserbundle, ponieważ Fosuserbundle wspiera tylko jedną encję User. Próbowałem użyć PUGXMultiUser Bundle, ale okazało się, że nie jest już wspierane i nie działa z Symfony 3.4. Chyba pozostaje mi tylko zrezygnować z FOSUserBundle jeśli zamierzam mieć różne kategorie użytkowników, chyba że masz inny pomysł?...

Podobne pytania

0 głosów
1 odpowiedź 56 wizyt
0 głosów
1 odpowiedź 92 wizyt
0 głosów
1 odpowiedź 98 wizyt
pytanie zadane 20 sierpnia 2017 w PHP, Symfony, Zend przez marcin99b Maniak (62,870 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

63,144 zapytań

109,387 odpowiedzi

228,533 komentarzy

42,575 pasjonatów

Przeglądających: 201
Pasjonatów: 14 Gości: 187

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...