Laravel по-русски

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

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

#1 24.02.2014 09:43:39

[L4] логика, логика

В четвертом ларавеле есть модели, но по документации в моделях толко сущности таблиц, куда же мне логику сунут?

Не в сети

#2 24.02.2014 14:46:43

Re: [L4] логика, логика

Проблема стара как сама концепция MVC. Обычно логика либо в контроллере, либо в модели; я лично разделяю её между обоими, больше отдавая в модель, т.к. это конечная точка, к которой можно обращаться из разных контроллеров (и даже задач и т.п.). Сюда же входит проверка ввода, к примеру.

Не в сети

#3 24.02.2014 15:41:20

ksedim

Re: [L4] логика, логика

А как мне ее в модель подключить? Вот в л3 вижу в документации раздел моделей, а в л4 не вижу

#4 24.02.2014 15:44:21

Re: [L4] логика, логика

Что именно подключить? Раздел о моделях в L4.

Не в сети

#5 24.02.2014 16:08:38

ksedim

Re: [L4] логика, логика

Орм у меня после симфони асоциируется с бд, да и в примерах вижу там описывают как сделать сущность

#6 24.02.2014 17:03:59

Re: [L4] логика, логика

Сущность и модель по сути одно и то же, если вы не пурист в плане терминологии.

Не в сети

#7 24.02.2014 18:06:07

ksedim

Re: [L4] логика, логика

Ну ведь так и есть, сущность - модель, но модель не обязательно сущность, меня интересует, куда же деть бизнес логику? Сунуть в модели, не наследуя сущностной класс?

#8 24.02.2014 18:25:43

Re: [L4] логика, логика

Что в вашем понимании «сущность» и в чём её отличие от модели? Как я уже написал лично я большую часть проверок выношу в модель как конечный пункт перед источником данных. «Сущностей» я не использую.

Не в сети

#9 24.02.2014 18:59:38

ksedim

Re: [L4] логика, логика

Сущность - это сущность таблицы, т.е. название, поля и методы их получения. А модель - кака-либо логика. Можете реализовать маленькую задачу, чтоб я понял как это все происходит? Нпример в контроллер передается значение name от пользователя, ножно в конец переменной name единицу и вернуть еотроллеру, если сделаете, буду благодарен, меня интересует вызов модели, передачи в нее данных и возврат обработанных данных

#10 24.02.2014 19:19:57

Re: [L4] логика, логика

  1. Сущность — это сущность таблицы, т.е. название, поля и методы их получения. А модель — кака-либо логика.

В моём случае это один класс. Делить их значит создавать дополнительный слой абстракции, что добавляет в проект фактически в два раза больше классов и чаще всего без особой выгоды.

Мне обычно хватает контроллер → модель, делать контроллер → модель → сущность может иметь смысл только в особо крупных проектах.

Не в сети

#11 24.02.2014 19:40:21

ksedim

Re: [L4] логика, логика

Стоит ли мне их использовать, если у меня файлы весом в 10 мб, а бд гигабайт?

#12 24.02.2014 19:46:45

Re: [L4] логика, логика

Под крупным проектом я понимал не размер БД (он роли не играет), а его сложность. Если у вас по 10-20 и больше методов, которые можно отнести к «сущности», столько же — для «модели» и с полсотни контроллеров с парой десятков методов в каждом — это крупный проект. Но таких мало, поэтому обычно хватает деления на контроллер/модель.

Не в сети

#13 24.02.2014 22:06:58

ksedim

Re: [L4] логика, логика

То есть в моем маленьком проекте нужно использовать обычные запросы, я верный вывод сделал из ваших слов?

#14 24.02.2014 22:37:13

Re: [L4] логика, логика

Маленький он или большой — я не знаю, идея в том, что если у вас много методов в «модели», то можно создавать слой «сущностей», иначе он пользы не принесёт, а работать будет чуть сложнее.

  1. использовать обычные запросы

Что значит «обычные»? Обычные — через ORM. Да. Внутри модели. За её пределами — можно, если это простые запросы-выборки, так как по моему опыту структура БД не так сильно меняется, чтобы приходилось отлавливать самые простые запросы по всему коду и менять их. Но это только SELECT, все прочие типы лучше всего выносить в методы модели. Обычно их намного меньше.

Не в сети

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