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

时间:2014-04-26 19:48:00

标签: php debugging silex

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

<?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();

我包含在作曲家json文件中:

“symfony / debug”:“~2.3”,

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

2 个答案:

答案 0 :(得分:15)

试试这个:

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之前设置错误处理非常重要。

答案 1 :(得分:2)

使用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();