支付宝扫一扫付款
微信扫一扫付款
(微信为保护隐私,不显示你的昵称)
Debug组件提供了易于调试PHP代码的工具。
你可以通过下述两种方式安装:
通过Composer安装(Packagist上的symfony/debug
)
通过官方Git宝库(https://github.com/symfony/debug)
然后,包容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工具,因为它会将敏感信息暴露给用户。
ErrorHandler
获取PHP errors并把它们转换成exceptions (对于PHP的fatal errors异常,来自 ErrorException
或 FatalErrorException
类):
1 2 3 | use Symfony\Component\Debug\ErrorHandler;
ErrorHandler::register(); |
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 创作共用授权。