Разрабатываю API. В экшенах я принимаю параметры, валидирую их, произвожу какие-либо действия, одно или несколько. Упрощенный пример кода экшена:
$validation = new Validation();
$validation->validate($this->request->post());
if ($validation->errors) {
return 'error';
}
$helper = new Helper($validation);
if ($helper->doSomeThing()) {
$res = 'ok';
} else {
$res = 'error';
}
return $res;
Т.е. у меня есть специальный класс для валидации данных, где сможет быть сравнительно сложная логика проверки входных параметров. Далее, при успешном прохождении проверки, объект класса валидации я прокидываю в специальный хелпер, где провожу какое-либо действие. Все необходимые данные для этого действия у меня уже есть в объекте валидации, что весьма удобненько. Но для обеспечения работоспособности одного экшена, мне приходится создавать 2 дополнительных класса - один для валидации, другой для выполнения конкретных действий. Я не стал их объединять, т.к. получился бы перегруженный функционалом класс (в некоторых экшенах на обоих этапах есть достаточно сложная логика проверки, выборки итд). Как можно догадаться, классы нужны для того, чтобы вынести логику из контроллера и не дать разрастись экшену больше чем на 1 экран.
Соответственно у меня 2 вопроса:
1. Правильно ли я делаю в принципе?
2. В какую группу сущностей (сервисы, компоненты итд.) мне отнести хелпер из примера выше, как его лучше назвать.
Пишу на Фальконе.