Først og fremmest behøver du ikke selv at implementere denne logiks konge. Doktrin sporer enhedsindsættelser, opdateringer, feltændringer og sletninger internt og opretter tilsvarende begivenheder, som du kan lytte til. For eksempel, når du opretter ny Info
enhed og fortsætter den, vil Doctrine sende prePersist
hændelse, når du kalder flush
operation. Du kan oprette begivenhedsabonnent til at abonnere på sådanne begivenheder og gøre din logik der.
For fuldt ud at forstå Doctrine-livscyklushændelser, tjek den officielle doktrindokumentation:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Oprettelse af begivenhedsabonnenter beskrevet i Symfony-dokumentationen:http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
Du kan også prøve eksisterende tredjepartsbundt, der vil logge enhedsindsættelser, opdateringer og sletninger:https://github .com/simplethings/EntityAuditBundle Det understøtter også versionering.