Danil
Кто нибудь пользовался LexikFormFilterBundle?
Sergey
методы репозиториев либо добавляют сущность на хранение, либо удаляют, либо возвращают одну и ровно одну сущность (или кидают исключение)
Sergey
если твоя бизнес логика требует что бы репозиторий вернул коллекцию - значит ты где-то не сделал сущность которая имеет эту коллекцию
Sergey
а методы вроде getAuthorsWithComments лучше выносить в отдельные классы
Sergey
которые не умеют persist и которые делают тупые read-only выборки
Sergey
и тогда жизнь будет чуть меньшей болью
fink3L
ааа кажись понял
fink3L
но лучше будет если пояснишь))
fink3L
У меня получилось как то так AuthorRepository +getAuthorsWithPostsQuery():qb +getAuthorsQuery():qb AuthorManager +getAuthorsWithPosts():Author[] +createAuthor():Author +update($author) // тут работаем с базой
fink3L
все как на той картинке
fink3L
fink3L
блин, надо себе футболку с таким принтом заказать
Sergey
но лучше будет если пояснишь))
Поясняю. Тебе этот список нужен в рамках бизнес логики или на UI показать?
Sergey
ну значит делаем отдельный сервис который такими вещами занимается
Sergey
можно даже круче, что бы этот сервис никогда не возвращал сущности (мэпить напрямую на DTO или массивчики)
Sergey
тогда и пачки геттеров из сущностей уйдут
Sergey
хотя это если ты реально будешь загоняться, так что достаточно просто вынести выборки которые ты делаешь только для UI в отдельный сервис
Sergey
воимя SRP
fink3L
хотя это если ты реально будешь загоняться, так что достаточно просто вынести выборки которые ты делаешь только для UI в отдельный сервис
а в чем соль? ну вот мне надо где-то вывести список авторов с их постами, а потом надо будет этот список получить для бизнес логики и что? мне уже не подойдет мой сервис который делает выборки только для UI. Звучит странно, наверно я что-то не понял
Sergey
> а потом надо будет этот список получить для бизнес логики для бизнес логики все данные должны лежать в пределах агрегата (и там должен быть корень через который ты операцию проводишь)
Sergey
если у тебя какие-то правила выборки есть определенные - формируешь объект-критерию для коллекции.
fink3L
fink3L
спасибо, подумаю над этим
Sergey
я вот пытался вспомнить хоть один случай когда у меня дублировались правила выборок для логики и для UI
Sergey
и не смог придумать
Sergey
если кто может накинуть таких буду рад
fink3L
когда-нибудь я тоже научусь так говорить
я думал я один плохо понял Сергея
🐴
гм
🐴
"плохо" подразумевает "хоть как-то"
🐴
явно не мой случай
🐴
впрочем, я кажется знаю слова "для" и "который"
Rinat
Странно, чатик на мобилке не подгружается.
Ivan
вот где-где, а на пикабу я такого точно не ожидал)) http://pikabu.ru/story/doctrine_best_practices__1_4327349
Helgo
таким методам не место в репозитории
Вероятно, я на SF не пишу уже достаточно долго, могу говорить ерунду :)
Alexey
вот где-где, а на пикабу я такого точно не ожидал)) http://pikabu.ru/story/doctrine_best_practices__1_4327349
Это краткая выжимка того доклада, что я выше кидал. Причём, менее понятная, чем сам доклад.
Ivan
ну да, то что было на видео
Ivan
просто место размещение неожиданное:)
🐴
чуваки
Alexey
Это да.
🐴
а поясните мне за композер
🐴
вот у меня в проекте мы коммитим vendor в репу, прям всю папку в гит
Ivan
зря наверное)
🐴
я так понимаю, что это неправильно
🐴
но
Ivan
правильно понимаешь)
🐴
что мне ответить боссу, когда он спросит, а как мол быть, если пакагист лег, а нам надо деплоить?
Alexey
Коммитить надо composer.json и composer.lock.
Ivan
ну локально ж вендор есть
🐴
где локально?
Alexey
что мне ответить боссу, когда он спросит, а как мол быть, если пакагист лег, а нам надо деплоить?
Можете держать свой сервер-прокси для packagist. Есть как Standalone так и saas.
🐴
Можете держать свой сервер-прокси для packagist. Есть как Standalone так и saas.
ага, отлично, теперь он скажет - нахер мне платить за еще один сервер? и девопсы тоже меня не поймут, когда я к ним приду и говна накину
Ivan
где локально?
на машинах, на которых ведется разработка
🐴
на машинах, на которых ведется разработка
хорошо, а как быть с дженкинсами и продом?
🐴
и стейджем
🐴
и остальными
🐴
вот представь, замержил я в мастер, дженкинс ломанулся собирать билд, а пакагист лежит
🐴
меня будут иметь всем отделом
🐴
потому что я сломал CI
🐴
своим предложением
Alexey
Поднимите satis.
Alexey
https://code.tutsplus.com/tutorials/setting-up-a-local-mirror-for-composer-packages-with-satis--net-36726
🐴
Поднимите satis.
вопрос выше - как обосновать девопсам и бухгалтеру
Alexey
Ну впихни его к дженкинсу.
Sergey
я думал я один плохо понял Сергея
погугли "Entity Aggregate"
🐴
все тот же вопрос
🐴
какую выгоду получит бизнес?
Ivan
интересно, какой объем всего пакагиста
🐴
у девопсов лишняя точка контроля
🐴
лишнее место где может сломаться
🐴
лишняя головная боль
🐴
в чем профит?
Alexey
А что обосновывать? Вы не хотите пиздец в репозитории и не хотите доверять пэкэджисту. За все надо чем-то платить.