まず第一に、このロジックの王様を自分で実装する必要はありません。 Doctrineは、エンティティの挿入、更新、フィールドの変更と削除を内部で追跡し、聞くことができる対応するイベントを作成します。たとえば、新しいInfo
を作成するとき エンティティを永続化すると、DoctrineはprePersist
をディスパッチします flush
を呼び出したときのイベント 手術。イベントサブスクライバーを作成して、そのようなイベントをサブスクライブし、そこでロジックを実行できます。
Doctrineのライフサイクルイベントを完全に理解するには、公式のDoctrineドキュメントを確認してください: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/events.html
Symfonyのドキュメントで説明されているイベントサブスクライバーの作成: http: //symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-subscriber-class
また、エンティティの挿入、更新、削除をログに記録する既存のサードパーティバンドルを試すこともできます: https:// github .com / simplethings / EntityAuditBundle また、バージョン管理もサポートしています。