В моем случае я создал новую таблицу в базе данных, например, ее можно назвать Domains
.
Добавьте все конкретные функции, которые могут отображаться в некоторых доменах, но не в остальных, в качестве столбцов для этой таблицы в качестве бита для логических значений. Как в моем случае allow_multiple_bookings
, use_company_card
... что угодно.
Затем рассмотрите возможность создания класса Domain
и его соответствующего репозитория и просто задайте эти значения в своем коде, стараясь как можно больше внедрить эту логику в ваш домен (модель, службы приложений и т. Д.).
Например, я бы не стал проверять метод контроллера, RequestBooking
если домен, запрашивающий бронирование, может запросить только один или несколько.
Вместо этого я делаю это на элементе, RequestBookingValidatorService
который может проверить, прошло ли время бронирования, у пользователя есть активированная кредитная карта, ... или домен, с которого происходит это действие, может запросить более одного бронирования (и затем, если он уже имеет Любые).
Это добавляет удобство чтения, поскольку вы передали это решение своим службам приложений. Кроме того, я обнаружил, что всякий раз, когда мне нужна новая функция, я могу использовать миграции Laravel (или Symfony), чтобы добавить эту функцию в таблицу, и я даже могу обновить ее строки (ваши домены) значениями, которые я хочу для того же кода, который я кодировал.