brenno-duarte / modern-php-exception
以现代且直观的方式显示PHP错误和异常
3.3.6
2024-09-28 18:16 UTC
Requires
- php: ^8.3
- ext-mbstring: *
- ext-pdo: *
- symfony/yaml: ^7.0
README
以现代且直观的方式显示PHP错误和异常!
要求
- PHP >= 8.3
- ext-mbstring
- ext-pdo
通过Composer安装
使用以下命令
composer require brenno-duarte/modern-php-exception
如何使用
您只需要调用以下示例中的单个方法。
use ModernPHPException\ModernPHPException; $exc = new ModernPHPException(); $exc->start();
从那里开始,所有触发的事件都将通过ModernPHPException组件显示出来。
您可以在类构造函数中更改返回值、标题和主题设置,如下所示。
YAML配置
您可以根据需要自定义异常标题、启用深色模式并启用生产模式。使用示例文件config.example.yaml
或创建一个新的文件。
$config = __DIR__ . '/config.example.yaml'; $exc = new ModernPHPException($config); $exc->start();
更改页面标题
title: My title
启用深色模式
# Default: false dark_mode: true
启用生产模式
# Default: false production_mode: true
要更改消息,请更改error_message
变量
production_mode: true error_message: Something wrong!
在没有互联网连接的情况下加载CSS文件
# Use `false` only if you have no internet connection enable_cdn_assets: false
启用日志文件
enable_logs: false # Default: sys_get_temp_dir() . "/ModernPHPExceptionLogs/ModernPHPExceptionLogs.log" dir_logs: C:\wamp64\www\modern-php-exception\
启用发生次数
如果您希望记录应用程序显示的所有异常和错误的历史记录,您可以通过使用enableOccurrences
方法启用发生次数
$config = __DIR__ . '/config.example.yaml'; $exc = new ModernPHPException($config); $exc->enableOccurrences(); // <- Before `start` method $exc->start();
别忘了在config.example.yaml
文件中配置数据库。
# Database for Occurrences db_drive: mysql db_host: localhost db_name: database_name db_user: root db_pass: pass
创建异常解决方案
如果您正在创建自定义异常类,您可以为此异常添加一个解决方案。
为此,请使用实现SolutionInterface
接口的静态getSolution
方法
<?php namespace Test; use ModernPHPException\Solution; use ModernPHPException\Interface\SolutionInterface; class CustomException extends \Exception implements SolutionInterface { public function getSolution(): Solution { return Solution::createSolution('My Solution') ->setDescription('description') ->setDocs('https://google.com'); } #...
createSolution:
修复异常的解决方案名称setDescription:
异常解决方案的详细描述setDocs:
如果存在文档,此方法将显示一个按钮。默认情况下,按钮的名称将是Read More
,但您可以通过更改方法的第二个参数来更改名称
您可以使用新类进行测试
public static function staticCall() { throw new CustomException("Error Processing Request"); }
函数
Modern PHP Exceptions有一些函数可以帮助您调试代码。可用函数包括
- 一个简单的函数,可以拉取调试回溯的所有详细信息。
get_debug_backtrace()
- 一个函数,返回
var_dump()
的值而不是输出它。
echo var_dump_buffer()
- 基于XDebug样式的PHP函数,用于替换var_dump()和print_r()。
var_dump_debug()
在终端中,您可以使用文档块标志简单地在某些对象属性上隐藏或显示。
/** * @dumpignore-inheritance * @dumpignore-inherited-class * @dumpignore-private * @dumpignore-public * @dumpignore-public */ Class Foo extends Bar { /** @dumpignore */ private ?BigObject $foo = null; }
- 转储PHP值并终止脚本。此函数使用
var_dump_debug
。
dump_die()
- 查看PHP闭包的源代码
closure_dump()
记录器
如果您想将日志记录到文件中,您可以使用Debug
类。要记录日志,请使用log
方法。
use ModernPHPException\Debug; Debug::log($message, $log_file);
您可以将方法调用的文件和行注册。
use ModernPHPException\Debug; Debug::log($message, $log_file, __FILE, __LINE__);
要检索记录在文件中的日志,请使用get
方法。
use ModernPHPException\Debug; Debug::get($log_file);
测试
如果您想测试组件,请在您的index.php
中使用以下代码。
<?php require 'vendor/autoload.php'; use ModernPHPException\ModernPHPException; $exc = new ModernPHPException(); $exc->start(); throw new Exception("Error Test", 1); $a = new FakeClass();
许可
MIT