Symfony2 / Doctrine: получите поля, которые изменились после изменения сущности «Loggable»

В проекте Symfony2 я использую расширение Loggable Doctrine.

I увидел что есть LoggableListener.

Действительно ли происходит событие, которое вызывается при изменении поля (регистрируемого) в регистрируемом объекте? Если это так, есть ли способ получить список полей, которые его вызвали?

Я представляю себе случай с сущностью, скажем, с 10 полями, из которых 3 регистрируемых. Для каждого из 3 я хочу выполнить некоторые действия, если они меняют значение, поэтому 3 действия будут выполнены, если 3 из них изменятся.

Любая идея?

Спасибо!

РЕДАКТИРОВАТЬ

После прочтения комментария ниже и прочтения документов о событиях в доктрине я понял, что у нас есть 3 варианта:

1) используяобратные вызовы жизненного цикла непосредственно на уровне сущности дажес аргументами если я использую доктрину> 2,4

2) я могуслушать и подписываться на события жизненного цикла, но в этом случае документы говорят, что"Lifecycle events are triggered for all entities. It is the responsibility of the listeners and subscribers to check if the entity is of a type it wants to handle."

3) делать то, что вы предлагаете, который используетСлушатель сущностигде вы можете определить на уровне сущности, какой слушатель будет «привязан» к классу.

Даже если первое решение кажется более простым, я прочитал, что «Вы также можете использовать этот прослушиватель для проверки всех измененных полей. Это более эффективно, чем использование обратного вызова жизненного цикла, когда требуются дорогие проверки». Что считается «дорогой проверкой?».

В моем случае я должен выполнить что-то вроде «если поле X объекта Y изменилось, чем добавить уведомление в таблицу уведомлений, говорящее« пользователь Z изменил значение X (Y) с A на B »

Какой подход был бы наиболее подходящим, учитывая, что у меня около 1000 таких полей?

EDIT2

Чтобы решить мою проблему, я пытаюсь внедрить службу service_container внутри слушателя, чтобы у меня был доступ к диспетчеру для отправки нового события, которое может выполнить сохранение новой сущности, в которой я нуждаюсь. Но как я могу это сделать?

Я пробовал обычным способом, добавляю следующее в service.yml

app_bundle.project_tolereances_listener:
    class: AppBundle\EventListener\ProjectTolerancesListener
    arguments: [@service_container] 

и, конечно, я добавил следующее к слушателю:

protected $container;

public function __construct(ContainerInterface $container)
{
    $this->container = $container;
}

но я получаю следующее:

Catchable Fatal Error: Argument 1 passed to AppBundle\ProjectEntityListener\ProjectTolerancesListener::__construct() must be an instance of AppBundle\ProjectEntityListener\ContainerInterface, none given, called in D:\provarepos\user\vendor\doctrine\orm\lib\Doctrine\ORM\Mapping\DefaultEntityListenerResolver.php on line 73 and defined

Любая идея?

Ответы на вопрос(1)

Ваш ответ на вопрос