
Sergey
06.04.2017
09:27:43
сущность не должна этим заниматься
юзай сериалайзер отдельно

Pavel
06.04.2017
09:27:59
Тогда контроллеры будут ужасные
Смысла не будет вообще юзать сущность. т.к. я буду создавать обьект а потом в репозитории его из обьекта в массив обратно

Google

Pavel
06.04.2017
09:28:55
Но как без сущности то
А создавать подобие сервиса под это вообще тупо
Есть норм вариант?

Dinar
06.04.2017
09:30:57
Почему у тебя конструктор возвращает сериалайзер?

Andrew
06.04.2017
09:31:00
да - создаешь сервис-фабрику и юзаешь :)

Dinar
06.04.2017
09:31:04
А нет.
Сори.

Pavel
06.04.2017
09:31:23
В сущности?
Массив маппера

Dinar
06.04.2017
09:31:41
Массив можно в сущности

Sergey
06.04.2017
09:31:43
сущности у тебя не должны знать о каких-то гидраторах или маперах

Pavel
06.04.2017
09:31:59
ок. Тогда куда маппер?

Google

Sergey
06.04.2017
09:32:14
в репозиторий можешь заинжектить как вариант

Dinar
06.04.2017
09:32:26
А в сервис засунуть почему нет?

Pavel
06.04.2017
09:32:38
Дк прикинь будет много сущностей

Sergey
06.04.2017
09:32:44
сериалайзер и есть сервис

Pavel
06.04.2017
09:32:50
Че это все в сервисе хранить

Dinar
06.04.2017
09:32:53
Сервис можно инжектить в сервис
Сервис долен выполнять работу простую.

Pavel
06.04.2017
09:33:57
Тогда два абстрактных сервиса. Один в обьект, другой из обьекта с возможностью маппера. Маппер в репозитории. Норм?

Sergey
06.04.2017
09:34:04
Дк прикинь будет много сущностей
ну ты сам подумай. у тебя будет 100 сущностей одного типа, и на каждую сущность тебе нужно создать свой инстанс сериалайзера. это ж убийственно по перформансу
ну и плюс тебе весь этот код копипастой носить по всем типам обьектов
берешь сериалайзер из контейнера, который симфони за тебя зарегал. его инжектишь в репозиторий и там юзаешь

Pavel
06.04.2017
09:34:46

Dinar
06.04.2017
09:34:54
Вообще для юзер сущности нет проблемы имплементить Serializable

Pavel
06.04.2017
09:35:10
Но репозиторий работает с сущностью. Передавать туда массив тупо

Dinar
06.04.2017
09:35:11
там никого это не смущает :)

Sergey
06.04.2017
09:35:24
serializable это уж совсем для других целей

Dinar
06.04.2017
09:35:34
Ну а тут в чем проблема?
Ну типы разные.
Но суть-то та же :)

Sergey
06.04.2017
09:35:58
в serializable обьект должен уметь уснуть и проснуться

Google

Sergey
06.04.2017
09:36:10
а конвертировать себя в array, json, xml, yaml это ему нахер не нужно

Dinar
06.04.2017
09:36:14
А тут должен превратиться в массив и из него в объект

Sergey
06.04.2017
09:36:25
этим занимаются нормализаторы и гидраторы

Dinar
06.04.2017
09:36:37
Ну Трансформер может тогда сделать?

Pavel
06.04.2017
09:36:55

Sergey
06.04.2017
09:37:55

Pavel
06.04.2017
09:38:24
findById возвращает обьект

Sergey
06.04.2017
09:38:42
да, для того кто вызвал его
а внутри у тебя там мясорубка

Pavel
06.04.2017
09:40:09
Где вообще симфони юзает нормалайз и денормалайз? А то нет под рукой проекта

Sergey
06.04.2017
09:40:58
для сериализации обьектов в json в основном

Sergey
06.04.2017
09:41:12
normalize это промежуточное состояние между обьектом и json

Pavel
06.04.2017
09:42:01
Ну ведь если доктрина юзает пдо, то она получает из базы массив. Этот массив она денормализует абстрагированно от сущнсоти или репозитория, или где-то в родительских классах?

Dinar
06.04.2017
09:43:07
не абстрагированно.
Она гидрирует данные в сущность согласно аннотациям
Ну либо другому конфигу

Pavel
06.04.2017
09:44:02
Ну это понятно. Но где она это делает? На каком этапе?

Dinar
06.04.2017
09:44:18
Стектрейс посмотри. Я не интересовался. :)

Pavel
06.04.2017
09:44:22
Мне нужно щя понять делать сервисы или родительские классы для сущности и репозитория

Google

Dinar
06.04.2017
09:44:29
Там где hydrate происходит
Лучше оставить энтити плейн объектами
И создать например сервис-трансформер.
В нем преобразовывать туда обратно

Sergey
06.04.2017
09:46:55
вот у тебя репозиторий будет выполнять роль персистера доктрины
с блекджеком

Dinar
06.04.2017
09:47:44
Так репозиторий не должен быть персистером
Он должен быть только файндером, так сказать :)

Sergey
06.04.2017
09:48:04
ему не нужна лишняя абстракция

Admin
ERROR: S client not available

Dinar
06.04.2017
09:48:21
Сделай трейт :)

Pavel
06.04.2017
09:48:25
Круто говоришь. Вот только я без доктрины

Sergey
06.04.2017
09:48:38
в доктрине персистер занимается не только сохранением
в чем проблема взять доктрину то?
чем изобретать свои велосипеды

Pavel
06.04.2017
09:49:24
тяжелая кудах ко-ко
Никто не даст разрешение
Давно бы уже сделал

Sergey
06.04.2017
09:50:10
т.е в конструктор запихнуть инициализацию сериалайзера это норм, а взять доктрину, которая оптимизирована это не норм

Google

Pavel
06.04.2017
09:50:21
Это лишь один из вариантов
Изначально сделал что контроллер и репозиторий всем этим занимался но из-за этого код выглядел ужасно
Сейчас норм но противоречит логике
К тому же юзается не симфони а сайлекс
Максимум что я могу пропихнуть это доктрин дбал абстракцию
Но она тут не особо спасет
Каждый разговор с тимлидом о доктрине закачивается тем что она весит АЖ 10 МЕГАБАЙТ

Roman
06.04.2017
09:53:58
боже

Sergey
06.04.2017
09:54:04
Омг
Приглашаем его в чатик

Roman
06.04.2017
09:55:09
ну, это можно понять, если он место на сервере экономит, например

Pavel
06.04.2017
09:55:45
Я канеш понимаю что тут апи на пару ресурсов но велосипедить из-за того что доктрина такая жирная это бред
Не, тут база на 100гб

Roman
06.04.2017
09:55:56
никакая она не жирная

Pavel
06.04.2017
09:55:59
Врятли он экономит

Roman
06.04.2017
09:56:00
это сказки

Pavel
06.04.2017
09:56:02
ДК я знаю
Его то я не смогу переубедить
Тут огромный проект на велосипедах и чистых запросах к базе
Нет бы доктрину подрубить и для новых задач юзать ее
Но нет. Давайте будем писать свою доктрину несколько лет
...