filp/whoops

为酷 kids 量身定制的 PHP 错误处理

资助包维护!
denis-sokolov

安装次数: 272,044,206

依赖项: 1,773

建议者: 61

安全: 1

星标: 13,174

关注者: 194

分支: 602

公开问题: 6

2.15.4 2023-11-03 12:00 UTC

README

为酷 kids 定制的 PHP 错误

Total Downloads Latest Version Build Status on newer 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 的持续参与。