Добрый день.
Хочу на некоторые действия в symfony сделать гибкую историю изменению.
Вопрос в том, как лучше это сделать.
1. В самой сущности "Entity" повесить event:
class Entity
{
//поля сущности
private array $events = [];
protected function recordEvent(object $event): void
{
$this->events[] = $event;
}
public function someAction($blal): void
{
//что-то делаем
$this->recordEvent(new Event\LogSomeMadeAction($args)); //эвент на сохранения записи в бд
}
}
2. В сервисе где и происходит все основные вызовы методов сущностей:
class ServiceHandler
{
public function handle($args): void
{
$entity->someAction($blal);
//логируем в бд без всяких эвентов
}
}
3. Всё это делать в самих контроллерах, вместе с Monolog.
Я думаю в сторону 1 варианта, он выглядит более гибким, но хорошее ли это решение?