Symfony 2では、サービスを定義するときに、%parameter.name%
文字列でそれらを参照することにより、構成パラメーターを注入することが可能です。例えば:
services:
app.mailer:
class: AppBundle\Mailer
arguments: ['%app.mailer.transport%']
しかし、構成値をサービスに注入するための正しいDrupal 8アプローチは何ですか?もちろん\Drupal::config()
、サービスクラスの中で使用したくありません。サービスが参照されるたびに構成値を渡すことも、あまり意味がありません。
構成サービス自体を挿入して構成値を取得できることはわかっていますが、サービス自体が構成サービスからデータを読み取る方法を知っているので、少しお粗末に見えます。例えば:
# Yaml service configuration
services:
app.mailer:
class: mail_module\Mailer
arguments: ['@config.factory']
PHP
<?php
class Mailer {
public function __construct($config) {
$this->mailTransport = $config->get('mail.config')->get('transport');
}
}
これを行う他の方法はありますか?
@config.factory
サービスを使用して構成サービスから構成を取得することです。これは、構成サービスがオーバーライドされ、必ずしも同じ場所から構成値を取得するわけではないためです。