如何调试Silex Framework中的php致命错误


How to debug php fatal errors in Silex Framework

我想知道如何才能看到这样的语法错误(缺少分号):

<?php
var_dump($app)
?>

这将导致WSOD(死亡的白色屏幕)。

我试着包含一个调试配置文件,它看起来像这样:

use Symfony'Component'Debug'ErrorHandler;
use Symfony'Component'Debug'Debug;
// Include the prod configuration
require __DIR__.'/prod.php';
// Enable PHP Error level
error_reporting(E_ALL);
ini_set('display_errors','On');
// Enable debug mode
$app['debug'] = true;
// Handle fatal errors
ErrorHandler::register();
Debug::enable();

我包含在composer json文件中:

"symfony/debug":"~2.3",

但仍然没有改变。我忘了什么?

试试这个:

use Symfony'Component'HttpKernel'Debug'ErrorHandler;
use Symfony'Component'HttpKernel'Debug'ExceptionHandler;
// set the error handling
ini_set('display_errors', 1);
error_reporting(-1);
ErrorHandler::register();
if ('cli' !== php_sapi_name()) {
  ExceptionHandler::register();
}
// init application
$app = new Silex'Application();
// set debug mode
$app['debug'] = true
$app->run();

在初始化$app之前设置错误处理非常重要。

使用composer require symfony/debug安装Symfony/debug,并在Silex''Application实例之前添加这些行

use 'Symfony'Component'Debug'ErrorHandler;
use 'Symfony'Component'Debug'ExceptionHandler;
ini_set('display_errors', 0);
error_reporting(-1);
ErrorHandler::register();
ExceptionHandler::register();