Trước hết, bạn không cần phải tự mình thực hiện vị vua logic này. Doctrine theo dõi việc chèn thực thể, cập nhật, thay đổi trường và xóa nội bộ, đồng thời tạo các sự kiện tương ứng mà bạn có thể lắng nghe. Ví dụ:khi bạn tạo Info
mới và duy trì nó, Doctrine sẽ gửi prePersist
sự kiện khi bạn gọi flush
hoạt động. Bạn có thể tạo người đăng ký sự kiện để đăng ký các sự kiện như vậy và thực hiện logic của bạn ở đó.
Để hiểu đầy đủ các sự kiện trong vòng đời của Học thuyết, hãy xem tài liệu chính thức về học thuyết: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Tạo người đăng ký sự kiện được mô tả trong tài liệu Symfony: http://symfony.com/doc/current/doctrine/event_listaries_subscriber.html#creating-the-subscriber-class
Ngoài ra, bạn có thể thử gói bên thứ ba hiện có sẽ ghi lại các thao tác chèn, cập nhật và xóa thực thể: https:// github .com / simplethings / EntityAuditBundle Nó cũng hỗ trợ lập phiên bản.