【注意】最后更新于 December 6, 2019,文中内容可能已过时,请谨慎使用。
主用laravel的已经习惯了dd函数的方便,
但是放到lumen5.3的时候就变成了悲催的var_dump,查看了下源码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
if (! function_exists('dd')) {
/**
* Dump the passed variables and end the script.
*
* @param mixed
* @return void
*/
function dd()
{
array_map(function ($x) {
(new Dumper)->dump($x);
}, func_get_args());
die(1);
}
}
|
再找Dumper
这个类,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?php
namespace Illuminate\Support\Debug;
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\Cloner\VarCloner;
class Dumper
{
/**
* Dump a value with elegance.
*
* @param mixed $value
* @return void
*/
public function dump($value)
{
if (class_exists(CliDumper::class)) {
$dumper = 'cli' === PHP_SAPI ? new CliDumper : new HtmlDumper;
$dumper->dump((new VarCloner)->cloneVar($value));
} else {
var_dump($value);
}
}
}
|
发现当它查不到CliDumper::class
这个类的时候就会使用php自带的var_dump
函数,因此我们需要加载一个clidumper
1
|
composer require symfony/var-dumper
|
这样的话哪怕不用的lumen,只要composer能够自动加载就可以直接使用dump()
方法,而在lumen当中就是dd()
辅助函数
文章作者
GPF
上次更新
2019-12-06
(7ba517e)