
Stepan
15.12.2016
18:58:17
Alice юзал, очень даже ок кстати

Sergey
15.12.2016
18:59:27
как-то результаты голосования неоднозначные

Sergey
15.12.2016
19:00:32
alice говно
юзлес элис

Google

Алексей
15.12.2016
20:02:54
А что лучше?
Цель: в кратчайшие сроки набутстрапить из имеющихся данных фикстур, чтобы проект можно было собирать и прогонять хотя бы базовые функциональные тесты. Потому, что сейчас проект надо разворачивать вручную и заливать дамп БД.

Sergey
15.12.2016
20:04:23
doctrine/data fixtures + faker
я лично на этом варианте остановился
+ частенько реюзаю сервисы в фикстурах
что бы система имитировала действия пользователей а не совсем уж рандомный и несвязанный сэт данных

Алексей
15.12.2016
20:07:02
doctrine/data fixtures + faker
Спасибо. Посмотрю. Хотя, насколько я понял, Alice тоже использует faker. Но, в общем, погляжу тогда более низкоуровневый вариант тоже и буду думать.

Sergey
15.12.2016
20:08:56
alice провацирует тебя делать фикстуры именно данных, то есть пихает данные в сущности и все
это норм для очень простых ситуаций, но как бы есть отдельно doctrine faker populator
или как-то так
а как только у тебя в зависимости от каких-то данных надо что-то другое- ты попал)
data-fixtures в этом ключе как-то гибче
позволяет тебе делать то же что и alice
но можно много больше и много веселее

Google

Алексей
15.12.2016
21:29:17

Sergey
15.12.2016
21:29:44
эм... логику работы?

Sergey
15.12.2016
21:30:50
отныне @fes0r с правами админа, а флуд он не любит.. поэтому не злите его ?

Sergey
15.12.2016
21:31:08
ну ладно)

Sergey
15.12.2016
21:33:12
ты кстати за что голосовал? save/remove ок?

Sergey
15.12.2016
21:33:43
не знаю о чем ты)

Sergey
15.12.2016
21:33:53
save/update/remove в репозитории доктрины
Да это ок – 7
??????? 58%
Нет это плохо – 5
????? 42%
? 12 people voted so far.
за это

Sergey
15.12.2016
21:34:12
remove - норм, save/update - не норм
ну и remove только если название подходит
инога это archivate или еще чего
у меня remove в репосах есть, но это один репос из 5-ти
а может даже реже

Sergey
15.12.2016
21:36:00
у нас этих методов не было вот до мержа который сегодня сделали, после этого начался холивар и я его сюда перенес) сам я считал что эти методы не айс
а щас вот изменил точку зрения и считаю что это ок
если честь ограничение по типу

Sergey
15.12.2016
21:36:18

Sergey
15.12.2016
21:36:25
да

Sergey
15.12.2016
21:36:30
save/update не ок

Ivan
15.12.2016
21:36:32

Google

Ivan
15.12.2016
21:36:43
?

Sergey
15.12.2016
21:36:45

Sergey
15.12.2016
21:36:50

Sergey
15.12.2016
21:36:50
да, так определенно лучше

Sergey
15.12.2016
21:37:21
сущность себя ж в инфраструктуре не сможет обновить
если это не ларавель
?

Sergey
15.12.2016
21:38:13
блин я плыву уже
просто....
если мыслить с точки зрения хранилища... сущность о хранилище не знает
мы ее просто храним на полке
но мы можем вынуть с полки сущность
а потому remove должен остаться

Sergey
15.12.2016
21:41:37
нет, но полка знает о книге

Sergey
15.12.2016
21:41:47
полка знает о книге только факт ее наличия
по сути

Ivan
15.12.2016
21:42:30
тогда book->archivate() неправильно, если при архивировании книга перемещается с полки в архив

Google

Ivan
15.12.2016
21:42:59
хотя я бы не делал такой метод в репозитории

Sergey
15.12.2016
21:43:24
ну в целом да
$books->take($book);
$archive->put($book);
перемещение сущности из одного репозитория в другой
единственное что
возможно $achive зависимость $books
и тогда $books можно попросить перевести книгу в архив
либо нам нужен какой-то сервис архиватор

Ivan
15.12.2016
21:44:52
да, тогда books - не полка

Sergey
15.12.2016
21:44:53

Sergey
15.12.2016
21:45:09
представь что это мега продвинутая роботизированная полка

Ivan
15.12.2016
21:45:33
полка знает об архиве?

Sergey
15.12.2016
21:45:37
которая автоматически складывает в архив все старые книги
а архив это коробка под полкой

Ivan
15.12.2016
21:46:33
я бы так всё равно никогда не делал
пока не вижу в этом смысла

Sergey
15.12.2016
21:46:52
ну тут надо с точки зрения бизнес логики думать
когда у тебя репозиторий не полку представляет, а реальный склад
например

Google

Sergey
15.12.2016
21:47:40
хотя тут можно сделать склад как сущность
раз уж ему надо между другими складами трансферить что-то

Ivan
15.12.2016
21:48:13
для одной сущности - один репозиторий - вот!

Sergey
15.12.2016
21:49:51
не каждой сущности положено иметь ажно свой репозиторий

Ivan
15.12.2016
21:50:06
да)
погорячился
ну я делал штуку, которая сущности сохраняла в redis, доставала по id, делала поиск по проиндексированным полям, я назвал это репозиторием, и там был метод save
т.к. unitofwork я не реализовывал
и что это плохо иметь в такой реализации save?
или это не репозиторий?)

Sergey
15.12.2016
21:54:44
это больше похоже на table gateway или dao
просто другое название
настоящий репозиторий внутри использовал бы тот самый dao/gateway + uow

Ivan
15.12.2016
21:55:40
то есть репозиторий обязан вести себя как коллекция
и нет persistence-oriented repository
или как там

Sergey
15.12.2016
21:57:56
да
потому что репозиторий не отвечает за персист
он делигирует его гейтвэю
репозиторий это красивая идея, позволяющая полностью скрыть хранилище
как деталь реализации