awesomite/error-dumper

错误和异常的精美预览

v0.14.0 2018-10-01 17:28 UTC

README

Latest Stable Version Latest Unstable Version Codacy Badge Coverage Status Build Status

PhpStorm集成的调试器。 ErrorDumper 允许您捕获PHP中所有类型的错误和异常。您将能够序列化、恢复并在稍后以可读形式显示它们。示例

安装

composer require awesomite/error-dumper

屏幕截图

HTML

Exception displayed as HTML

命令行界面

Exception displayed in terminal

如何使用?

<?php

use Awesomite\ErrorDumper\Handlers\ErrorHandler;
use Awesomite\ErrorDumper\Listeners\OnExceptionCallable;
use Awesomite\ErrorDumper\Listeners\OnExceptionDevView;
use Awesomite\ErrorDumper\Views\ViewFactory;

/**
 * Create new error handler.
 * If $mode is null will be used default value E_ALL | E_STRICT.
 * 
 * @see https://php.ac.cn/manual/en/errorfunc.constants.php
 */
$handler = new ErrorHandler(/* optional $mode = null */);

/**
 * Create and push new error listener,
 * this handler will print programmer-friendly stack trace.
 */
$devViewListener = new OnExceptionDevView(ViewFactory::create());
$handler->pushListener($devViewListener);

/**
 * Create and push new custom error listener.
 */
$handler->pushListener(new OnExceptionCallable(function ($exception) {
    // do something with $exception
}));

/**
 * Create and push new custom error listener,
 * this handler will be used only when $exception is instance of \RuntimeException.
 */
$handler->pushListener(new OnExceptionCallable(function (\RuntimeException $exception) {
    // do something with $exception
}));

/**
 * Exit script when error has been detected after executing all listeners.
 */
$handler->exitAfterTrigger(true);

/**
 * Register error handler.
 * 
 * Possible types:
 *   - ErrorHandler::TYPE_ERROR
 *   - ErrorHandler::TYPE_EXCEPTION
 *   - ErrorHandler::TYPE_FATAL_ERROR
 */
$handler->register(/* optional bitmask $types = ErrorHandler::TYPE_ALL */);

阅读文档

版本管理

版本号遵循语义版本控制2.0.0方案。

示例

要运行示例,至少需要PHP 5.4。

composer update --dev
bin/webserver.sh

执行上述命令,并在浏览器中打开URL http://localhost:8001。要在终端中运行示例,请执行 bin/test.php

内容安全策略

此库使用托管在 maxcdn.bootstrapcdn.comcode.jquery.com 的 *.js 文件(@see \Awesomite\ErrorDumper\Views\ViewHtml::getResources)。在显示错误时,将这些域名添加到您的 Content-Security-Policy 标头中。

Symfony集成

错误记录器包