Prima di tutto non è necessario implementare da soli questo re della logica. Doctrine tiene traccia degli inserimenti di entità, degli aggiornamenti, delle modifiche ai campi e delle eliminazioni internamente e crea eventi corrispondenti che puoi ascoltare. Ad esempio, quando crei una nuova Info
entità e persiste, Doctrine invierà prePersist
evento quando chiami flush
operazione. Puoi creare un abbonato all'evento per iscriverti a tali eventi e fare la tua logica lì.
Per comprendere appieno gli eventi del ciclo di vita di Doctrine, consulta la documentazione ufficiale della dottrina:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Creazione dell'iscritto all'evento descritta nella documentazione di Symfony:http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
Inoltre puoi provare il bundle di terze parti esistente che registrerà inserimenti, aggiornamenti ed eliminazioni di entità:https://github .com/simplethings/EntityAuditBundle Supporta anche il controllo delle versioni.