Debug组件

Debug组件提供了易于调试PHP代码的工具。

安装 

你可以通过下述两种方式安装:

然后,包容vendor/autoload.php文件,以开启Composer提供的自动加载机制。否则,你的程序将无法找到这个Symfony组件的类。

用法 

Debug组件提供了几种工具,来帮你调试PHP代码。将它们全部开启就和得到它们一样容易:

1
2
3
use Symfony\Component\Debug\Debug;
 
Debug::enable();

enable() 方法注册了一个error handler,一个exception handler以及 一个特殊的class loader

你应永远不在生产环境下开启debug工具,因为它会将敏感信息暴露给用户。

启用Error Handler 

ErrorHandler 获取PHP errors并把它们转换成exceptions (对于PHP的fatal errors异常,来自 ErrorExceptionFatalErrorException 类):

1
2
3
use Symfony\Component\Debug\ErrorHandler;
 
ErrorHandler::register();

启用Exception Handler 

ExceptionHandler 类捕获“未捕获的PHP异常”,然后把它们转换成一个美观的PHP响应。在debug模式下这非常有用,可以通过更漂亮、更有用的内容来替代默认的PHP/XDebug输出:

1
2
3
use Symfony\Component\Debug\ExceptionHandler;
 
ExceptionHandler::register();

如果 HttpFoundation组件 可用,那么这个handler将使用一个Symfony Response对象;否则它将回滚到一个常规PHP响应。

调试一个类加载器 

当一个类无法被已注册的autoloader(自动加载器)找到时,DebugClassLoader 尝试抛出更为有用的异常。所有实现了 findFile() 方法的自动加载器将被替换成 DebugClassLoader 打包器。

使用 DebugClassLoader 简单到只需调用其静态 enable() 方法:

1
2
3
use Symfony\Component\Debug\DebugClassLoader;
 
DebugClassLoader::enable();

本文,包括例程代码在内,采用的是 Creative Commons BY-SA 3.0 创作共用授权。

登录symfonychina 发表评论或留下问题(我们会尽量回复)