Tout d'abord, vous n'avez pas besoin d'implémenter vous-même ce roi de la logique. Doctrine suit les insertions d'entités, les mises à jour, les modifications et les suppressions de champs en interne, et crée les événements correspondants que vous pouvez écouter. Par exemple, lorsque vous créez un nouveau Info
l'entité et la persiste, Doctrine enverra prePersist
événement lorsque vous appelez flush
opération. Vous pouvez créer un abonné à l'événement pour vous abonner à de tels événements et y faire votre logique.
Pour bien comprendre les événements du cycle de vie de Doctrine, consultez la documentation officielle de Doctrine :http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Création d'abonnés aux événements décrite dans la documentation Symfony :http ://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
Vous pouvez également essayer le bundle tiers existant qui enregistrera les insertions, les mises à jour et les suppressions d'entités :https://github .com/simplethings/EntityAuditBundle Il prend également en charge la gestion des versions.