W moim przypadku utworzyłem nową tabelę w bazie danych, którą można nazwać Domains
na przykład.
Dodaj wszystkie specyficzne funkcje, które mogą być wyświetlane w niektórych domenach, ale nie w pozostałych, jako kolumny tej tabeli jako bit dla wartości boolowskich. Podobnie jak w moim przypadku allow_multiple_bookings
, use_company_card
... cokolwiek.
Następnie zastanów się nad utworzeniem klasy Domain
i odpowiedniego repozytorium i po prostu zapytaj o te wartości w kodzie, próbując wcisnąć jak najwięcej logiki do swojej domeny (model, usługi aplikacji itp.).
Na przykład nie sprawdziłbym metody kontrolera, RequestBooking
czy domena, która żąda rezerwacji, może zażądać tylko jednego lub więcej.
Zamiast tego robię to na urządzeniu, RequestBookingValidatorService
które może sprawdzić, czy data rezerwacji minęła, użytkownik ma włączoną kartę kredytową, ... lub Domena, z której pochodzi ta akcja, może poprosić o więcej niż jedną rezerwację (a następnie, jeśli już ma każdy).
Dodaje to wygodę czytelności, ponieważ przekazałeś tę decyzję swoim usługom aplikacyjnym. Ponadto stwierdzam, że ilekroć potrzebuję nowej funkcji, mogę użyć migracji Laravel (lub Symfony), aby dodać tę funkcję do tabeli, a nawet mogę zaktualizować jej wiersze (twoje domeny) o wartości, które chcę dla tego samego zatwierdzenia, które kodowałem.