Pertama-tama Anda tidak perlu menerapkan raja logika ini sendiri. Doctrine melacak penyisipan entitas, pembaruan, perubahan bidang, dan penghapusan secara internal, serta membuat peristiwa terkait yang dapat Anda dengarkan. Misalnya, ketika Anda membuat Info
baru entitas dan mempertahankannya, Doctrine akan mengirimkan prePersist
acara saat Anda memanggil flush
operasi. Anda dapat membuat pelanggan acara untuk berlangganan acara tersebut dan melakukan logika Anda di sana.
Untuk memahami sepenuhnya peristiwa siklus hidup Doktrin, lihat dokumentasi doktrin resmi:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Pembuatan pelanggan acara yang dijelaskan dalam dokumentasi Symfony:http://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
Anda juga dapat mencoba bundel pihak ketiga yang ada yang akan mencatat penyisipan, pembaruan, dan penghapusan entitas:https://github .com/simplethings/EntityAuditBundle Ini juga mendukung pembuatan versi.