根据此文档页面:

http://symfony.com/doc/current/cookbook/controller/error_pages.html

Symfony使用TwigBundle来控制异常的显示.但是,我不打算自定义显示,如文档中所述,我想覆盖它.我正在研究一个小的REST API,我想覆盖对我的bundle调用TwigBundle,进行自己的异常处理(就REST而言:映射正确的HTTP状态代码和纯文本正文响应).

我找不到任何关于这个的内容,手册上的参考文献并不是那么好,特别是在内核部分.也许有人已经这样做了,可以帮助我吗?谢谢.

您应该创建一个侦听kernel.exception事件的侦听器.在该侦听器的onKernelException方法中,您可以检查您的异常,例如

在异常监听器类上

//namespace declarations
  class YourExceptionListener
  {

      public function onKernelException(GetResponseForExceptionEvent $event)
      {
        $exception =  $event->getException();
        if ($exception instanceof YourException) {
            //create response,set status code etc.
            $event->setResponse($response); //event will stop propagating here. Will not call other listeners.
        }
      }
  }

服务声明将是

//services.yml
 kernel.listener.yourlisener:
  class: FQCN\Of\YourExceptionListener
  tags:
    - { name: kernel.event_listener,event: kernel.exception,method: onKernelException }

php – 覆盖Symfony 2异常?的更多相关文章

  1. centos6 – 禁用内部Intel X710 LLDP代理

    根据thislink,似乎这些X710可能正在运行内部LLDP代理,它拦截交换机的LLDP帧.我们看到的受影响机器上的固件是:禁用NIC上的内部LLDP代理的方法不起作用.尽管如此,我仍在四处寻找,但我想我有几个选择:>找到在NIC上禁用内部LLDP代理的正确方法,并使用现有方法在这些计算机上提取LLDP数据–首选.>使用NICLLDP代理并找到从NIC中提取邻居TLV的方法.有没有其他人遇到过这些卡的相同或类似问题,如果是这样,你是如何解决这个问题的?

  2. Windows命令行相当于Linux中的“时间”?

    我试图比较不同算法的性能,但没有Linux机器工作,所以我希望在Windows中有类似的命令.以下内容远非完美.但它是我能够最接近模拟UNIX时间行为的.我相信它可以改进很多.基本上我正在创建一个接收脚本块的cmdlet,生成一个进程并使用GetProcesstimes来获取Kernel,User和Elapsed次.加载cmdlet后,只需调用它即可Measure-Time-Command{your-command}[-silent]-Silent开关意味着没有从命令生成的输出例如:生成的输出:这是cmd

  3. centos – iptables nat不存在

    今天我在主机系统上的iptablesnat停止工作,我不知道发生了什么!由于vzctl从4.6更新到4.7,因此默认情况下将nf_conntrack的设置更改为禁用.相应的提交消息:…解:Independenceofdistributionitissomewherein/etcdirectory.Findit:$sudogrep-R“optionsnf_conntrackip_conntrack_disable_ve0=1”/etc/modprobe.d/andreplacethe“1”with“0”:o

  4. 重启后CentOS 6.5新内核无法激活

    今天我正在运行一些yum更新,并希望通过确保我有一个新的内核来验证一切都很顺利.令我惊讶的是,我注意到CentOS仍在运行2.6.32-431.5.1.el6.x86_64,即使它看起来好像已经安装了2.6.32-431.23.3.el6.实际上2.6.32-431.23.3.el6显示在/etc/grub.conf中,但不在upstart引导选项中.有什么想法吗?在更新日志中,它说:这可能是原因吗?我的/etc/grub.conf:发现问题…

  5. 使用CentOS 6.2在HyperV上进行时间同步

    我在HyperV下运行了一个CentOSVM.我安装了集成服务,CentOS显示当前的clocksource是hyperv_clocksource,但是在一周的正常运行时间后,我在VM中的时间大约是10分钟.我对新IC和可插拔时钟源的理解是,这不应该再发生了.是否需要任何其他配置才能使可插入的clockource“工作”?

  6. i7-8700/i7-8700K在Ubuntu 16.04上界面卡顿

    解决办法升级Kernel:4.15版本以上的kernel对Caffelake版的cpu集显有bugfix.在run完以上命令之后,系统会重启,然后一切正常!!!

  7. 如何在ubuntu上默认启用透明的大页面?

    如何在ubuntu上默认启用透明的大页面?添加以下内容:到你的GRUB_CMDLINE_LINUX_DEFAULT:做一个:应该做的伎俩.

  8. How to Install Kernel 4.16 to Ubuntu

    HowtoInstallKernel4.16inUbuntuhttp://ubuntuhandbook.org/index.php/2018/04/install-kernel-4-16-ubuntu-linux-mint/

  9. ubuntu安装虚拟带库mhVTL

    在ubuntu里安装虚拟磁带库,使用的软件是mhVTL1.下载mhVTL下载地址如下,下载文件名为mhvtl-2016-03-10.tarhttp://www.mhvtl.com/download/2.安装必要的包和应用root@db2a:~#apt-getinstallzlib1g-devliblzma-devliblzo2-devmakegcclibsgutils2-2mt-stmtxlssc

  10. php – 覆盖Symfony 2异常?

    谢谢.您应该创建一个侦听kernel.exception事件的侦听器.在该侦听器的onKernelException方法中,您可以检查您的异常,例如在异常监听器类上服务声明将是

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部