我正在 Symfony 3 中编写 API,我想使用 Symfony VarDumper dump() 函数。然而 dump() 正在输出 HTML,这在我的情况下相当烦人。(我的调用API的客户端不渲染HTML)
我希望输出是纯文本、JSON、Yaml,或者至少是 dump() 在 CLI 模式下使用的输出。
这样做的好方法是什么?
我能够使用以下代码将 dump() 输出为 text/cli 格式而不是 HTML 通过执行此操作
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\CliDumper;
use Symfony\Component\VarDumper\VarDumper;
//................
CliDumper::$defaultOutput = 'php://output';
VarDumper::setHandler(function ($var) {
$cloner = new VarCloner();
$dumper = new CliDumper();
$dumper->dump($cloner->cloneVar($var));
});
dump($debugMe);
Run Code Online (Sandbox Code Playgroud)
我还可以提到,我不鼓励在 Symfony 应用程序中使用 print_r() 作为 var_dump() 进行调试,通常输出会更加混乱和混乱,并且出于某种原因 print_r() 甚至无法在某些场合。