我需要能够在发生 404 错误时记录/接收电子邮件。我可以在文档中看到如何为这些错误设置新模板,但是如何首先在控制器中捕获它们,以便可以实现日志记录/电子邮件逻辑?
也许添加一个监听 kernel.exception 事件的事件监听器就可以了?
查看http://symfony.com/doc/current/book/internals.html#kernel-exception-event随着http://symfony.com/doc/current/reference/dic_tags.html#dic-tags-kernel-event-listener
一个小例子:
1)创建自定义监听器
//bundles/Acme/AcmeBundle/Listener/CustomListener.php
namespace Acme\AcmeBundle\Listener;
use Symfony\Component\EventDispatcher\Event;
public class CustomListener {
public function onKernelException(Event $event) {
//Get hold of the exception
$exception = $event->getException();
//Do the logging
// ...
}
}
2)将监听器添加到您的配置中
//config.yml
services:
kernel.listener.your_listener_name:
class: Acme\AcmeBundle\Listener\CustomListener
tags:
- { name: kernel.event_listener, event: kernel.exception, method: onKernelException }
要获取日志记录或邮件(Swiftmailer)服务,您可以考虑将它们注入侦听器(http://symfony.com/doc/current/book/service_container.html#referencing-injecting-services)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)