为酷炫孩子准备的PHP错误处理

2.15.1 2021-07-28 09:19 UTC

README

酷炫孩子的PHP错误处理

Total Downloads Latest Version Build Status on newer versions Build Status on older versions Scrutinizer Quality Score Code Coverage

Whoops!

whoops 是一个PHP的错误处理框架。开箱即用,它提供了一个美观的错误界面,帮助您调试您的Web项目,但核心是一个简单而强大的错误处理系统。

特性

  • 灵活的基于堆栈的错误处理
  • 独立库(目前)无依赖
  • 简单的API处理异常、跟踪帧及其数据
  • 包括一个美观的错误页面,适用于您的Web应用项目
  • 包括在您的编辑器和IDE中直接打开引用文件的功能
  • 包括处理不同响应格式(JSON、XML、SOAP)的处理程序
  • 易于扩展和与现有库集成
  • 清洁、结构良好且经过测试的代码库

赞助商

Blackfire.io

安装

如果您使用Laravel 4、Laravel 5.5+ 或 Mezzio,您已经拥有了Whoops。社区还提供了如何将Whoops集成到 Silex 1Silex 2PhalconLaravel 3Laravel 5CakePHP 3CakePHP 4Zend 2Zend 3Yii 1FuelPHPSlimPimpleLaminas 或任何使用 StackPHP 中间件PSR-7 中间件 的框架的说明。

如果您不使用这些框架中的任何一个,这里有一个非常简单的安装方法

  1. 使用 Composer 将Whoops安装到您的项目中

    composer require filp/whoops
  2. 在您的代码中注册美观的处理程序

    $whoops = new \Whoops\Run;
    $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
    $whoops->register();

有关更多选项,请参阅 examples/ 中的 示例文件 以了解事物的工作方式。还可以查看 API 文档 以及以下可用的处理程序列表。

您还可以覆盖Whoops执行的某些系统调用。为此,扩展 Whoops\Util\SystemFacade,重写您想要的函数,并将其作为参数传递给 Run 构造函数。

您还可以收集生成的HTML以自行处理

$whoops = new \Whoops\Run;
$whoops->allowQuit(false);
$whoops->writeToOutput(false);
$whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler);
$html = $whoops->handleException($e);

可用处理程序

whoops 目前随以下内置处理程序一起提供,位于 Whoops\Handler 命名空间中

  • PrettyPageHandler - 当发生意外时显示一个美观的错误页面
  • PlainTextHandler - 输出纯文本消息,用于CLI应用程序
  • CallbackHandler - 将闭包或其他可调用对象包装为处理器。您不需要显式使用此处理器,whoops会自动将您传递给Whoops\Run::pushHandler的任何闭包或可调用对象进行包装
  • JsonResponseHandler - 捕获异常并将有关异常的信息作为JSON字符串返回。可用于,例如,与AJAX请求良好交互。
  • XmlResponseHandler - 捕获异常并将有关异常的信息作为XML字符串返回。可用于,例如,与AJAX请求良好交互。

您还可以使用可插拔的处理器,例如SOAP处理器

作者

该库主要由Filipe Dobreira开发,并由Denis Sokolov维护。许多优秀的修复和增强都是由各种贡献者提供的。特别感谢Graham CampbellMarkus Staab的持续参与。