Практика использования MVC
Модель
Про модель надо держать следующую мысль: "Могу ли я использовать эту модель в другом проекте?", ответ должен быть положительным.
Должна
- Работать с данными, в том числе сохранять, искать и извлекать записи из СУБД
- Содержать бизнес-логику и проверки корректности данных
- Формировать и выполнять SQL запросы
Не должна
- Обращаться к параметрам запросов пользователя (GET, POST), в том числе перенаправлять пользователя
- Генерировать HTML или другой код, который отобразиться пользователю
- Возвращать коды состояния HTTP (404, 302 и т.д.)
Представление
Должно
- Генерировать HTML, лучше с использованием шаблонизатора
- Использовать данные только контроллера и модели
Не должно
- Взаимодействовать с СУБД.
- Обрабатывать запросы пользователя
Контроллер
Типичной действие в контроллере: создание экземпляра модели (или получение данных через статический метод модели), заполнение модели данными из POST запроса, сохранение в СУБД, перенаправление пользователя на другую страницу.
Должен
- Обрабатывать запросы пользователей, в том числе параметры из GET и POST
- Оперировать данными через модели и отображением через представления
- Осуществлять редиректы
Не должен
- Организовывать бизнес-логику
- Содержать SQL-запросы
- Формировать HTML разметку