Корректно ли использовать SearchModel как репозиторий?

Обсуждаем, как правильно строить приложения
Ответить
Аватара пользователя
pistol
Сообщения: 216
Зарегистрирован: 2014.07.12, 15:18
Откуда: Курган
Контактная информация:

Корректно ли использовать SearchModel как репозиторий?

Сообщение pistol »

Правильно ли я понимаю, что SearchModel - это обертка над ::find() методом модели? Корректно ли называть это репозиторием и частично использовать в этом ключе, добавляя нужные методы туда?
Аватара пользователя
samdark
Администратор
Сообщения: 9489
Зарегистрирован: 2009.04.02, 13:46
Откуда: Воронеж
Контактная информация:

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение samdark »

Правильно ли я понимаю, что SearchModel - это обертка над ::find() методом модели?
Да.
Корректно ли называть это репозиторием и частично использовать в этом ключе, добавляя нужные методы туда?
Нет.
Аватара пользователя
xoma
Сообщения: 641
Зарегистрирован: 2009.04.02, 15:24
Откуда: Ногинск
Контактная информация:

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение xoma »

Лично я Search*классы использую только для гридов (как правило это админские интерфейсы), в "паблике" - Repository с "нормальными" именами методов.
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение vitovt »

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

Хочу сделать слоистую архитектуру (и делаю) пока доли руки до создания сервисного слоя, который работает как, например

\Yii::$app->orders->save()

правильно ли это?
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение anton_z »

vitovt писал(а): 2017.04.03, 19:09 Тысячу раз уже наверное спрашивалось но все же, никак не могу найти простой и понятный кусок кода, который бы точно дал понять для чего это сделано и как это сделать правильно?

Хочу сделать слоистую архитектуру (и делаю) пока доли руки до создания сервисного слоя, который работает как, например

\Yii::$app->orders->save()

правильно ли это?
Для начала подойдет вот это: http://developer.uz/blog/layered-structure-for-yii-app/.
Суперновая статья. Про нее разговор идет в соседней ветке: viewtopic.php?f=34&t=43021. Надо популяризовать этот подход.
Если захотите большего, читайте статьи Дмитрия Елисеева: http://www.elisdn.ru/blog/104/domain-en ... mpaign=ddd и книгу http://www.ozon.ru/context/detail/id/35045716/. Но это для продвинутых.
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение vitovt »

anton_z писал(а): 2017.04.04, 08:20
vitovt писал(а): 2017.04.03, 19:09 Тысячу раз уже наверное спрашивалось но все же, никак не могу найти простой и понятный кусок кода, который бы точно дал понять для чего это сделано и как это сделать правильно?

Хочу сделать слоистую архитектуру (и делаю) пока доли руки до создания сервисного слоя, который работает как, например

\Yii::$app->orders->save()

правильно ли это?
Для начала подойдет вот это: http://developer.uz/blog/layered-structure-for-yii-app/.
Суперновая статья. Про нее разговор идет в соседней ветке: viewtopic.php?f=34&t=43021. Надо популяризовать этот подход.
Если захотите большего, читайте статьи Дмитрия Елисеева: http://www.elisdn.ru/blog/104/domain-en ... mpaign=ddd и книгу http://www.ozon.ru/context/detail/id/35045716/. Но это для продвинутых.
Спасибо, кажется это уже по второму кругу читаю. Да, не с первого раза доходит, да, нужно пробовать и эксперементировать, через какое-то время станет понятно.

Ищу также реальные проекты с использованием такого подхода именно в Yii2 на github, если найду поделюсь ссылками здесь.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение ElisDN »

vitovt писал(а): 2017.04.03, 19:09 никак не могу найти простой и понятный кусок кода, который бы точно дал понять для чего это сделано и как это сделать правильно?
Вопросы "для чего" и "по каким принципам" подробно рассматривали в http://www.elisdn.ru/oop-week на трёх десятках примеров. На последнем уроке построено целое приложение с сервисами на Yii2. Очень советую купить записи, чтобы сэкономить полгода-год на изучении ООП-архитектуры.
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение vitovt »

ElisDN писал(а): 2017.04.04, 10:43
vitovt писал(а): 2017.04.03, 19:09 никак не могу найти простой и понятный кусок кода, который бы точно дал понять для чего это сделано и как это сделать правильно?
Вопросы "для чего" и "по каким принципам" подробно рассматривали в http://www.elisdn.ru/oop-week на трёх десятках примеров. На последнем уроке построено целое приложение с сервисами на Yii2. Очень советую купить записи, чтобы сэкономить полгода-год на изучении ООП-архитектуры.
Написал вам ЛС.

А касательно темы, как пример реализации паттерна репозиторий нашел вот такой код - https://github.com/mhndev/yii2-repository насколько он "правильный" по тематике?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Корректно ли использовать SearchModel как репозиторий?

Сообщение ElisDN »

vitovt писал(а): 2017.04.04, 11:42 насколько он "правильный" по тематике?
Судя по наличию методов create($data) и updateOneById($id, $data) с таким кодом и глобальным состоянием это вообще лютый бред.
Ответить