VarDumper 组件
VarDumper 组件提供了从任何 PHP 变量中提取状态的机制。
它提供了一个更好的 dump() 和 dd() 函数,可以使用它来代替PHP内建的 var_dump。
安装前的准备
mkdir symfony-components # 创建目录
cd symfony-components # 进入到工作目录
composer init # 初始化 Composer 信息
mkdir src/ # 创建源代码目录
composer.json
文件如下:
{
"name": "curder/symfony-components",
"description": "Discover Symfony Components for VarDumper",
"authors": [
{
"name": "curder",
"email": "q.curder@gmail.com"
}
],
"require": {
"php": ">=8.0.2",
"symfony/var-dumper": "@stable"
},
"autoload": {
"psr-4": {
"Curder\\": "src/"
}
}
}
安装
composer require --dev symfony/var-dumper @stable
如果在
Symfony
应用程序之外安装这个组件,必须在代码中包含vendor/autoload.php
文件来启用 Composer 提供的类的自动加载机制。
dump()
函数
首先在 src/
目录下创建一个 User 类,如下:
// src/User.php
<?php
namespace Curder;
class User
{
public string $username = 'Curder';
protected int $age = 30;
private array $hobbies = [
"music", 'coding',
];
}
在项目的根目录下创建一个 index.php 的入口文件,并使用 var-dumper 。
// index.php
<?php
use Curder\User;
require __DIR__.'/vendor/autoload.php';
$user = new User;
dump($user); // 或者 dd($user);
查看效果
可以在命令行执行 php index.php
在终端输出中查看。
也可以执行php -S 0.0.0.0:8888
,然后在浏览器中输入http://localhost:8888
查看。
自定义输出样式
// index.php
<?php
use Curder\User;
use Symfony\Component\VarDumper\VarDumper;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\{CliDumper, HtmlDumper};
require __DIR__.'/vendor/autoload.php';
// 设置自定义的处理方式
VarDumper::setHandler(static function ($var) {
$cloner = new VarCloner;
$htmlDumper = new HtmlDumper; // 自定义 HTML 处理
$htmlDumper->setTheme('light'); // 自定义设置主题
$dumper = PHP_SAPI === 'cli' ? new CliDumper : $htmlDumper; // 指定对应 dumper 实例
$dumper->dump($cloner->cloneVar($var)); // 执行 dump
});
$user = new User;
dd($user);