vipkwd / var-dumper
var_dump 函数的替代品
2.0.2
2023-05-11 18:16 UTC
Requires
- php: >=7.0
- symfony/polyfill-mbstring: ^1.6
Requires (Dev)
- awesomite/phpunit-4.8-fixer: ^1.0
- phpunit/phpunit: ^4.8.36
- sebastian/comparator: >=1.2.3
- symfony/console: ^2.7 || ^3.0 || ^4.0 || ^5.0
- symfony/var-dumper: ^2.7 || ^3.0 || ^4.0 || ^5.0
Suggests
- symfony/var-dumper: Required for Vipkwd\VarDumper\SymfonyVarDumper
Conflicts
- symfony/var-dumper: <2.7.16 || >=2.8.0 <2.8.9 || >=3.0.0 <3.0.9 || >=3.1.0 <3.1.3
README
为什么?
为了设置打印变量的限制大小,并生成比内置的 var_dump
函数更易于阅读的输出。
用法
<?php use Vipkwd\VarDumper\LightVarDumper; $loremIpsum = <<<'LOREM_IPSUM' Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin nibh augue, suscipit a, scelerisque sed, lacinia in, mi. Cras vel lorem. Etiam pellentesque aliquet tellus. Phasellus pharetra nulla ac diam. Quisque semper justo at risus. Donec venenatis, turpis vel hendrerit interdum, dui ligula ultricies purus, sed posuere libero dui id orci. Nam congue, pede vitae dapibus aliquet, elit magna vulputate arcu, vel tempus metus leo non est. Etiam sit amet lectus quis est congue mollis. Phasellus congue lacus eget neque. Phasellus ornare, ante vitae consectetuer consequat, purus sapien ultricies dolor, et mollis pede metus eget nisi. Praesent sodales velit quis augue. Cras suscipit, urna at aliquam rhoncus, urna quam viverra nisi, in interdum massa nibh nec erat. LOREM_IPSUM; $array = array( 'a' => 'a', 'ab' => 'ab', 'abc' => 'abc', 'abcd' => 'abcd', 'abcde' => 'abcde', 'abcdef' => 'abcdef', 'abcdefg' => 'abcdefg', 'abcdefgh' => 'abcdefgh', ); $smallArray = array(1, 2.5, null, M_PI, INF); $varDumper = new LightVarDumper(); $varDumper ->setMaxChildren(20) ->setMaxDepth(5) ->setMaxStringLength(400) ->setMaxLineLength(50) ->setIndent(' '); $varDumper->dump(array($loremIpsum, $array, $smallArray));
输出
array(3) {
[0] =>
string(768)
› Lorem ipsum dolor sit amet, consectetur adipiscing
› elit. Proin nibh augue, suscipit a, scelerisque
› sed, lacinia in, mi. Cras vel lorem. Etiam
› pellentesque aliquet tellus. Phasellus pharetra
› nulla ac diam. Quisque semper justo at risus.↵
› Donec venenatis, turpis vel hendrerit interdum,
› dui ligula ultricies purus, sed posuere libero dui
› id orci. Nam congue, pede vitae dapibus aliquet,
› elit magna vulpu...
[1] =>
array(8) {
[a] => “a”
[ab] => “ab”
[abc] => “abc”
[abcd] => “abcd”
[abcde] => “abcde”
[abcdef] => “abcdef”
[abcdefg] => “abcdefg”
[abcdefgh] => “abcdefgh”
}
[2] => array(5) {1, 2.5, NULL, M_PI, INF}
}
注意
为了将输出保存为变量,请使用方法 dumpAsString()
而不是 dump()
。
安装
composer require vipkwd/var-dumper
示例
带有堆栈跟踪的异常
object(DivideByZeroException) #4 {[
[message] => “Cannot divide by zero”
[code] => 0
[file] => “(...)/examples/exception.php:31”
[previous] => NULL
[trace] =>
1. (...)/examples/exception.php:48 Divider->divide(
a: 5
b: 0
)
2. (...)/examples/exception.php:55 Calculator::execute(
action: “divide”
numberA: 5
numberB: 0
)
]}
简单数组
<?php use Vipkwd\VarDumper\LightVarDumper; $dumper = new LightVarDumper(); $dumper->dump(\range(1, 5));
array(5) {1, 2, 3, 4, 5}
闭包
<?php use Vipkwd\VarDumper\LightVarDumper; $firstName = 'Mary'; $lastName = 'Watson'; $function = function ($a, $b) use ($firstName, $lastName) { }; $dumper = new LightVarDumper(); $dumper->dump($function);
object(Closure) #3 {[
[name] => “{closure}”
[filename] => “(...)/var-dumper/examples/closure.php”
[startLine] => 7
[endLine] => 8
[use] =>
array(2) {
[firstName] => “Mary”
[lastName] => “Watson”
}
]}
预定义常量
<?php use Vipkwd\VarDumper\LightVarDumper; $dumper = new LightVarDumper(); $dumper->dump(array( M_LOG2E, PHP_INT_MAX, M_PI, ));
array(3) {M_LOG2E, PHP_INT_MAX, M_PI}
版本控制
版本号遵循 语义化版本控制 2.0.0 规范。
注意
只有源代码被视为向后兼容,dump()
和 dumpAsString()
方法的输出可能会更改。标记为 @internal
的类、方法、函数和属性可能会随时更改,向后兼容的承诺不包括它们,请不要使用它们。
许可证
此库根据 MIT 许可证 发布。