Size: a a a

2021 October 06

Л

Лев in symfony
Двойной или Н-ной смотря сколько интерфейсов
источник

AD

Andrey Dembitskyi in symfony
как бы да - нельзя будет подписыватся одновременно на конкретное событие + интерфейс
источник

Л

Лев in symfony
Насчет оверхеда согласен, я думаю если упрусь в это то соберу интерфейсы в компайл-тайме
источник

AD

Andrey Dembitskyi in symfony
можно ещё покрутить, получится ли с алиасами выкрутится, как делали для BC в симфони

grep "event_dispatcher.event_aliases" в vendor и документации здесь https://symfony.com/doc/current/components/event_dispatcher.html
источник

Л

Лев in symfony
Я думаю нужно расписать типичный пример проблемы. Есть фиче-модули которые делают что-то "полезное". Есть всякое инфра или чепуха типо лога для людей. Они хотят слушать сразу множество эвентов, но подписываться на каждый по отдельности я не хочу.
Кажется более логичным в фичемодуле в евент дописать реализацию интерфейса.
Еще сверху добавляется то что почти все фичемодули и инфрамодули опциональные.
источник

SP

Sergey Protko in symfony
"в ивент дописать реализацию интерфейса" - че?
источник

Л

Лев in symfony
я думал потом в каждом модуле например добавить пасс автоконфига и сбор интерфейсов которые он слушает
источник

Л

Лев in symfony
например "опиши себя человекочитаемо" или "что из тебя нужно кинуть в сокет"
источник

SP

Sergey Protko in symfony
я просто свой ивент диспатчер сделал так как симфоневый мне не катит
источник

SP

Sergey Protko in symfony
ивенты про это знать не должны, не надо путать ивенты (точки расширения) и команды (то что можно заменить вызовом метода, command patter)
источник

МФ

Максим Федоров... in symfony
а не, не я один
источник

Л

Лев in symfony
а кто должен по твоему? я не особо спорю с этим т.к. не уврен в этом подходе
источник

SP

Sergey Protko in symfony
никто не должен. у тебя есть ивент "что-то произошло" - тот кто ивент слушает решает что с ним надо делать
источник

Л

Лев in symfony
ну тут поверх уже ряд кастомизаций, полностью отдельный пока был не нужен
источник

МФ

Максим Федоров... in symfony
давай по правильному — какую задачу решаешь?
источник

Л

Лев in symfony
Тогда в горизонтальном модуле будет для сотни эвентов написано что с ними делать
источник

Л

Лев in symfony
Т.е. как их описывать например
источник

SP

Sergey Protko in symfony
а для "команд" когда "сообщение" знает что с ним будут делать - не еби голову и вызови метод, всякие эти штуки нужны только если "тот кто делает" живет в другом процессе и ты с ними очередями общаешься
источник

Л

Лев in symfony
Может конечно так и удобнее
источник

SP

Sergey Protko in symfony
да, для сотни ивентов будет написано что с ними делать. и это нормально. ну или у тебя "для сотни ивентов одинаково в лог вывести"? это декоратор над диспатчером может делать - ему не надо знать ничего про конкретные ивенты, будет выводить какие-то стандартные вещи вроде имени
источник