我想在服务类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%]
答案 0 :(得分:1)
要了解“如何在我的服务类中使用parameters.yml
中的参数”(,以及了解如何在Symfony应用中使用服务)只需阅读Symfony文档关注您正在阅读的文档的Symfony版本:
顺便说一句,你不应该像你一样直接实现服务类:
$mailer = new Mailer();
但是从服务容器中检索服务实例( Symfony将注意自动注入所有已配置的依赖),就像我们通常在Controller中一样(以下示例访问服务使用提供的短代码扩展了Symfony标准版中包含的FrameworkBundle提供的基本控制器:
$mailer = $this->container->get('mailer');