decodelabs / glitch
当事情出错时的更好工具
Requires
- php: ^8.1
- decodelabs/coercion: ^0.2
- decodelabs/enlighten: ^0.9
- decodelabs/exceptional: ^0.4.1
- decodelabs/glitch-support: ^0.4.6
- decodelabs/veneer: ^0.11.1
- psr/log: ^3.0
- symfony/polyfill-mbstring: ^1.7
- symfony/polyfill-php82: ^1.29
Requires (Dev)
- decodelabs/phpstan-decodelabs: ^0.6.1
- decodelabs/zest: ^0.2.15
- php-ds/php-ds: ~1.2
- symfony/var-dumper: ^5|^6
- dev-develop / 0.18.x-dev
- v0.18.17
- v0.18.16
- v0.18.15
- v0.18.14
- v0.18.13
- v0.18.12
- v0.18.11
- v0.18.10
- v0.18.9
- v0.18.8
- v0.18.7
- v0.18.6
- v0.18.5
- v0.18.4
- v0.18.3
- v0.18.2
- v0.18.1
- v0.18.0
- v0.17.7
- v0.17.6
- v0.17.5
- v0.17.4
- v0.17.3
- v0.17.2
- v0.17.1
- v0.17.0
- v0.16.5
- v0.16.4
- v0.16.3
- v0.16.2
- v0.16.1
- v0.16.0
- v0.15.10
- v0.15.9
- v0.15.8
- v0.15.7
- v0.15.6
- v0.15.5
- v0.15.4
- v0.15.3
- v0.15.2
- v0.15.1
- v0.15.0
- v0.14.8
- v0.14.7
- v0.14.6
- v0.14.5
- v0.14.4
- v0.14.3
- v0.14.2
- v0.14.1
- v0.14.0
- v0.13.3
- v0.13.2
- v0.13.1
- v0.13.0
- v0.12.0
- v0.11.1
- v0.11.0
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.0
- v0.6.0
- v0.5.0
- dev-dependabot/npm_and_yarn/zest/vite-5.3.6
- dev-main
This package is auto-updated.
Last update: 2024-09-17 18:51:03 UTC
README
当事情出错时的更好工具
Glitch是一个独立的PHP包,旨在在开发应用程序时显著提高错误处理和检查。
该项目旨在提供深入的数据检查工具和异常处理界面。
在DecodeLabs博客上获取新闻和更新。
安装
应通过composer安装Glitch
composer require decodelabs/glitch
用法
Glitch使用Veneer,其前端注册在DecodeLabs\Glitch
。您可以通过此前端访问所有主要功能
use DecodeLabs\Glitch; Glitch::getRunMode(); Glitch::dump('hello');
设置
否则,Glitch无需任何特殊设置即可直接使用。但是,您可以选择一些步骤来自定义操作。
注册为默认错误处理器
use DecodeLabs\Glitch; Glitch::registerAsErrorHandler();
注册基本路径别名,以便在转储中更容易读取文件名
use DecodeLabs\Glitch; Glitch::registerPathAlias('app', '/path/to/my/app'); /* /path/to/my/app/models/MyModel.php becomes app://models/MyModel.php */
传递初始应用程序启动的microtime()
以进行计时
use DecodeLabs\Glitch; Glitch::setStartTime(microtime(true));
设置运行模式(development | testing | production
),以便Glitch可以正确格式化输出
use DecodeLabs\Glitch; Glitch::setRunMode('development');
转储
使用简单的全局函数轻松转储任何内容。这些函数与在Symfony/VarDumper中使用的函数类似,通过使用已加载的Symfony的VarDumper界面来保持兼容性。
use DecodeLabs\Glitch; class MyThing {} $myObject = new MyThing(); // This will dump the object and carry on dump($myObject); // This will dump the object and exit dd($myObject);
您还可以在开发过程中标记函数为不完整
use DecodeLabs\Glitch; function myFunction() { // This will throw a Glitch exception Glitch::incomplete([ 'info' => 'some test info' ]); }
渲染器
结果转储UI(当使用HTML渲染器时,这是默认选项)在运行时注入到iframe中,因此可以渲染到任何HTML页面而不会破坏任何内容。如果页面本身为空,iframe将尽可能填充视口。
转储输出由DecodeLabs\Glitch\Renderer
的实例渲染,可以在启动时覆盖默认的Context
。HTML渲染器在http sapi下加载,CLI渲染器在CLI sapi下使用。
自定义渲染器可以根据它们应发送的位置将Entities
转换为其他输出格式,例如Xml或Json。
自定义颜色
HTML渲染器使用CSS变量来设置单个元素的颜色,可以用自定义值覆盖。创建一个自定义CSS文件,其中包含变量覆盖
:root { --string: purple; --binary: green; }
有关所有当前颜色覆盖选项,请参阅colours.scss
然后加载该文件到HTML渲染器
use DecodeLabs\Glitch; Glitch::getRenderer()->setCustomCssFile('path/to/my/file.css');
传输
一旦渲染,转储信息将通过DecodeLabs\Glitch\Transport
的实例交付,也可以在默认的Context
上覆盖。运输的责任是交付渲染后的转储。
默认情况下,渲染只是回显到STDOUT
,但是自定义传输可以将信息发送到其他接口、浏览器扩展、日志系统等。
自定义转储
您可以通过实现DecodeLabs\Glitch\Dumpable
和/或提供glitchDump
方法来自定义自己的类实例的转储。该方法应生成或返回一个键/值对列表,该列表填充了转储实体所需字段。
use DecodeLabs\Glitch; use DecodeLabs\Glitch\Dumpable; class MyClass implements Dumpable { public $myValue = 'Some text'; private $otherObject; protected $arrayValues = [ 'row1' => [1, 2, 3] ]; public function glitchDump(): iterable { yield 'text' => $this->myValue; // !private, *protected yield 'property:!otherObject' => $this->otherObject; yield 'values' => $this->arrayValues; } }
Dumpable
接口不是必需的 - Glitch无论是否存在该方法都会检查它的存在,这在您不想仅为了提供更好的转储处理而依赖于Glitch库时非常有用。
然而,Dumpable
接口由 glitch-support 包提供,该包仅包含库为 Glitch 提供支持所需的必要元素,而不包括整个库作为依赖项。
许可协议
Glitch 在 MIT 许可协议下授权。请参阅 LICENSE 获取完整的许可协议文本。