Първо, не е необходимо сами да прилагате този крал на логиката. Doctrine проследява вмъквания на обекти, актуализации, промени и изтривания на полета вътрешно и създава съответните събития, които можете да слушате. Например, когато създавате нова Info
обект и го персистира, Doctrine ще изпрати prePersist
събитие, когато извикате flush
операция. Можете да създадете абонат за събитие, за да се абонирате за такива събития и да правите логиката си там.
За да разберете напълно събитията от жизнения цикъл на Doctrine, вижте официалната документация на доктрината:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Създаването на абонат за събитие е описано в документацията на Symfony:http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
Също така можете да изпробвате съществуващ пакет от трети страни, който ще регистрира вмъквания, актуализации и изтривания на обекти:https://github .com/simplethings/EntityAuditBundle Той също така поддържа версии.