vipkwd/var-dumper

var_dump 函数的替代品

2.0.2 2023-05-11 18:16 UTC

This package is auto-updated.

Last update: 2024-09-11 21:12:41 UTC


README

Codacy Badge Coverage Status Build Status

为什么?

为了设置打印变量的限制大小,并生成比内置的 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 许可证 发布。