yiisoft / var-dumper
增强 var_dump() 和 var_export() 的功能。处理递归引用,可能突出显示语法和导出闭包。
Requires
- php: ^8.0
- ext-json: *
- ext-mbstring: *
- ext-tokenizer: *
- yiisoft/arrays: ^1.0|^2.0|^3.0
Requires (Dev)
- maglnet/composer-require-checker: ^4.2
- phpunit/phpunit: ^9.5
- rector/rector: ^0.18
- roave/infection-static-analysis-plugin: ^1.16
- spatie/phpunit-watcher: ^1.23
- vimeo/psalm: ^4.30|^5.3
Suggests
- ext-sockets: Send dumps to a server through UDP/TCP protocols
README
Yii VarDumper
VarDumper
增强 var_dump()
和 var_export()
的功能。它处理递归引用,可能突出显示语法并导出闭包。
要求
- PHP 8.0 或更高版本。
安装
可以使用 Composer 安装此包。
composer require yiisoft/var-dumper
通用用法
快速调试
如果您想输出表示变量内容的字符串,请使用以下代码
\Yiisoft\VarDumper\VarDumper::dump($variable);
这对于快速调试很有用。默认情况下,它会深入变量 10
层并突出显示语法。您可以通过方法的不同参数来调整这些设置。
为了方便,您可以使用以下函数
// Prints variables: d($variable, /* Further variables to dump. */); // The same as above dump($variable, /* Further variables to dump. */); // Prints variables and terminate the current script: dd($variable, /* Further variables to dump. */);
格式化调试字符串
获取表示变量内容的字符串,与上面相同,但不含 echo
$string = \Yiisoft\VarDumper\VarDumper::create($variable)->asString(10, true);
10
是最大递归深度,true
是告诉导出器突出显示语法。
导出为 PHP 代码
要获取一个有效的 PHP 表达式字符串,该字符串可以被 PHP 解析器评估,评估结果将返回变量值,请使用以下代码
$string = \Yiisoft\VarDumper\VarDumper::create($variable)->export();
它与 var_export()
类似,但使用短数组语法,处理闭包并序列化对象。
在上述 export()
将为您提供格式良好的代码。您可以通过将 false
作为第一个 $format
参数传递来移除格式。
$useVariables
参数允许指定一个数组,该数组将包含闭包的 use
语句中的变量。这对于包含应从上级作用域获取信息的回调的对象特别有用。
$serializeObjects
参数当给定 false
时,允许强制关闭对象序列化,从而使用与导出闭包相同的反射 API 使用闭包和反射 API。反序列化性能更好。闭包更易于阅读。
导出为 JSON 字符串
$string = \Yiisoft\VarDumper\VarDumper::create($variable)->asJson();
它与 json_encode()
类似,但使用短数组语法,处理闭包并序列化对象。
在上述 asJson()
将为您提供格式良好的代码。您可以通过将 false
作为第一个 $format
参数传递来移除格式。
$depth
参数允许您设置最大递归深度。
输出目的地
选择现有的类或创建一个新的类来控制“导出”发送到的目的地
- EchoHandler
- 使用
echo
将内容写入 stdout 流。 - 默认使用。
- 使用
- StreamHandler
- 使用
ext-sockets
将使用json_encode
编码的导出发送到 UDP 套接字。
- 使用
- CompositeHandler
- 有助于将导出发送到一系列处理器的类,例如
EchoHandler
和StreamHandler
。
- 有助于将导出发送到一系列处理器的类,例如
输出处理器通过 VarDumper::setDefaultHandler()
方法设置。
限制
当前限制包括
- 不支持匿名类或包含匿名类的变量或属性。
文档
如果您需要帮助或有任何问题,您可以访问 Yii 论坛,那里是一个很好的提问和求助的地方。您还可以查看其他 Yii 社区资源。
许可协议
Yii VarDumper 是免费软件。它遵循 BSD 许可协议发布。有关更多信息,请参阅 LICENSE
。
由 Yii 软件 维护。