全局使用laravel的dd函数

换框架了,但是还是想用laravel里面的调试方法,dump和dd,下面就来说说怎么弄.

1.全局安装var-dumper包:

laravel里面的dd和dump来自symfony包:

composer global require symfony/var-dumper

composer默认全局安装路径:

C:/Users/user/AppData/Roaming/Composer

2.配置 php.ini

如果要所有地方都能使用,需要在php.ini里面进行配置,在 php.ini 中找到 auto_prepend_file,然后写上你相对应的路径,比如我的路径:

auto_prepend_file = C:/Users/user/AppData/Roaming/Composer/vendor/autoload.php

更新 composer:

composer global update

3.准备 dd ()

这样一来就可以使用 dump() 了。不过还不够,我们还要把 dd() 的代码放进来。
找个地方复制以下代码(我直接命名成 laravel_helper.php )

<?php

# install symfony/var-dump to your project
# composer require symfony/var-dumper

// use namespace
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\Dumper\HtmlDumper as SymfonyHtmlDumper;

/**
 * Class HtmlDumper
 */
class HtmlDumper extends SymfonyHtmlDumper
{
    /**
     * Colour definitions for output.
     *
     * @var array
     */
    protected $styles = [
        'default' => 'background-color:#fff; color:#222; line-height:1.2em; font-weight:normal; font:12px Monaco, Consolas, monospace; word-wrap: break-word; white-space: pre-wrap; position:relative; z-index:100000',
        'num' => 'color:#a71d5d',
        'const' => 'color:#795da3',
        'str' => 'color:#df5000',
        'cchr' => 'color:#222',
        'note' => 'color:#a71d5d',
        'ref' => 'color:#a0a0a0',
        'public' => 'color:#795da3',
        'protected' => 'color:#795da3',
        'private' => 'color:#795da3',
        'meta' => 'color:#b729d9',
        'key' => 'color:#df5000',
        'index' => 'color:#a71d5d',
    ];
}

/**
 * Class Dumper
 */
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);
        }
    }
}

if (! function_exists('dd')) {
    /**
     * Dump the passed variables and end the script.
     *
     * @param  mixed
     * @return void
     */
    function dd(...$args)
    {
        $dump = (new Dumper);
        $traces = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
        if (!empty($traces) &&is_array($traces)) {
            $dump->dump(__METHOD__.'调用位置'.join(':',$traces[0]));
        }
        foreach ($args as $x) {
            $dump->dump($x);
        }
        die(1);
    }
}

if (! function_exists('dda')) {
    /**
     * Dump the passed array variables and end the script.
     *
     * @param  mixed
     * @return void
     */
    function dda(...$args)
    {
        foreach ($args as $x) {
            (new Dumper)->dump($x->toArray());
        }
        die(1);
    }
}

更改全局 composer.json

然后我们找到全局的 composer.json 所在的位置,通常在用户根目录下,在 autoload 中增加这个文件的路径:

{
    "require": {
        "symfony/var-dumper": "^4.3"
    },
    "autoload": {
        "files": [
        "C:/Users/user/AppData/Roaming/Composer/helper/laravel_helper.php"
        ]
    }
}

更新全局composer

composer global dump-autoload

测试一下:

在这里插入图片描述

提醒:

symfony/var-dumper 这个扩展包只有一个依赖,但是如果哪天这个 polyfill-mbstring 升级到了 2+,然后你的项目里依赖了 2+ 的 polyfill,而 var-dumper 没有跟上,可能就会造成问题。这种时候,记得把全局的更新一下就好了。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值