Aleksandr
говно ваша реализация
Aleksandr
я хочу подискутировать на тему логики в сущностях доктрины
Aleksandr
notify
Aleksandr
public function notify
Aleksandr
в таком случае согласен)
Aleksandr
но всё равно логичнее сделать обычный сервис или ивенты
Aleksandr
а то человек посмотрит на твою реализацию, и нахерачит логики в сущности
Aleksandr
или не дай бог контейнер туда сунет
Aleksandr
да даже если это "прокси" метод
Aleksandr
всё равно не есть хорошо
Aleksandr
инкапсуляция ради инкапсуляции, зачем?
Aleksandr
ну идеальный вариант с сервисом, в котором проверить instansOf через интерфейс и отправить там же через мейлер
Aleksandr
гибко и аккуратно
Aleksandr
а главное взглянув на код все будет понятно
Rodion
только ты забываешь, что это все для репрезентаций доменных моделей для конкретной ORM, и нотификация тут ни причем вообще. ENTITIES (MOSTLY) REPRESENT YOUR DOMAIN THE DATABASE IS JUST SAVING THINGS DESIGN ENTITIES FIRST DEFINE THE DATABASE AFTER MODELING YOUR DOMAIN
Aleksandr
проверить что объект переданный нам реализует интерфейс
Aleksandr
потому что в проверке мы можем принять решение
Aleksandr
может быть у тебя 2 интерфейса
Aleksandr
один для админа другой для обычного юзера
Aleksandr
ну или типа того
Rodion
и в целом подавляющее большинство советов из этой презы подходит херово для симфони
Aleksandr
можно и тайпхинт
Aleksandr
тут уже пофигу
Aleksandr
надо смотреть задачу
Rodion
1. сущность доктрины это не то же самое, что сущность из DDD. 2. передавать сервис в сущность, чтобы вызвать у него метод и передать в кач-ве аргумента эту же сущность - охуенный мув.
Aleksei
symfonycamp начали выкладывать видео докладов: https://www.youtube.com/channel/UCd1Ds7u1mAjEwHrZ9jG1Arg/videos
Роман
киньте реализацию DDD. Хочу посмотреть пример нормальный
Alexey
Кто-нибудь может показать пример описания документации для NelmioApiDocBundle в случае когда описываются параметры POST-запроса? То есть, когда в экшене данные получаются через $request->request->get('parameter');
S
Доброго здравия, господа. Кто-нибудь работал со Sphinxом? Интересует поиск по многим критерям, которые фактически в сущностях определены как many to many, например. Какие запросы вы пишите в таком случае в sphinx конфиге? Или просто кучу joinов и все? Вариант с ElasticSearch пока не рассматриваю. Благодарю
S
Или через sql_attr_multi ?
Aleksei
@skobkin там есть filter, requirements и parameters
Aleksei
выбирай какие тебе надо :)
Ivan
Доктрина позволяет делать так: $user = new User({"firstname" => "John"})? Или ручками через reflection?
Alexander
Не позволяет. Либо рефлексия, либо factory method
Ivan
Ок, спасибо!
Ivan
Интересно, почему не позволяет. Не продумали или плохая практика?
Alexander
Ну, по хорошему конструктор подконтролен пользователю и там может быть что угодно
Alexander
__consutrct($firstname) в вашем случае
Alexey
Доктрина позволяет делать так: $user = new User({"firstname" => "John"})? Или ручками через reflection?
Я прошу прощения, но при чём тут доктрина? Твои сущности ни от каких её классов не наследуются. Хочешь делать инициализацию с начальными значениями - сделай соответствующий конструктор.
Alexey
В этом суть Data Mapper - сущности не в курсе, как и где они хранятся и что существует доктрина.
Ivan
понял, спасибо! Просто думал в доктрине есть готовая реализация
Alexey
Готовая реализация чего?
Alexander
а зачем это нужно, если не секрет? возможно делаете что-то неправильно, если это понадобилось
Alexey
Нет особого смысла реализовывать смену свойств при создании экземпляра класса через жопу (рефлексия), если есть конструктор.
Ivan
Просто массовое присвоение свойств без сеттеров. При первом создании сущности, например. Допустим получили объект через апи в виде json и сразу загнали его в сущность
Alexey
Конструктор, Фабрика, Фабричный метод
Alexander
Возможно вам нужно взглянуть сюда: http://symfony.com/doc/current/components/serializer.html
Alexey
В том числе, да.
Alexey
И ещё на JMS Serializer, который менее гибок, но из коробки может больше.
Alexey
Кстати, никто ещё не реализовывал ничего подобного JMS Serializer на основе Symfony Serializer? Чтобы тоже было правильное разделение нормализации и сериализации, но при этом функциональность была больше из коробки.
Ivan
Хмм, что-то забыл про сериализатор, точно. Мерси!
Danil
JMS Serializer не советуют использовать жи Не помню, но рассказывали, что при каких-то случаях он жутко тормозит всю картинку...
Danil
И не развивается уже сто лет
Danil
И не будет
Danil
Или я чо то путаю и не слушайте меня...
Danil
Походу меня обманули, а я не проверил информацию и высказал здеся о:
Danil
Короче из минусов там: 1) иногда просто так сериализует массив как хэш-мэпу, лечится кастылями в виде листенеров 2) надо замэпить json на существующий объект — лепим object creator 3) inline — работает только в одну сторону, без возможности задать кастомный префикс. бесполезная фича. В принципе очень много фич работающих наполовину. 4) шаг в право/шаг в лево — пишем свои хэндлеры или листенеры, много лишнего кода, не особо прогнозируется необходимость писать этот код. Много рисков. 5) версионизация API? переименовали пропертю? Пишите свои хэндлеры, мэппингами вы это так просто уже не разрулите. 6) в принципе для тупого CRUD сойдет, но чуть сложнее — и все… приплыли к морю кода. Быстрее руками мэппинги сделать. 7) медленно. У меня были проекты где jms serializer занимал 50% времени генерации респонса.
Alexey
Нашествие Symfony-разработчиков?
Danil
Не помню кого, но цитата
Nikolay
про sonata admin bundle могу сказать что с коллекциями там работа сделана ужасно, мейнтейнер проекта не очень
Danil
Аналогов нету
Nikolay
Аналогов нету
руками быстрее ;)
Danil
?
Nikolay
ага пилят они https://github.com/sonata-project/SonataAdminBundle/blob/3.x/Admin/AdminHelper.php#L135
Nikolay
https://github.com/sonata-project/SonataAdminBundle/blob/3.x/Admin/AdminHelper.php#L204 ахаха, нахрена тогда Inflector юзать то если метод руками делать
Nikolay
это я так поделился болью :)
Nikolay
media bundle там тоже не юзабелен
Ale
как я чатик пропиарил
Ale
ну а для остальных, все вот эти люди пришли из @prophp7
CybernatiC
Точно) все оттуда иммигрировали
CybernatiC
😂
Ale
ну это потом уже
CybernatiC
Я вообще ссылку на тот чат нашел в гитхабе)
CybernatiC
Список был
Nikolay
лучше делать так https://github.com/goq/telegram-list/pull/27
CybernatiC
чем тебе это не гоже?
CybernatiC
’Test ololo’
CybernatiC
Упс
Dmitriy
есть же