私はFooService
を持っています。これは別の設定サービスからのデータを取り込みます。サービスのメソッド結果を別のサービスの引数として挿入する方法はありますか?
リクエストデータによって設定が異なるため、私はその設定サービスを持っています。設定サービスにはRequestStack
が注入され、関連する設定配列が作成されます。
次のように私のFooService
が見えます:
class Foo
{
private $config;
/**
* @param Config $config
*/
public function __construct(Config $config) {
$this->config = $config->getData();
}
}
しかし、代わりにサービスを注入することは、ユニットテストのための単純であるとして、私は、getData
の唯一のメソッド呼び出しの結果を注入することを好みます。私は設定を嘲笑する必要はありません、私はちょうど配列を渡すことができます。
私の現在のservice.yml
は、定義などがあります。
config:
...
foo:
class: Kopernikus\LeBundle\Service\Foo
arguments:
- @config
私は経由してファクトリメソッドのためのように私のfoo
定義を変更してみました:まだ、これはあまりにも全体のサービスを注入
foo:
class: Kopernikus\LeBundle\Service\Foo
arguments:
- [@config, getData]
。
サービスのメソッド結果を別のサービスの引数として挿入するにはどうすればよいですか?
括弧はあまりにも多く、ここでは配列の配列を注入します。 '' @ = service( 'config')。getData() "'で十分です。 =) – k0pernikus
バージョン** 3 **以降、[ここ](http://symfony.com/doc/3.3/service_container/expression_language.html)に移動しました – Trix