强制 dump() -VarDumper 输出文本

Sam*_*ony 4 symfony

我正在 Symfony 3 中编写 API,我想使用 Symfony VarDumper dump() 函数。然而 dump() 正在输出 HTML,这在我的情况下相当烦人。(我的调用API的客户端不渲染HTML)

我希望输出是纯文本、JSON、Yaml,或者至少是 dump() 在 CLI 模式下使用的输出。

这样做的好方法是什么?

Sam*_*ony 6

我能够使用以下代码将 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() 甚至无法在某些场合。