
Dmitry
08.11.2017
13:30:11
так просто не получается, и не пойму почему
может в конфиге что то дописывать ?

Tex
08.11.2017
13:32:36
ошибка есть какая-то?
ну и в качестве теории. бандл, где описывается сервис, должен регистрироваться раньше, чем бандл, в конфигах которого ты его инжектишь.

Google

Andrew
08.11.2017
13:34:01

Dmitry
08.11.2017
13:35:10
сейчас, минутку

Tex
08.11.2017
13:36:08
Поддерживаю. Надо золотое правило ввести. Бесполезно писать просто "не работает", нужна инфа по коду, который "работает не так" и какие-то симптомы, как было выяснено, что он работает "не так". Иначе каждый раз libastral.so подгружать накладно.

Dmitry
08.11.2017
13:37:03
class:"RuntimeException"
"Controller "ApiBundle\Controller\ApiModeratorController::updateStatusAction()" requires that you provide a value for the "$manager" argument. Either the argument is nullable and no null value has been provided, no default value has been provided or because there is a non optional argument after this one."

Andrey
08.11.2017
13:43:58
Инжекти явно в контроллер
Тут с автовайром хрень какая-то

Andrew
08.11.2017
13:46:21
короче тебе нужно контроллер как сервис зарегать
+ https://symfony.com/doc/current/controller.html#controller-accessing-services


Dmitry
08.11.2017
13:47:15
экстендю от фосовского
Инжекти явно в контроллер
если инжектю в контроллер то
"Resources are not supported in serialized data. Path: Monolog\Handler\StreamHandler -> Symfony\Bridge\Monolog\Logger -> Symfony\Component\Cache\Adapter\PhpFilesAdapter -> Symfony\Component\Cache\Adapter\TraceableAdapter -> Symfony\Component\Cache\Adapter\PhpArrayAdapter -> Symfony\Component\Cache\DoctrineProvider -> Doctrine\Common\Annotations\CachedReader -> Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver -> Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain -> Doctrine\ODM\MongoDB\Configuration -> Doctrine\MongoDB\Connection -> Doctrine\ODM\MongoDB\DocumentManager -> AppBundle\Service\DocManager"

Evgenij
08.11.2017
14:46:27
Как в симфони принято сетить данные из массива в обьекты, через гидратор ?

Andrey
08.11.2017
14:47:12
сериализатор/форма

Google

Andrey
08.11.2017
14:47:34
как я успел понять, конечно. Не особо много юзаю симфу

Evgenij
08.11.2017
14:52:59
что за сериалайзер ?

Alex
08.11.2017
14:53:29

Vladislav
08.11.2017
14:53:36
dataMapper
propertyAccessor
первый пишется в помощью второго(это компонента)
datamapper это часть формы, которая занимается маппингом
гидратор это другое

Evgenij
08.11.2017
14:54:42
Я не знаю откуда паттерн гидратор, видел его использование для сета данных сущностям

Vladislav
08.11.2017
14:56:28
чувак, у тебя есть просто
массив данных, propertyAccessor сделает то что тебе надо
надйет пропертю и вставит значение через сеттер если такой есть
я написал что-то похожее для маппинга респонса апи на дтошки, описывал путь в конфиге и получал на выходе дто с данными

Tex
08.11.2017
15:00:23

Evgenij
08.11.2017
15:02:08
да интересно, конфиг как используется

Alexander
08.11.2017
15:03:57

Vladislav
08.11.2017
15:09:23

Alexander
08.11.2017
15:12:03
А чем не устроил serializer + ObjectNormalizer?
Хотя да, все равно пришлось бы писать кастомные нормалайзеры

Tex
08.11.2017
15:23:26
А для конвертации одних объектов в другие (DTO => Entity, например) какой подход рекомендуется?

Google

Konstantin
08.11.2017
15:24:21
апдейт в энтити написать имхо
который будет хавать в себя дто и че-то там внутри делать

Alexander
08.11.2017
15:24:42
Entity::createFromDto(Dto $dto);

Stanislav
08.11.2017
15:24:55
например jms/serializer

Vladislav
08.11.2017
15:26:34

Stanislav
08.11.2017
15:26:48
на пыхе 7 проблем нет вообще нисколько

Sergey
08.11.2017
15:26:56
медленно
symfony/serializer + свои нормалайзеры

Stanislav
08.11.2017
15:27:04
можно юзать свой/симфони сериалайзер

Sergey
08.11.2017
15:27:04

Vladislav
08.11.2017
15:27:11
ахахах
есть такое

Andrey
08.11.2017
15:27:22
С какой это стати?

Tex
08.11.2017
15:27:30
например jms/serializer
кхм, он же десериалузет из сериализованных форматов, или я чего-то не знаю?
делать DTO => json => Entity звучит как-то дико.

Andrey
08.11.2017
15:27:37
Лучше неявное?

Sergey
08.11.2017
15:27:48
createFromDTO - рак

Vladislav
08.11.2017
15:28:05

Andrey
08.11.2017
15:28:28

Sergey
08.11.2017
15:28:33

Google

Stanislav
08.11.2017
15:28:35

Andrey
08.11.2017
15:28:42
Чем нормально контролировать ассайн?

Stanislav
08.11.2017
15:28:52

Sergey
08.11.2017
15:29:11
пруф
пруф на что? что не очень хорошая идея сразу пихать данные в сущности?
ты определись что тебе надо - гидрация данных или засэтать что-то

Stanislav
08.11.2017
15:29:25
на jms - рак
?

Sergey
08.11.2017
15:29:55
на jms - рак
рак причем с метастазами. Концептуально это очень кривая штука

Alexander
08.11.2017
15:30:11

Admin
ERROR: S client not available

Sergey
08.11.2017
15:30:15
подход симфони с промежуточным этапом нормализации/денормализации намного лучше

Tex
08.11.2017
15:30:34
у вас явная необходимость в dto?
интеграция с внешними сервисами, которые требуют одни и те же данные, но по разному их обзывают + их надо сохранять в базу.
итого имеем получение одного DTO от одного сервиса, конвертацию в Entity для сохранения и конвертацию в другое DTO для отправки в другой сервис.
сейчас есть классы-маперы, которые в тупую делают полотно get => set на каждое свойство. вот спрашиваю можно ли от этого как-то красиво уйти.

Sergey
08.11.2017
15:30:43
таки как тогда?
смотря что сделать надо) приведи юзкейс когда ты хочешь сделать createFromDTO и откуда этот dto у тебя возьмется

Vladislav
08.11.2017
15:31:18
ну у него есть форма data_class -> someDto

Sergey
08.11.2017
15:31:22

Vladislav
08.11.2017
15:31:29
и он хочет с дто получить уже сущность

Andrey
08.11.2017
15:31:46

Sergey
08.11.2017
15:31:58

Alexander
08.11.2017
15:32:00

Vladislav
08.11.2017
15:32:10

Google

Sergey
08.11.2017
15:32:18
ну то есть это проблема несколько другого уровня

Tex
08.11.2017
15:32:31

Vladislav
08.11.2017
15:32:36
шоб firstName, lastName можно было обозвать name
ну чет аткое

Sergey
08.11.2017
15:32:41
если у тебя есть сущность и ты хочешь все поля в ней обновить - возможно тебе стоит сделать новую сущность

Vladislav
08.11.2017
15:32:43
хз, не юзаю

Andrey
08.11.2017
15:32:51
Так пусть маппер создаёт дто, оно валидируется, и ассайнится в сущность. Иначе мы получаем хрень с невалидной сущностью после маппера

Sergey
08.11.2017
15:32:53

Andrey
08.11.2017
15:32:58
И это рак

Vladislav
08.11.2017
15:33:13
ну как я понял с описания
обычно такое нормально делается в форме
и дто не надо

Sergey
08.11.2017
15:33:38
короч если тебе нужен createFromDTO то у тебя сущность зависит от DTO что я считаю категорически не правильным

Andrey
08.11.2017
15:33:51

Vladislav
08.11.2017
15:33:52
еп

Sergey
08.11.2017
15:34:20

Andrey
08.11.2017
15:34:31
Динамически доступные поля на основе значений выше

Sergey
08.11.2017
15:35:17
мне больше билдеры нравятся нежели DTO, позволяют чуть лучше разделить ответственность и при этом примерно то же самое

Vladislav
08.11.2017
15:35:21
так я не о том что сущность пихать, а о том что ему надо промежуточный стейт где он может как-то преобразовать данные с реквеста