Тонкие контроллеры (thin controller)
Сейчас перечитываю различные статьи, где говорится, что: при разработке веб-сайта с использованием паттерна Model-View-Controller существует риск неправильного понимания роли контроллеров.
Это приводит к тому, что контроллеры становятся огромными, а модели — маленькими, что, в свою очередь, затрудняет тестирование и поддержку вашего приложения.
Тонкие контроллеры
Идея термина «тощий контроллер» заключается в том, что обычно в ваших классах контроллеров вы размещаете только тот код, который:
- обращается к данным запроса пользователя ( $_GET, $_POST…);
- (опционально) делает некоторые основные приготовления к данным;
- передает данные в модель(и) и извлекает результат, возвращенный моделью(ями);
- и, наконец, возвращает выходные данные как часть View…
Класс контроллера должен избегать:
- содержащие сложную бизнес-логику;
- валидацию, проверку;
- содержащий любой HTML или любой другой код презентационной разметки.
И т.д.
В общем, сейчас изучаю и пытаюсь делать небольшой рефакторинг, смотрю что тут можно улучшить и как.
Концепция тонкого контроллера заключается в том, что мы делаем меньше работы в наших контроллерах…
А как дела обстоят у вас, уделяете вы внимание этому аспекту?
Я предпочитаю тонкие контроллеры и толстые модели с бизнес-логикой в библиотеках, поскольку они, как правило, должны работать с одной или несколькими моделями одновременно, и это делает код более пригодным для повторного использования в нескольких контроллерах и/или других библиотеках.