In meinem Fall habe ich eine neue Tabelle in der Datenbank erstellt, die Sie beispielsweise aufrufen können Domains
.
Fügen Sie alle spezifischen Funktionen, die in einigen Domänen angezeigt werden könnten, aber nicht in den übrigen, als Spalten für diese Tabelle als Bit für boolesche Werte hinzu. Wie, in meinem Fall allow_multiple_bookings
, use_company_card
... was auch immer.
Ziehen Sie dann in Betracht, eine Klasse Domain
und ihr jeweiliges Repository zu erstellen , und fragen Sie einfach nach diesen Werten in Ihrem Code. Versuchen Sie dabei, diese Logik so weit wie möglich in Ihre Domäne (Ihr Modell, Ihre Anwendungsdienste usw.) zu übertragen.
Zum Beispiel würde ich die Controller-Methode nicht überprüfen, RequestBooking
ob die Domain, die eine Buchung anfordert, nur eine oder mehrere anfordern kann.
Stattdessen mache ich es auf einem, RequestBookingValidatorService
der überprüfen kann, ob das Buchungsdatum abgelaufen ist, der Benutzer eine aktivierte Kreditkarte hat, ... oder die Domain, von der diese Aktion stammt, mehr als eine Buchung anfordern darf (und wenn dies bereits der Fall ist) irgendein).
Dies erhöht die Lesbarkeit, da Sie diese Entscheidung auf Ihre Anwendungsdienste übertragen haben. Außerdem stelle ich fest, dass ich, wenn ich eine neue Funktion benötige, Laravel- (oder Symfony-) Migrationen verwenden kann, um diese Funktion zur Tabelle hinzuzufügen, und sogar ihre Zeilen (Ihre Domänen) mit den Werten aktualisieren kann, die ich für dasselbe Commit möchte, das ich codiert habe.