5

コンテキストについては、Symfony 2.4 と Doctrine 2.4 を使用します。

現在、ドクトリン エンティティ リスナー内にいくつかのロジックを移動しようとしています。今のところ、@EntityListeners外部依存関係を必要としないため、リスナーをエンティティに登録するためにアノテーションを使用しました。しかし今、Symfony2 コンテナーを介してエンティティーリスナーにサービスを注入したいと考えています。この機能は非常に新しいため、最初に可能かどうか、次にどのようにできるかを説明する関連ドキュメントはありません。

ありがとう!

4

2 に答える 2

3

これは Doctrine 2.4 で可能ですが、独自の Entity Listener Resolver クラスを作成する必要があります。

コンテナー (または私の場合は ServiceManager) をコンストラクター パラメーターとして受け取るカスタム リゾルバーの登録の詳細については、Doctrine のドキュメントを参照してください。

私はこれを Symfony2 コンテナーで試したことはありませんが、Zend Framework 2 のServiceManager モジュールで試しましたが、原則は非常に似ている可能性があります。

ZF2 の DoctrineORMModule は、ServiceManager を使用して MyEntityListenerResolverFactory を呼び出し、次に ServiceManager を MyEntityListenerResolver に注入することで、このプロセス全体を非常に簡潔にします。

于 2014-08-01T16:37:41.380 に答える