Quello che ho fatto nel mio caso è stata la creazione di una nuova tabella nel database, Domains
ad esempio è possibile chiamarla .
Aggiungi tutte le funzionalità specifiche, quelle che potrebbero essere mostrate su alcuni domini ma non negli altri, come colonne per quella tabella come bit per valori booleani. Come, nel mio caso allow_multiple_bookings
, use_company_card
... qualunque cosa.
Quindi, considera la possibilità di creare una classe Domain
e il relativo repository e chiedi semplicemente questi valori sul tuo codice, cercando di spingere il più possibile quella logica nel tuo dominio (modello, servizi applicativi, ecc.).
Ad esempio, non farei il controllo sul metodo del controller RequestBooking
se il dominio che richiede una prenotazione può richiederne solo uno o più.
Invece lo faccio su un dispositivo RequestBookingValidatorService
che può verificare se il datetime di prenotazione è passato, l'utente ha una carta di credito abilitata, ... o il dominio da cui proviene questa azione è autorizzato a richiedere più di una prenotazione (e quindi se ha già qualunque).
Questo aggiunge la praticità della leggibilità, poiché hai spinto questa decisione ai tuoi servizi applicativi. Inoltre, trovo che ogni volta che ho bisogno di una nuova funzionalità posso usare le migrazioni Laravel (o Symfony) per aggiungere quella funzione sulla tabella e potrei anche aggiornare le sue righe (i tuoi domini) con i valori che desidero sullo stesso commit che ho codificato.