美文网首页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