Size: a a a

2021 June 11

МФ

Максим Федоров... in symfony
от аннотаций хуже не станет, эт омета-информация и некоторый хак, который позволят не лезть бизнес-слою в инфраструктуру (то есть зависимость очень косвенная) — код легко будет перенесен (если с этой точки зрения посмотреть)

тут можно сказать некоторая языковая зависимость (аннотации — это именно такого рода хак), но вы и так в языке уже конкретном
источник

МФ

Максим Федоров... in symfony
но валидировать данные внутри нужно, наружная валидация (верификация) не сможет учесть инвариант бизнес-объекта и учитывает только формальную спецификацию данных (формат, допустимый перечень, длина, наличие в Бд и прочее)
источник

Б

Борис Зырянов... in symfony
+++
источник

Б

Борис Зырянов... in symfony
А вот с этим не соглашусь, с таким подходом можно и из доктриновских энтитией доменные модели лепить
источник

МФ

Максим Федоров... in symfony
не получится с таким подходом, тк в доктриновских ентитях по дизайну именно Доктрины нет аксессоров 🙂
источник

МФ

Максим Федоров... in symfony
но таки да, так и делают, ваша правда
источник

МФ

Максим Федоров... in symfony
но это не относится к слоенной архитектуре, как мне кажется
источник

Б

Борис Зырянов... in symfony
Не, я чисто за SRP
источник

IK

Igor Kostyakov in symfony
Ребят всем привет, есть кто может проконсультировать по messenger компоненту в разрезе rabbitmq транспорта, появился затык небольшой... Надеюсь)
источник

AK

Anton K. in symfony
задавай вопрос
источник

IK

Igor Kostyakov in symfony
Есть некий rabbitmq который в себе собирает сообщения от сервисов, в него они попадают не по формату headers - body, а имеют только body

В результате когда мы вызываем php bin/console messenger:consume -vv rest_uploader, чтобы просто прочитать очередь, стандартные serializer не обрабатывают эти сообщения. А падают с exception. В одном сдучае если использовать PHPSerializer, ругается на то что не может json обработать. А стандартный symfony serializer, ругается что нет заголовков которые внутри у него обрабатываются.

В результате вроде как можно реализовать кастомный сериализатор. Класс который наследует SerializerInterface. У него там два метода decode и encode. И все ничего, но он требует реализации encode который в свою очередь всегда пересылает сообщения в реббит. А МНЕ НУЖНО ПРОСТО ПРОЧИТАТЬ ОЧЕРЕДЬ И СДЕЛАТЬ ЛОГИКУ(дополнительную).
источник

IK

Igor Kostyakov in symfony
В очереди простой json
источник

YT

Ysim Tokido in symfony
Чем в DDD Агрегат отличается от Bounded Context ?
источник

VM

Volodymyr Melko in symfony
Сериалайзер точно ничего не отправляет в очередь
источник

D

Dmitry in symfony
источник

SP

Sergey Protko in symfony
bounded context - граница некой buisness capability - например "бухгалтеры". Агрегаты - это граница целотности/транзакции кусочка стэйта.
источник

D

Dmitry in symfony
но в целом можно начать вот отсюда https://symfonycasts.com/screencast/messenger/external-transport#play
источник

IK

Igor Kostyakov in symfony
Именноп по этому мануалу и делал
источник

SP

Sergey Protko in symfony
источник

IK

Igor Kostyakov in symfony
И там есть момент,
public function encode(Envelope $envelope): array
   {
       throw new \Exception('Transport & serializer not meant for sending messages');
   }
источник