Size: a a a

2021 September 03

DN

Dmitri Novikov in symfony
Documentroot до папки public включительно
источник
2021 September 04

И

Игорь in symfony
Ребят, добрый день. Кто что думает над тем что бы инкапсулировать создание entity  в отдельный билдер?
источник

И

Игорь in symfony
Типо у каждой энтити свой билдер, и он ее конструирует
источник

SP

Sergey Protko in symfony
хорошая идея, дальше в цикле развития будет идти мысль "постойте, а если мне для каждой сущности прям билдер нужен, может быть у меня что-то не так с декомпозицией сущностей? может они у меня слишком жирные выходят?"
источник

И

Игорь in symfony
Не, мне это нужно что бы методы более тестируемые были🤔
источник

И

Игорь in symfony
Типо билдер в зависимостях залил, и забилдил. Его и мокнуть можно будет
источник

SP

Sergey Protko in symfony
ну вот с позиции тестов я от мысли "как удобно для тестов что бы билдеры для сущностей" к мысли "погодите - походу просто дохера лишнего стэйта и связанность" пришел
источник

SP

Sergey Protko in symfony
мол есть кейсы когда скажем фабрика для сущности или чего такого штука благая, ибо например что бы собрать правильно сущность надо мноого но сущность сама внутри мало содержит и потому "застабить корректно" не проблема. Но чаще это сигнальчик что твои сущности слишком много стэйта тянут.
источник

SP

Sergey Protko in symfony
хорошо или плохо - надо по ситуации смотреть.
источник

SP

Sergey Protko in symfony
если же тебе билдеры понадобились только для того что бы "заставить" разработчиков "правильно собирать огромный граф данных" - ну тогда будет беда
источник

SP

Sergey Protko in symfony
аля делаем мы платформу для объявлений. Объявлению нужно помимо его штук еще ссылка на продавца. продавку надо еще чего-то и т.д. и т.п. вытягивается граф. Если мы этим управлять хотим за счет фабрик или билдеров - мы просто прячем под ковер проблему - слишком много лишних связей, мол тянем ветку графа там где хватило бы айдишки
источник

И

Игорь in symfony
Я скорее думаю о том что каждой энтити нужен билдер, и сомневаюсь в этом решение. Не зависимо от ее размера. Объясню как я к этому пришел. Есть простой прайвет метод который содержит в себе условие "создай сущность А иначе создай сущность Б"
В тесте по сути ты должен проверить этот if но он получается тестируемым только при моки persist и тест будет достаточно сложным
источник

И

Игорь in symfony
Builder-ы же решат эту проблему. Ты мокнул их, и посчитал число вызывов при каждом тест кейсе.
источник

И

Игорь in symfony
.
источник

SP

Sergey Protko in symfony
источник

SP

Sergey Protko in symfony
ну или ты прибил гвозьями больше тест к реализации, как посмотреть
источник

SP

Sergey Protko in symfony
моки нужны там где есть сайд эффекты, у билдеров сайд эффектов по сути нет - они просто объект собирают. Не надо их мокать
источник

SP

Sergey Protko in symfony
на счет персиста - то есть у тебя нет там репозиториев разных для сущностей и ты полагаешься на доктрину напрямую
источник

И

Игорь in symfony
А зачем для создания репозиторий?
источник

SP

Sergey Protko in symfony
ну и не могу сказать что тест вида...


$em->persist(Argument::type(SomeEntity::class))->shouldBeCalled();
источник