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!