Wspólna logika dla różnych poziomów użytkowników |
Wspólna logika dla różnych poziomów użytkowników |
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 -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 27.05.2024 - 03:57 |