Zunächst einmal müssen Sie diesen König der Logik nicht selbst implementieren. Doctrine verfolgt intern Einfügungen, Aktualisierungen, Feldänderungen und -löschungen von Entitäten und erstellt entsprechende Ereignisse, die Sie abhören können. Zum Beispiel, wenn Sie neue Info
erstellen Entität und persistieren, wird Doctrine prePersist
versenden Ereignis, wenn Sie flush
aufrufen Betrieb. Sie könnten Ereignisabonnenten erstellen, um solche Ereignisse zu abonnieren, und dort Ihre Logik ausführen.
Um die Lebenszyklusereignisse von Doctrine vollständig zu verstehen, lesen Sie die offizielle Doctrine-Dokumentation:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Ereignis-Abonnenten-Erstellung beschrieben in der Symfony-Dokumentation:http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
Sie können auch das vorhandene Bundle von Drittanbietern ausprobieren, das das Einfügen, Aktualisieren und Löschen von Entitäten protokolliert:https://github .com/simplethings/EntityAuditBundle Es unterstützt auch die Versionierung.