Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 13.11.2014 09:34:06

Где держать бизнес-логику?

Добрый день!

Когда я щупал Yii2, то в бест практик было описано, что контролеры должны быть худые, а вся бизнес-логика должна размещаться в модели. В laravel, судя по документации, и по сообщениями из форума, вся логика в основном в роутах или контролерах. Так как делать правильно? Как удобно или все таки есть негласные правила?

Не в сети

#2 13.11.2014 09:51:26

Re: Где держать бизнес-логику?

В Laravel все то же самое, это справедливо для всех фреймворков. Приложение нужно писать в своих неймспейс-классах, каждый класс должен иметь по возможности узкий функционал. Модели, кстати, это те же классы, вообще весь код писать там вместо контроллеров тоже неразумно.

Не в сети

#3 13.11.2014 12:01:58

Re: Где держать бизнес-логику?

Не являюсь гуру программирования, но MVC подразумевает кажется следующее:
M - model - модель - совокупность инструментов для работы с данными/бд (получить, удалить, вставить, изменить и т.д.)
V - view - представление - фасад приложения для пользователя. Служит для отображения страниц пользователю
С - controller - контроллер - совокупность инструментов, которые являются трансфером между моделью и представлением.
Значит по логике фрейморков контроллер только получил данные и отдал модели, а модель уже произвела все действия по фильтрации и т.д.
Но я например не так немного делаю (пускай критикуют меня великие мыслители фреймворков big_smile ): у меня входящие данные от пользователя обрабатывает контроллер, т.е. фильтры, валидаторы, а вот модель только работает с БД (все те операции, которые я описал выше).

Не в сети

#4 13.11.2014 12:55:28

Re: Где держать бизнес-логику?

Почитайте про Domain Driven Design и как вариант имплементации этого подхода - использование Command Bus.
Всё можно найти на laracasts.

Ну и заходите в чатик, пообщаемся про это..:)

Не в сети

#5 13.11.2014 14:14:10

Re: Где держать бизнес-логику?

Еще я почти в каждом подобном обсуждении привожу ссылку на мегаполезную, с моей точки зрения, ссылку про то, что на самом деле представляют собой модели в MVC - http://habrahabr.ru/post/175465/ (TL&DR - они представляют собой собственно ваше php-приложение целиком, а не только общение с бд.)

Не в сети

Подвал раздела