TP5 如何像Laravel dd()一样优雅输出
2019-03-26 本文已影响28人
Raybon_lee
简介
Laravel 框架我们都知道调试使用dd() 函数能够很优雅的看到输出,那么TP5,怎么一样优雅的输出呢
步骤:
-
切换到当前应用目录:执行以下命令
composer require symfony/var-dumper --dev
-
安装完毕如图
dd@2x.png
新版本和旧版本区别
- 旧版本:
if (! function_exists('dd')) {
/**
* Dump the passed variables and end the script.
*
* @param mixed
* @return void
*/
function dd(...$args)
{
foreach ($args as $x) {
(new Dumper)->dump($x);
}
die(1);
}
}
- 新版本:
if (!function_exists('dd')) {
function dd(...$vars)
{
foreach ($vars as $v) {
VarDumper::dump($v);
}
die(1);
}
}
使用
- 我们安装完毕,可以直接使用
dd()
函数,如果遇到API接口输出是HTML样式的,可以在入口处【index.php
】加入下面这段代码:
function dd(...$args)
{
http_response_code(500);
array_walk($args, [new Illuminate\Support\Debug\Dumper, 'dump']);
die(1);
}
如果依赖的包是最新版本选择下面这段:
header("Content-type: text/html; charset=utf-8");
if (version_compare(PHP_VERSION, '5.6', '<')) {
die('PHP版本过低,最少需要PHP5.6,请升级PHP版本!');
}
// 定义后台入口文件
define('ADMIN_FILE', 'admin.php');
// 入口dd
function dd(...$args)
{
http_response_code(500);
array_walk($args, [VarDumper::class, 'dump']);
die(1);
}
// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';
// 支持事先使用静态方法设置Request对象和Config对象
// 检查是否安装
if(!is_file('../data/install.lock')){
define('BIND_MODULE', 'install');
Container::get('app')->bind('install')->run()->send();
} else {
// 执行应用并响应
Container::get('app')->run()->send();
}
- 以上则是采用Laravel 更加优雅的输出, 而非TP中的
dump()
函数 -
看到下面的浏览器输出是不是很开心
view@2x.png