@symfony_php

Страница 392 из 1418
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
что за сериалайзер ?

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
да интересно, конфиг как используется

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);

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 - рак

Andrey
08.11.2017
15:28:28
неявное что?)
Неявное serializer->serialize ()

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

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
createFromDTO - рак
таки как тогда?

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

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

Sergey
08.11.2017
15:31:58
и он хочет с дто получить уже сущность
что из себя представляет dto - там вообще весь новый стэйт сущности? и надо тупо засэтать?

Alexander
08.11.2017
15:32:00
смотря что сделать надо) приведи юзкейс когда ты хочешь сделать createFromDTO и откуда этот dto у тебя возьмется
к примеру есть симфони-форма, надо DTO, который в нее передается создать Entity

Google
Sergey
08.11.2017
15:32:18
тупо засетать как я понял
какой смысл тогда делать dto

ну то есть это проблема несколько другого уровня

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
так я не о том что сущность пихать, а о том что ему надо промежуточный стейт где он может как-то преобразовать данные с реквеста

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