@symfony_php

Страница 26 из 1418
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
data-fixtures в этом ключе как-то гибче
Я понимаю :) Но там логику работы писать надо :)

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:25
да

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

Ivan
15.12.2016
21:36:32
инога это archivate или еще чего
почему не $entity->archivate()

Google
Ivan
15.12.2016
21:36:43
?

Sergey
15.12.2016
21:36:45
почему не $entity->archivate()
ну в целом да, так может лучше

Sergey
15.12.2016
21:36:50
если честь ограничение по типу
ну типа если в репозиторий юзера пихать ордер, сыпало ошибками

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

Sergey
15.12.2016
21:37:21
почему не $entity->archivate()
UserRepository::archivate($entity) в таком случае

сущность себя ж в инфраструктуре не сможет обновить

если это не ларавель

?

Sergey
15.12.2016
21:38:13
блин я плыву уже

UserRepository::archivate($entity) в таком случае
так я не понял, ты за save/update?

просто....

если мыслить с точки зрения хранилища... сущность о хранилище не знает

мы ее просто храним на полке

но мы можем вынуть с полки сущность

а потому 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
$books->take($book); $archive->put($book);
тогда take должен и remove сразу делать внутри

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
да

потому что репозиторий не отвечает за персист

он делигирует его гейтвэю

репозиторий это красивая идея, позволяющая полностью скрыть хранилище

как деталь реализации

Страница 26 из 1418