PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Symfony3 speichert jedes Update in der Datenbank

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.