在非 laravel 项目中使用 laravel 的特性 1: 辅助函数 dd()
dd()
方法
新建一个空项目,安装扩展包
composer require symfony/var-dumper
这样一来就可以使用 dump()
了。不过还不够,我们还要把 dd()
的代码放进来。
准备 dd()
找个地方复制以下代码 (helpers/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)
{
foreach ($args as $x) {
(new Dumper)->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
文件添加以下内容
{
.
.
.
"autoload": {
"files": [
"helpers/laravel_helpers.php"
]
}
}
最后更新一下,就可以 dd 用起来了!
composer dump-autoload
(composer du
)
使用示例 index/dd.php
<?php
require_once __DIR__ . '/../vendor/autoload.php';
dd($_SERVER);
命令行开启服务 php -S localhost:8000
并访问 http://localhost:8000/index/dd.php
即可。
项目目录结构
.
├── composer.json
├── composer.lock
├── config
├── helpers
│ └── laravel_helpers.php
├── index
│ └── dd.php
├── src
└── vendor
├── autoload.php
.
.
.
参考 致谢
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: