Symfony:如何在服务类中使用配置参数?

时间:2017-08-15 16:22:47

标签: symfony

我想在服务类parameters.yml中使用mailer中的参数 但是我在实例化邮件程序类时遇到了这个错误:

$mailer = new Mailer();

知道参数是在parameters.yml

中定义的
  

警告:缺少AppBundle \ Service \ Mailer :: __ construct()的参数1,在

中调用
namespace AppBundle\Service


class Mailer
{
private $mailer_user;
private $mailer_password;
private $mailer_name;
private $mailer_host;
public function __construct($mailer_user, $mailer_password ,$mailer_name ,$mailer_host)
{
    $this->mailer_name = $mailer_user;
    $this->mailer_password = $mailer_password;
    $this->mailer_user = $mailer_name;
    $this->mailer_host = $mailer_host;
}
//.....
}

services.yml:

mailer:
    class:    'AppBundle\Service\Mailer'
    arguments:    [%mailer_user%, %mailer_password% ,%mailer_name% ,%mailer_host%]

1 个答案:

答案 0 :(得分:1)

要了解“如何在我的服务类中使用parameters.yml中的参数”(,以及了解如何在Symfony应用中使用服务)只需阅读Symfony文档关注您正在阅读的文档的Symfony版本

顺便说一句,你不应该像你一样直接实现服务类:

$mailer = new Mailer();

但是从服务容器中检索服务实例( Symfony将注意自动注入所有已配置的依赖),就像我们通常在Controller中一样(以下示例访问服务使用提供的短代码扩展了Symfony标准版中包含的FrameworkBundle提供的基本控制器:

$mailer = $this->container->get('mailer');