Пару вопросов по MVC?

Всем привет, тема заезженна, понимаю, но четкого ответа я не смог найти, и эта неясность смущает..

Некоторые и не относятся напрямую к MVC, но все же.
Вот что интересует:
1. В public_html только Front controller и публичные данные( картинки, видео, css, js файлы) - верно?
2. Все проверки выполняются "на уровне http в контроллере" - например авторизован ли пользователь и прочее - верно?
3. Формирование ответа в контроллере или же в моделе?
3.1 тут мнения разошлись и каждый пост об этом твердит свое, кто-то говорит что модель должна быть стройной и иметь только работу с базой ( тоесть - проверил, достал, отдал), а дальше все что сказать решает контроллер, кто-то считает что лучше формировать ответ в моделе ( например если что-то не так с выборкой из бд, вернуть ошибку )

и ещё смутила фраза "уровень http" - что это вообще значит?
контекст - "все проверки на уровне http", имелось ввиду контроллер, не особо это понял

Всем заранее спасибо :)
  • Вопрос задан
  • 422 просмотра
Пригласить эксперта
Ответы на вопрос 2
@eclipse20
Привет,
1) В public_html (если имеется в виду папка веб сервера), то там должен быть скрипт, который загружает MVC фреймворк либо часть V т.е. View
2) Авторизация и аутентикация должна проводится до вызова части C т.е. Controller-а
3) Только в контроллере, в моделях подготовь код, который работе с БД, и передавай подготовленные данные в модель.
3.1) Под "формировать ответ" скорее всего имелось в виду подготовить данные для отправки, например перевести в поле и т.д.
Ответ написан
Sassoft
@Sassoft
Yii developer
1) в паблик хтмл входной фронт скрипт index.php и папка с ресурсами, все. Остальное либо в папке protected либо на уровне выше.
2) Контроллер+ можно фильтры делать чтоб не копипастить код
3) Контроллер берет вход request, отдает в слой модели, модель отдает что-то, контроллер перерабатывает в нужный формат response и пихает в view.
4) Модели: сущность + слой логики лучше.
Зависит от паттерна (АР, Дата мапер и тд). Но разделять работу с БД и саму бизнес логику однозначно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы