【发布时间】:2015-02-20 17:11:27
【问题描述】:
在 symfony 2.5.9 中,我尝试覆盖 Monolog 的 SwiftMailerHandler
class MySwiftMailerHandler extends SwiftMailerHandler
{
public function __construct(\Swift_Mailer $mailer, $message, $level = Logger::ERROR, $bubble = true)
{
$message->setSubject('Lorem ipsum : ' . $message->getSubject()) ;
parent::__construct($mailer, $message, $level, $bubble);
}
}
有服务
<service id="my_custom_handler" class="XXXX\Monolog\Handler\MySwiftMailerHandler">
<tag name="monolog.handler.swift"/> <!-- which tag to use ? -->
</service>
和配置
monolog:
handlers:
mail:
type: fingers_crossed
action_level: critical
handler: custom #before buffered
custom:
type: service
id: my_custom_handler
#buffered:
# type: buffer
# handler: swift
swift:
type: swift_mailer
from_email: %monolog_from_email%
to_email: %monolog_to_email%
subject: 'Error'
level: critical
但我的处理程序有以下错误:“__construct() 必须是 Swift_Mailer 的实例,没有给出...”
如何创建我的新处理程序服务?糟糕的配置独白?使用哪个标签?怎么做 ? 谢谢!
【问题讨论】:
-
当您声明您的服务时,您没有传递任何必需的依赖项。建议您检查核心代码是如何执行此操作的,并在文档中阅读有关依赖注入的更多信息。