Практика использования MVC

Модель

Про модель надо держать следующую мысль: "Могу ли я использовать эту модель в другом проекте?", ответ должен быть положительным.

Должна

  • Работать с данными, в том числе сохранять, искать и извлекать записи из СУБД
  • Содержать бизнес-логику и проверки корректности данных
  • Формировать и выполнять SQL запросы

Не должна

  • Обращаться к параметрам запросов пользователя (GET, POST), в том числе перенаправлять пользователя
  • Генерировать HTML или другой код, который отобразиться пользователю
  • Возвращать коды состояния HTTP (404, 302 и т.д.)

Представление

Должно

  • Генерировать HTML, лучше с использованием шаблонизатора
  • Использовать данные только контроллера и модели

Не должно

  • Взаимодействовать с СУБД.
  • Обрабатывать запросы пользователя

Контроллер

Типичной действие в контроллере: создание экземпляра модели (или получение данных через статический метод модели), заполнение модели данными из POST запроса, сохранение в СУБД, перенаправление пользователя на другую страницу.

Должен

  • Обрабатывать запросы пользователей, в том числе параметры из GET и POST
  • Оперировать данными через модели и отображением через представления
  • Осуществлять редиректы

Не должен

  • Организовывать бизнес-логику
  • Содержать SQL-запросы
  • Формировать HTML разметку

Похожие записи

Laravel Where Exists Clauses

Метод whereExists позволяет написать SQL-условия where exists. Метод whereExists принимает в качестве аргумента замыкание, которое получит экземпляр конструктора запросов, позволяя вам определить запрос для помещения в условие "exists":

09 октября 2018 г. в Laravel

Про SOLID во фронтенде

  • принцип единственной ответственности;
  • открытости и закрытости;
  • подстановки Барбары Лисков;
  • разделения интерфейса;
  • инверсии зависимостей.