En primer lugar, no necesita implementar este rey de la lógica usted mismo. Doctrine rastrea internamente las inserciones, actualizaciones, cambios de campo y eliminaciones de entidades, y crea los eventos correspondientes que puedes escuchar. Por ejemplo, cuando crea una nueva Info
entidad y persistirla, Doctrine enviará prePersist
evento cuando llamas a flush
operación. Puede crear un suscriptor de eventos para suscribirse a dichos eventos y hacer su lógica allí.
Para comprender completamente los eventos del ciclo de vida de Doctrine, consulte la documentación oficial de la doctrina:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Creación de suscriptores de eventos descrita en la documentación de Symfony:http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
También puede probar el paquete de terceros existente que registrará las inserciones, actualizaciones y eliminaciones de entidades:https://github .com/simplethings/EntityAuditBundle También es compatible con el control de versiones.