
Sergey
18.04.2018
07:03:23
ну то есть ты можешь себе представить репозиторий БЕЗ зависимостей?

Urmat
18.04.2018
07:03:42

Sergey
18.04.2018
07:03:51
в частности чем плохо в коде делать new SomeRepo

Google

Sergey
18.04.2018
07:04:17
ну и вообще в чем ограничения new

Urmat
18.04.2018
07:05:06
ну и вообще в чем ограничения new
Тогда он сможет инжектить зависимости. Разве, что через контейнер тащить. Получится то же самое, что и с сервисом. Только будет лишний код

Sergey
18.04.2018
07:07:11
ну вот чисто теоритически даже (если не брать в расчет in memory репозитории-заглушки какие)

Urmat
18.04.2018
07:08:08

Sergey
18.04.2018
07:08:25
есть объекты значения, есть сущности и т.д.

Urmat
18.04.2018
07:08:46
it depends.
Я же это и говорю, что от ситуации все зависит

Sergey
18.04.2018
07:08:58
важно только добиться того что бы вызов new был в одном месте. Будь это статический метод-фабрика или еще чего
и разговор был именно об регистрации репозиториев как сервисов

Google

Sergey
18.04.2018
07:09:49
автоматической регистрации
так что еще раз - в случае репозитория у тебя есть хоть один довод почему "можно без контейнера?" Естественно мы рассматриваем ситуацию когда контейнер у тебя уже есть. В ситуациях легаси где у тебя нельзя просто взять и перевести все на контейнер чуть другая история (промежуточные штуки вроде сервис локаторов)
короч я не понимаю почему нет смысла "инджектить в репы".... коннекшен к базе тебе придется заинджектить как-то
а то что ты видимо имел ввиду называется SRP

Urmat
18.04.2018
07:14:34
Я перечитал вопрос, весь диалог и понял, что был не прав
Прошу прощения

Damir
18.04.2018
07:49:37
Что за беда с наследованием в Sonata?
Я про админский контроллер
An exception has been thrown during the rendering of a template ("Unable to find a valid admin for the class: AppBundle\Entity\User, there are too many registered: admin.user, admin.user_moderation"

Shmaltorhbooks
18.04.2018
07:54:13
судя по ошибке - ты сконфигурил две админки для одного класса
admin.user и admin.user_moderation как сконфигурированы?

Roman
18.04.2018
07:58:32
так там надо прописать параметр admin_code и указать какой админкласс юзать
а две админки для одной энтити делать можно, но там есть нюансы

Damir
18.04.2018
08:03:15
Да, одна сущность - два контроллера

Sergey
18.04.2018
08:05:25

Damir
18.04.2018
08:07:47
На самом деле задача простая.. У меня есть уже весь нужный функционал в admin.user, а контроллер который наследует admin.user - там просто чутка другой запроса - выводит всех юзеров которые на модерации. в итоге при клике на юзера - ссылка должна вести на базовый контроллер. и всё

Bohdan
18.04.2018
08:11:38
@fes0r вспоминая твои речи про логику в контроллерах
имеет ли смысл выносить простые штуки (типа редактирования сущности) в какие-нибудь сервис-менеджеры, которые сами по себе будут на 4-5 строк и будут просто делегировать задачи сущностям и дергать persist/flush?
и да, твой сервис для флашей - он просто содержит один метод?)

Sergey
18.04.2018
08:12:28

Google

Sergey
18.04.2018
08:12:42
ну не, 3 на самом деле)
flush, commit и flushAndCommit

Bohdan
18.04.2018
08:13:09
commit - транзакции?

Sergey
18.04.2018
08:13:17
но это потому что у меня и доктрина и пруф фигурировать могут в одной операции. В большинстве случаев должно вызываться только flushAndCommit

Bohdan
18.04.2018
08:16:26
а persist там, где он нужен, дергаешь репозиторием?

Вадим
18.04.2018
08:33:29
Привет, как красиво сделать такую штуку. Есть у меня коллекция юзеров /users/<id>/ ну и там операции с каждым, Через что мне красиво сделать /users/me/ что б юзался тот же контролер, но подставлялся ид текущего юзера ?

Елнур
18.04.2018
08:35:33
создать новый роут с path: /users/me и в defaults id: 0
который ссылается на тот же контроллер
и в контроллере проверить, если id == 0, то подставить id текущего юзера

Елнур
18.04.2018
08:36:09
??

Вадим
18.04.2018
08:36:22
хм ... как вариант

Елнур
18.04.2018
08:36:30
да, как вариант

Bohdan
18.04.2018
08:36:34
и важно: этот роут должен находиться выше, чем /users/{userId}

Елнур
18.04.2018
08:36:44

Вадим
18.04.2018
08:36:46
Спасибо

Елнур
18.04.2018
08:39:04
или /users/{userId} - должен быть requirement, что id - только цифры

Google

Вадим
18.04.2018
08:39:06
Я думал как-то в роутинге сервеис цеплять, который это будет делать ... или какой-то контроллер который сделает уже запрос на /users/56/ например. Ну типа middleware

Andrew
18.04.2018
09:08:07
вариантов простых куча

Вадим
18.04.2018
09:09:37

Timur
18.04.2018
09:10:51

Вадим
18.04.2018
09:11:00
Именно вот как только что месага была, как у ВК с id0, редирект на текущего бзера ... но что б редирект был на серваке )

Damir
18.04.2018
09:11:08

Admin
ERROR: S client not available

Timur
18.04.2018
09:12:14
Неа..
Пиши в личку или в группу Sonata, я тебе приглашение скинул

Елнур
18.04.2018
09:13:24

Вадим
18.04.2018
09:14:40

Andrey
18.04.2018
09:15:45
Спасибо

Igor
18.04.2018
09:25:39
кто знает как правильно мокать сервисы в функциональных тестах в 4 симфе ?
раньше можно было this->getContainer()->set('idService', $mock) но теперь это deprecation

Dmitriy
18.04.2018
09:27:57
$this->createMock не работает?

$iD
18.04.2018
09:28:15
oO а так можно было?

Bohdan
18.04.2018
09:28:17
или я чего-то не знаю?

Dmitriy
18.04.2018
09:28:25
just include a .yml file in your config_test.yml. Rewrite the needed service definitions by using the same key or using decorator (http://symfony.com/doc/current/service_container/service_decoration.html) in that file.

Google

Bohdan
18.04.2018
09:28:47
я так понял, он хочет, чтобы $this->getContainer()->get('...') возвращало ему мок

$iD
18.04.2018
09:28:56
но это ж пздц?
не?

Bohdan
18.04.2018
09:29:16
ну для тестов может и нет
если не брать во внимание использование контроллера :D

$iD
18.04.2018
09:29:21
это было сделано для кейсов когда в сервис инжектится контэйнер? )

Dmitriy
18.04.2018
09:29:27
а речь точно про функциональные? там же просто кравлер хтмла

Shmaltorhbooks
18.04.2018
09:32:04
Он, вроде, так и называется

Valentin
18.04.2018
09:33:02

Bohdan
18.04.2018
09:33:18

Shmaltorhbooks
18.04.2018
09:34:03
Другой контейнер в тестах?)

Sergey
18.04.2018
09:34:31

Igor
18.04.2018
09:41:21

Bohdan
18.04.2018
09:41:57

Igor
18.04.2018
09:42:13
autowiring

Bohdan
18.04.2018
09:45:47
autowiring
https://github.com/symfony/symfony-docs/issues/8203

Igor
18.04.2018
09:47:52
читал эту статью - но грузить отдельный конфиг со всеми моканными сервисами как по мне ту мач. Обратился сюда - думал может кто знает более логичное / элегантное решение

Petr
18.04.2018
09:52:53

Bohdan
18.04.2018
09:53:28
мне на самом деле тоже не нравится такое
но я не пишу функциональные, потому мне ок)

Andrey
18.04.2018
09:54:10
делаете алиасы на нужные сервисы с пометкой public: true, делаете set для test.* сервисов