DM
OrderService
в котором есть метод attemptAutoCheckout()
(попытка автоматического оформления, собственно метод, который будет проверять заказ и в случае успеха - оформлять). Но тут фигурирует не только сервис, а ещё класс OrderValidator
который осуществляет проверку по определённым правилам, реализующим интерфейс RuleInterface
.Получается, что в контроллере мы вызываем
$this->orderService->attemptAutoCheckout($order);
а уже внутри этого метода у нас:
$this->orderValidator->addRule(new FooRule());
$this->orderValidator->addRule(new BarRule());
if (! $this->orderValidator->validate($order)) {
$errors = $this->orderValidator->getErrorMessages();
}
Вопрос, куда разместить
OrderValidator
, RuleInterface
, FooRule
, BarRule
? Если просто закинуть рядом с OrderService в директорию Services/
то непонятно что к чему относится (а ведь OrderValidator
как бы логически связан именно с OrderService
), в отдельную директорию вынести? Или что? Как бы вы поступили?