1

Symfony2 で別のサービスからデータを注入してサービスを構成することは可能ですか? たとえば、別のサービスでゲッターを呼び出すことによってですか?

私の特定のケースでは、翻訳可能なエンティティ フィールドを処理できる (再利用可能な) サービスを作成しています。このためには、アプリケーションで利用可能なロケールのリストが必要です。ロケールでも機能する他のバンドルをいくつか見てきましたが、それらは常に構成からの静的配列を使用します。例えば:

a2lix_translation_form:
    locales: [en, fr, nl]

この構成は通常、バンドル構成を介してコンストラクターパラメーターまたはセッターの形式でサービスにマッピングされます。例えば:

class SomeService {
    function __construct(array $locales) { ... }
    // or
    function setLocales(array $locales) { ... }
}

しかし、私の場合、利用可能なロケールのリストは常に静的であるとは限らず、多くの場合データベースから取得されます。配列を返すLocaleメソッドを使用してアプリケーションにサービスを作成しました。getLocalesしかし、それを必要とするサービスにその配列をどのように取得すればよいでしょうか?

ロケールのリストを必要とする私が作成しているサービスは、別の再利用可能なバンドルに分割されています。Localeそのサービスはアプリケーションに固有のものであり、作成しているバンドルではないため、サービスを直接注入したくありません。バンドルのユーザーが、ロケールの静的リストを提供したり、すべてのロケールを持つサービスを参照したりできるようにしたいと考えています。

4

1 に答える 1