前沿

一直想知道 laravle 的数据打印 dump() 和 dd() 是怎么实现的,怎么那么好用,经过一番查找终于找到啦
先来个 github 地址 https://github.com/symfony/var-dumper
然后我先来看看效果
bb.png

怎么样,是不是很漂亮呀
好啦,下面进入正题

安装

  1. $ composer require symfony/var-dumper

使用

我们都知道,安装了composer的包之后,是要自动导入才可以使用的,很简单,一句代码的事情:

  1. require __DIR__.'/vendor/autoload.php';

也就是说,在你项目想要使用的地方,加入以上代码就可以了,然后可以直接使用 dump(); 和 dd(); 这个方法。当然,如果你觉得打印出来的样式你不喜欢,可以自己自行更改。这个文件:

Dumper/HtmlDumper.php

推荐安装方式

全局安装

$ composer global require symfony/var-dumper;

配置 php.ini

在php.ini中找到auto_prepend_file,然后写上你相对应的路径,比如像下面这样的:

auto_prepend_file = C:\Users\Administrator\AppData\Roaming\Composer\vendor\autoload.php

这个参数会全局自动加载你指定的文件。
注:修改了php.ini记得重启Apache或者php-fpm

更新composer

$ composer global update

改名

如果 dump() 和 dd() 和你的自定义方法有冲突,可以修改
找到文件

\vendor\symfony\var-dumper\Resources\functions\dump.php

自己改成想要的名字就好了

控制台打印

上面说了 Symfony VarDumper,下面我们来说说在浏览器控制台打印数据了
在控制台打印数据最大的好处我想就应该是保证页面的整洁了吧,不会显示乱七八糟的东西

定义函数

if (!function_exists('console')) {
    function console(...$vars)
    {
        $str  = '<script>';
        foreach ($vars as $v) {
            $str .= 'console.log('.json_encode($v,JSON_UNESCAPED_UNICODE).')';
        }
        $str .= '</script>';
        echo $str;
    }
}

为了方便全局使用,我们可以把此函数放入上面的 dump.php 中
这其实就是用了 js 的 console.log() 函数而已,很方便,也不会影响到页面。
下面就来看看效果图吧
cc.png

怎么样,是不是也挺好用的呢,快来试试吧