美文网首页PHP全栈工程师技术专题
TP5 如何像Laravel dd()一样优雅输出

TP5 如何像Laravel dd()一样优雅输出

作者: Raybon_lee | 来源:发表于2019-03-26 12:17 被阅读28次

简介

  • 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

相关文章

网友评论

    本文标题:TP5 如何像Laravel dd()一样优雅输出

    本文链接:https://www.haomeiwen.com/subject/yakgvqtx.html