Vlad
Иван
Alexander
Речь вероятно про реквест боди, в котором json
Иван
дело в том, что для сущностей нельзя вызывать конструктор вне сценария создания сущности
а для команд как раз конструктор самое то
Alexander
Andrey
какие данные? Я про данные,что то говорил? Вот тебе пример как инстанцируется serializer.
ужасть... говорю же: руки за такое отрубить могут по самую шею...
https://github.com/symfony/symfony/blob/60ce5a3dfbd90fad60cd39fcb3d7bf7888a48659/src/Symfony/Component/Serializer/Normalizer/MimeMessageNormalizer.php#L48
в $this->serializer пишем SerializerInterface
смотрим его методы (https://github.com/symfony/symfony/blob/60ce5a3dfbd90fad60cd39fcb3d7bf7888a48659/src/Symfony/Component/Serializer/SerializerInterface.php): serialize() и deserialize()
круть
смотрим дальше наш MimeMessageNormalizer: https://github.com/symfony/symfony/blob/60ce5a3dfbd90fad60cd39fcb3d7bf7888a48659/src/Symfony/Component/Serializer/Normalizer/MimeMessageNormalizer.php#L60
чаго??? откуда у SerializerInterface метод normalize появился??? если я там засеттю только SerializerInterface, у меня код упадет и не по моей вине, на самом деле
причем я открыл сначала в 5.4, там кучу таких косяк нашел, стал смотреть на гитхабе, а большую часть уже исправили
пришлось искать в 6.0 и нашел
а все почему? потому что понамешано дофига и больше
причем я уже здесь писал про косяки симфони, когда они явно использовали компонент, указанный в зависимости своей зависимости
это в ошибку вылилось, а значит "симфони так делает" не показатель ))
вангую придет день, когда и в сериалайзерах грохнут это спагетти
Andrei
Иван
$data = ['id' => $id] + $request->toArray();
$this->dispatchMessage(new Update\Command(...$data));
Andrei
Alexander
Andrei
так что из двух этих я бы выбрал Php )
Alexander
Alexander
рассказывайте, какие паттерны из ддд вам удобнее на пхп делать?
Andrei
Alexander
Направление мысли понятно было, нормальных реализаций не встречал просто. Ваша выглядит хорошо, надо попробовать на развесистых моделях.
Иван
в развесистых моделях, когда большие вложенные Джейсоны Вурхисы с мачетами конечно есть проблема, недостаточно ...
и если нет возможности от этого избавится, то вендорный десериалайзер будет по времени быстрее заиспользовать
Иван
но это не значит, что он будет быстрее и что нельзя свой ресолвер сделать с рефлексией и дженериками
Alexander
Ну че вы ерничаете. вы прекрасно меня поняли
Вам в го ооп не нравится, из своих предпочтений вы выводы делаете. Не понятно на что вы рассчитываете кроме сарказма.
Есть апи, в нем отдается структура с большой вложенностью, нагрузка 9кк хитов в сутки. На пхп придется попрощаться с ооп и типизацией. В контекстах оно там лежит или еще как - это уже не важно, когда вы на 20 лет назад возвращаетесь.
Иван
Alexander
вы правы конечно, но и ддд не является панацеей
Иван
ну если брать главную фразу, что надо делить и называть вещи в коде так, как они в реально существуют, то это правильно, а обратное будет неверно всегда
а вот кто чего реализует под этими красивыми словами - это надо разбираться
Andrei
Вам в го ооп не нравится, из своих предпочтений вы выводы делаете. Не понятно на что вы рассчитываете кроме сарказма.
Есть апи, в нем отдается структура с большой вложенностью, нагрузка 9кк хитов в сутки. На пхп придется попрощаться с ооп и типизацией. В контекстах оно там лежит или еще как - это уже не важно, когда вы на 20 лет назад возвращаетесь.
Ну скажем так, "отдаваться" то может у вас чем угодно, хоть и go если у вас там rps зашкаливает. В моей картине мира ДДД это вообще не про "отдаваться". Тут как раз вспонимали про CQRS. А вот описывать залихватскую бизнес-логику изменящую агрегаты в GO, ну хз. Может я не сильно большой спец в нем, но я бы там потонул потом в этом коде. К тому же, в вашем случае может и DDD никчему. Основной мой опыт хитрые бизнес-системы, где rps на запись не большой, а вот всяких путанных хотелок воплощенных в коде дохрена
Alexander
Alexander
К языку это отношение если и имеет то только опосредованное.
Yurii
Кто то подружил сонату на 5м симфони с ckeditor?
Anonymous
V
Alex
Всем привет. Может быть кто то сталкивался.
У меня есть очередь order_messages со стратегией max_retries: 5 delay: 5000 так же для нее есть failure_transport: failed_order_messages который является тоже очередью с отдельным хендлером. В случае ошибки order_messages я выкидываю throw new \Exception() в хендлере order_messages, но failed_order_messages отрабатывает при первом ретрае а не после всех попыток доставить сообщение.
Буду рад если подскажите в кукую сторону копать )
Юра
Думаю копать в сторону xdebug куда-то
Юра
)
Юра
Да должен уходить в ретрай
Юра
У меня уходил
Юра
Я наоборот убирал ретрай у себя
Roman
вот он не уходит... уже чего только не пробовали. Один раз отрабатывает и сразу в failed транспорт.
Юра
retry_strategy:
max_retries: 0
Alex
Я хочу выстроить логику т.о. чтобы после отработки стратегии ретраев, сообщение перекладывалось в другую очередь, которую будет обрабатывать другой хендлер
Юра
ну так надо сделать фейл транспорт
Юра
мне просто не нужен фейл транспорт
Alex
http://joxi.ru/l2ZOJ7lul8K5DA
Получается что сообщение old_pc_reserve_messages
обрабатывает 2 хендлера
Юра
А
Юра
Ну так роутинг не нужен
Юра
Поэтому оно туда попадает сразу
Юра
Почитай доку
Иван
если сообщение то же самое, то и хендлер тот же
вне зависимости от транспорта
если хендлер должен быть другим, то надо переотправить сообщение другим классом
по моему так
Alex
Тогда такой вопрос могу я в хендлере узнать сколько раз это сообщение пыталось доставиться?
Alex
и просто отловить его на последней попытке?
Иван
https://symfony.com/doc/current/messenger.html#manually-configuring-handlers
Иван
так то оно настраивается конечно
Alex
Спасибо буду изучать
Иван
я посоветую, чтоб в конфиге было меньше, а в коде больше
потому что клацая в ide попадаешь в код, а в конфиг не попадаешь
и хендлер, в классе которого прямо указано, каких он транспортов будет, понятнее, чем тот, что сконфиган где-то в конфигах
Иван
я так понимаю, цель - утилизировать сообщения, а не выполнить их?
поэтому хендлер другой?
Alex
Смысл в том чтобы после отработки всех ретраев я смог отловить сообщение и отправить запрос на другой сервер с ошибкой
Alex
ну или хотя бы понимать что сейчас последний ретрай
Юра
Это все так и работает
Юра
Почитай доку
Юра
В твоем конфиги лишний роутинг
Alex
Если я проверяю
bin/console debug:messenger
то на одно сообщение получается 2 хендлера
App\Message\OldPCMessages\OldPCReserveMessage
handled by App\MessageHandler\FailureTransport\FailedOldPCReserveMessagesHandler
handled by App\MessageHandler\OldPCMessageHandlers\OldPCReserveMessageHandler
Юра
Потому что failed не нужен в роутинге
Юра
Блин ну епрст. Говорю почитай доку
Юра
Там есть про ретрай
Юра
Юра
А мож я туплю
Alex
Я это читал)
Все что не долетело попадает в бд.
php bin/console messenger:failed:retry отпавляет все это чудо по второму кругу.
а вот новый обраточик для этих упавших сообщений как назначить, я хз
Юра
Юра
Думаю это то что тебе нужно
Alex
Спасибо, все нашел)
Vite4eg
Посоветуйте пожалуйста: мне надо что-то типа журналирования некоторых данных: кто изменил, когда изменил, что изменил, на что изменил. На чем такое проворачивать? Elk? Или что-то другое?
Vite4eg
Мне не кажется, что хранить такое в основной базе хорошая идея
Nikolay
Vite4eg
Чет мне кажется, такие данные в реляционной базе хранить не очень удобно
Vite4eg
Но наверняка захочется фильтровать это потом
Nikolay
Vite4eg
Тогда надо заранее структуру придумывать. А если вдруг захочется новое поле журналировать - структуру менять
Vite4eg
Вроде как не особо такая структурность нужна