コアの翻訳コンポーネントをオーバーライドするために Symfony2 Bundle 継承機能を使用したいと考えています。先に進む前に、それについてアドバイスをしたいと思います。することは可能ですか?
1 に答える
Symfony2 にはbundlesをオーバーライドする簡単な方法がありますが、Translation Componentをオーバーライドしたい場合があります(バンドル、コンポーネント、およびブリッジの違いについての詳細は、この回答を参照してください)。
翻訳コンポーネントをオーバーライドする場合は、依存関係の挿入を利用できます。Symfony2 フレームワークが翻訳を使用する場合、翻訳サービスの 1 つを使用します。したがって、必要に応じてオーバーライドする必要がある場合は、翻訳サービスを編集してください。すべての変換サービスとパラメータは にありますvendor/symfony/src/symfony/bundle/frameworkbundle/resources/config/translation.xml
。
Symfony がサービスとして使用したすべてのクラスをパラメーターとして保存していることがわかります。パラメーターを必要なクラス名に変更するだけで準備完了です!
たとえば、Translator
. Acme\DemoBundle\Translation\Translator
少なくとも拡張するクラスを生成し、Symfony\Component\Translation\TranslatorInterface
これをサービス構成に追加できます。
parameters:
translator.class: Acme\Demobundle\Translation\Translator