我遇到了Symfony 2.3的问题,我无法让它工作以获得处理致命错误的自定义函数。 Symfony例外工作正常,如404等,但不是致命错误。
这是我在搜索互联网后得到的,我在TestBundle中创建了一个父控制器。另一个默认控制器扩展了TestingSomeThingController。请查看以下文件以获取代码。但是当我删除了;在DefaultController的行尾,它显示标准的致命错误页面,而不是我在代码中放入的“yaay”。有没有人对这个问题有答案?谢谢!
TestingSomeThingController
<?php
namespace TestingSomeThing\TestBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller as BaseController;
use Symfony\Component\HttpFoundation\Response;
class TestingSomeThingController extends BaseController
{
public function __construct()
{
set_error_handler(array($this, 'sdfg'));
register_shutdown_function(array($this, 'sdfg'));
}
public function sdfg()
{
$error = error_get_last();
if(isset($error)) {
echo 'yaay';
die();
}
}
}
DefaultController
<?php
namespace TestingSomeThing\TestBundle\Controller;
use TestingSomeThing\TestBundle\Controller\TestingSomeThingController;
class DefaultController extends TestingSomeThingController
{
public function indexAction($name)
{
return $this->render('TestingSomeThingBundle:Default:index.html.twig', array('name' => $name))
}
}
答案 0 :(得分:-5)
根据定义,致命错误是不可恢复的。
简单来说,这意味着不能再继续处理了。
没有办法处理它,你也不想尝试。 重点是告诉你发生了致命的事情,不再进行任何处理。
fa·tal /fātl/ 形容词 (1)导致死亡。 (2)导致失败或灾难。
几乎所有语言(包括英语)都是如此,并且不是Symfony或PHP特有的东西 - 你根本无法从致命的东西中恢复过来。