👀
👀
не за что, обращайтесь
Аня
Narzikk
помогите,как работает elasticSearch?
Niko
Niko
И бан добавь, что если 5 рейтов поймал - бан 5 сек, еще 5 - умножай время бана на 5
Как нибудь так для начала
Niko
Бомбу можно попробовать скидывать. На хабре описание есть
Дмитрий
Niko
Точно!
Дмитрий
А чем она сопсна поможет
Дмитрий
Прочитал) Веселая штука)
Дмитрий
https://habrahabr.ru/post/332580/
la vie noire
Тополь М уже нужен ;)
Wierus
Приветствую! Обновился с 2.0.12 на 2.0.13.1 и полетело расширение johnitvn/yii2-rbac-plus
Wierus
При добавлении новой записи ошибка: Missing argument 1 for johnitvn\rbacplus\models\Permission::find(), called in \vendor\yiisoft\yii2\validators\UniqueValidator.php on line 210 and defined \vendor\johnitvn\yii2-rbac-plus\src\models\Permission.php и далее по стеку.
SiZE
Wierus
У кого работает это расширение в текущей версии, нужно что-то еще шаманить?
SiZE
SiZE
Missing argument 1 for johnitvn\rbacplus\models\Permission::find()
ошибка не двусмысленно намекает на то что что-то не так
SiZE
а именно на то что автора рожали стоя
Wierus
Там с валидатором unique проблема, если я его убираю, то все работает. Но до обновления и так работало
SiZE
ну так ты его сам добавил походу
SiZE
короче дело не в бобине
Иван
Народ, не ради срача пишу, помощь логическая нужна. Пишу проект по принципам DDD. Нужно проверить, есть ли у пользователя активная подписка (сущность User, сущность Subscribe с полем userId). Пишу в SubscribeRepository метод existActiveByUserId(int $userId) : bool, где будет уже запрос в бд...но что - то мне подсказывает, что не репозиторий должен это делать. Но чья это зона ответственности? Репозиторий - хранилище, вроде коллекции. Пока писал - понял, что видимо сам юзер должен это знать, есть ли у него активные подписки. Вроде $user->isHaveActiveSubscribe() : bool. Если не прав - поправьте плз. P.S. Срач про надобность/ненадобность DDD просьба не разводить
SiZE
SiZE
а что говорит сервис
Иван
ну в сервисе и надо узнать
SiZE
так сервис не знает что ему надо или как?
Иван
Знает, $subscribeService->subscribe(SubscribeForm $form)
Сервис подписки
Иван
в нем надо узнать, прежде чем подписывать, есть ли у юзера подписка
Иван
Кстати, еще вот такой вопрос: может ли репозиторий вернуть null вместо сущности? Repository->get(777)
Иван
или должен Exception выплюнуть, если записи запрашиваемой не существует?
Дмитрий
Репозиторий что то достает из БД. Хорошо если это набор данных, не очень хорошо если одно конкретное поле
SiZE
SiZE
Дмитрий
Имхо лучше null, а в сервисе на это проверять и кидать уже эксепшн
Дмитрий
Нарвался на проблемы просто при выкидывании эксепшенов из репозитория
SiZE
Иван
я собственно вот почему спрашиваю
https://github.com/ElisDN/yii2-demo-shop/blob/master/shop/repositories/Shop/BrandRepository.php
тут эксепшены. Все, что тут делает метод get репозитория - это выкидывает эксепшн, если не найдена сущность. Т.е. эмуляция коллекции. Если ты обращаешься к несуществующему элементу коллекции, то ошибка.
SiZE
Это не принципиально для репозиториев ПМСМ
SiZE
Читабельней только
Иван
Ясно, спасибо!
SiZE
Иван
есть
SiZE
есть
репозиторий поидее еще и кеширует все это )
SiZE
я щас в проекте работаю, где кеширование AR это боль
SiZE
имеется ввиду хранение объектов AR в памяти процесса
SiZE
но не 100% обязательно
Иван
т.е. тут ты бы грубо говоря sql составил бы, получил ответ, и с помощью гидрации создал бы сущность, которая не наследник AR?
SiZE
Иван
репозиторий возвращает сущность
Иван
агрегат
SiZE
Domain Transfer Object оно возвращает
Иван
никакой не DTO
SiZE
Иван
SiZE
AR это уже реализация
SiZE
в контексте выше
SiZE
т.е. AR модель которая может и сохранить и в горящую избу войти )
Иван
Иван
Кто, как не репозиторий? Я думал он для того и нужен, чтоб взять на себя всю эту работу, быть абстракцией, коллекцией по сути, которая вернет сущности, а не что - то иное.
Иван
Почему DTO? Че ж не сразу массив?)
SiZE
Сорян
Dmitriy
+1 DTO =)
Какая разница DTO или VA или не связанную с AR сущность ?
Dmitriy
хоть коллекцию или массив возвращай.
Dmitriy
главное не привязаваться к AR, DM, GW
SiZE
SiZE
Ты правильно говоришь
Иван
Какая разница DTO или VA или не связанную с AR сущность ?
Суть уловил. Но я приверженец возвращать именно "сущность", а не массив с DTO. Другое дело, что эта сущность зависит от AR...конечно чище было бы в таком случае использовать доктрину. Ну тогда зачем я вообще взял Yii2?) В свое оправдание скажу лишь, что AR мои сущности используют только в плане инфраструктуры, аля http://www.elisdn.ru/blog/109/domain-entities-active-record
SiZE
SiZE
DTO можно представить массивом (набором данных), но какой перед тобой массив ты не сможешь определить, а какой перед тобой класс сможешь. И это уже ООП
SiZE
Ну тогда зачем я вообще взял Yii2?
А это вопрос мучающий многих. В первую очередь, зачем ты взял PHP, во вторую уже все остальное.
SiZE
Не важно лара, симфони или й. Все равно они на РНР )
Иван
я знаю что такое DTO. вернув DTO ты знаешь какой перед тобой DTO. Но это всего лишь набор структурированных данных, который не содержит и не может содержать логику, в отличие от сущности. И тебе рано или поздно нужно будет инстанцировать сущность. Так почему тогда не спрятать эту гидрацию внутрь репозитория?
Dmitriy