Всем привет. Немного не по симфони, но попробую попросить помощи.


подскажите по событиям, которые генерирует сущность во время своей жизни. Сейчас у нас сделано через трейты+интерфейсы, типа $this->notify(new ShitHappens($this)) и потом postFlush события берутся через $еntity->publishEvents() и бросаются в диспатчер.
Есть ощущение, что уйти от трейтов и хранения событий в сущности было бы правильно. но возникает вопрос - как генерировать и отдавать в мир события?
Для их генерации нужно, чтоб "генерилка" их сторедж событий были либо внутри обьекта, либо приходили снаружи.
Если внутри - трейты, наследование, инжект, создание. Трейты дичь, наследование сущностей от BaseEntity - тоже, инжект - непонятно кем, как и когда. Создание какого-то eventEmiter'а внутри конструктора? Вызов статического метода EventService::foo(new Event)? Но тогда нужно как-то привязывать событие к конкретной сущности.
А если сторадж приходит снаружи, то добавление зависимостей к каждой операции, которая приводит к событиям (включая конструкторы) - тоже дичь.
Как быть, куда бежать?
Или я осел, зря парюсь и трейты норм ход в таком раскладе?

7 ответов

4 просмотра

имхо, трейты норм

Volodymyr Melko
имхо, трейты норм

Ну чот кажется, что таскать с собой все события, которые уже совершились и которые ей уже не нужны - не входит в обязанности сущности

E- Автор вопроса

Явно передать параметром в методах?

E- Автор вопроса
Aleksandr Khristenko
Явно передать параметром в методах?

Дополнительный параметр в каждый метод, который генерирует события? Получается, что инициатор вызова должен знать о том, что там под капотом будет событие и предоставить сущности этот "диспетчер"

Шурик
Ну чот кажется, что таскать с собой все события, к...

http://sandbox.onlinephpfunctions.com/code/07acacec4cda4b273413599886639f4dd0e9e2bc

E- Автор вопроса
Volodymyr Melko
http://sandbox.onlinephpfunctions.com/code/07acace...

Ну вот у нас как-то так и сделано

Похожие вопросы

Обсуждают сегодня

'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть полностью собранная база "шрифтов" - подобных символов?
Shen
9
Дорогие друзья, есть тут те, Кто рад поучаствовать в работе и в команде над игровой платформой? Мы делаем игровую и уникальную платформу. Стек платформы Go и React. Нам ...
Александр Цивин :)
2
Короче получается только кнопки не поменять А кнопки вроде тоже слетают при редактировании не?
inc.
10
Тг будет банить бота который принимает донаты без stars? Бот буквально на 10-20 человек
Vexylon
6
а у тя шо за бот?
Андрей
6
Кто сколько за бота берёт? (Я покупать не хочу)
Ivan Aleksandrovich
10
Век живи, век учись и продолжай удивляться Carbon Оказывается, в Carbon дату можно задавать даже текстом 😲 <?php use Carbon\Carbon; $october_date = new Carbon("last sunday o...
Igor
3
или ты хочешь сказать что это по юникоду не дефолтные буквы?
Roma
4
Приветы. Если бот доступен только пользователям из России и Беларуси, старсы для него неизбежны? Как Apple планируется собирать платежи с покупок в сторе на территориях, где у...
Prokhor Chulkov
8
Карта сайта