Först och främst behöver du inte implementera denna kung av logik själv. Doctrine spårar entitetsinfogningar, uppdateringar, fältändringar och borttagningar internt och skapar motsvarande händelser som du kan lyssna på. Till exempel när du skapar ny Info
enhet och behåller den, kommer Doctrine att skicka prePersist
händelse när du anropar flush
drift. Du kan skapa en händelseprenumerant för att prenumerera på sådana händelser och göra din logik där.
För att till fullo förstå doktrinens livscykelhändelser, kolla in den officiella doktrindokumentationen:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Skapande av händelseprenumeranter beskrivs i Symfony-dokumentationen:http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
Du kan också prova befintliga tredjepartspaket som loggar infogningar, uppdateringar och raderingar av enheter:https://github .com/simplethings/EntityAuditBundle Den stöder även versionshantering.