Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wspólna logika dla różnych poziomów użytkowników
markonix
post 1.11.2017, 02:27:51
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Może jest na to jakiś pattern lub chociaż dobra praktyka.

Mamy grupę prostych operacji CRUD w oparciu o zestaw: kontroler na wszystkie akcje (index, create, update, delete), walidacja, widoki, warstwa biznesowa (zapytania do bazy). Do tego ewentualnie tłumaczenia do widoków ale to mniej istotne.
Te akcje mogą być wykonywane przez użytkowników np. nauczycieli na ich poziomie (czyli mogą dodać ucznia, zmienić dane klasy itp.).

Teraz chciałbym dodać takie same możliwości dyrektorowi, który ma osobny panel typu sekretariat.
Zastanawiam się jak to ugryźć aby uniknąć nadmiernej duplikacji kodu.
Między operacją dokonaną przez dyrektora, a nauczyciela są różnice np. przy dodawaniu ucznia nauczyciel nie wybiera do jakiej klasy bo tą ma przyisaną, a dyrektor musi wybrać z listy select klasę.
Ta różnica ma wpływ na widok, walidację, reszta jest praktycznie taka sama.

Póki co w Laravel mam wydzielone do osobnych klas walidację (choć muszę tutaj jeszcze dodać ten jeden warunek) oraz wydzieloną logikę biznesową do repozytorium/eloquent. Pozostaje duplikacja kodu w widokach i kontrolerach. Widoki nie wiem? Wydzielić form do osobnych widoków i includować? A logika kontrolerów? Jedyne co mi przychodzi do głowy to jakieś osobne klasy lub traits.

Jakieś Wasze doświadczenia?

Ten post edytował markonix 1.11.2017, 02:29:59


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 07:32