私はDependency injection with custom Doctrine 2 hydratorとほとんど同じ問題がありますが、カスタムのデータ型にハイドレーターではなくサービスを注入する必要があります。カスタムDoctrine 2データ型の依存性注入
参照される質問の解決策は、Doctrineがクラス自体を初期化するため、ドクトリンソースコードの複製と変更に依存しています。うまくいえば、カスタムデータ型には別のアプローチがありますか?
これは、Symfony3アプリケーション用です。そこに適用する魔法がいくつかあるかもしれません。最初の質問にコメントパー
Doctrineがカスタムデータ型をどのようにインスタンス化するかは、これを難しくしています。 doctrineの 'Type :: addType($ name、$ className)'メソッドは、クラスのインスタンスではなくクラス名を要求します。あなたができることはバンドル拡張クラス内に独自のdoctrine型を追加し、必要な依存関係を持つ 'kernel.request'にイベントリスナーサービスを登録し、' \ Doctrine \ DBAL \ Types :: getType($ name) - > setSomeDependency($ dependency); '。しかし、かなり厄介です。 – ChadSikorra
@ChadSikorraこれは、[ここ]のアプローチ(http://php-and-symfony.matthiasnoback.nl/2012/09/symfony2-mongodb-odm-creating-custom-types-with-dependencies/)に似ています。質問を投稿した直後に、イベントリスナーなしで見つかりました。私は今これを実験しており、有望だと思われます。あなたのコメントを回答として追加し、私はそれを受け入れます。 – bblue