Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Когда я щупал Yii2, то в бест практик было описано, что контролеры должны быть худые, а вся бизнес-логика должна размещаться в модели. В laravel, судя по документации, и по сообщениями из форума, вся логика в основном в роутах или контролерах. Так как делать правильно? Как удобно или все таки есть негласные правила?
Не в сети
В Laravel все то же самое, это справедливо для всех фреймворков. Приложение нужно писать в своих неймспейс-классах, каждый класс должен иметь по возможности узкий функционал. Модели, кстати, это те же классы, вообще весь код писать там вместо контроллеров тоже неразумно.
Не в сети
Не являюсь гуру программирования, но MVC подразумевает кажется следующее:
M - model - модель - совокупность инструментов для работы с данными/бд (получить, удалить, вставить, изменить и т.д.)
V - view - представление - фасад приложения для пользователя. Служит для отображения страниц пользователю
С - controller - контроллер - совокупность инструментов, которые являются трансфером между моделью и представлением.
Значит по логике фрейморков контроллер только получил данные и отдал модели, а модель уже произвела все действия по фильтрации и т.д.
Но я например не так немного делаю (пускай критикуют меня великие мыслители фреймворков ): у меня входящие данные от пользователя обрабатывает контроллер, т.е. фильтры, валидаторы, а вот модель только работает с БД (все те операции, которые я описал выше).
Не в сети
Почитайте про Domain Driven Design и как вариант имплементации этого подхода - использование Command Bus.
Всё можно найти на laracasts.
Ну и заходите в чатик, пообщаемся про это..:)
Не в сети
Еще я почти в каждом подобном обсуждении привожу ссылку на мегаполезную, с моей точки зрения, ссылку про то, что на самом деле представляют собой модели в MVC - http://habrahabr.ru/post/175465/ (TL&DR - они представляют собой собственно ваше php-приложение целиком, а не только общение с бд.)
Не в сети
Страницы 1