Symfony转储服务器正在侦听,但在转储时未侦听

Symfony转储服务器正在侦听,但在转储时未侦听,symfony,symfony4,Symfony,Symfony4,我不是在Symfony中工作,而是通过composer拉入Symfony/var转储程序包,当我做一个简单的测试时,它工作得很好: <?php include 'vendor/autoload.php'; dump('Hello World of Dumping'); 因此,在终端(ubuntu)中,我运行以下命令: ./vendor/bin/var-dump-server 执行此操作时,终端显示: [确定]服务器正在侦听tcp://127.0.0.1:9912 但是,当我运行测试脚本

我不是在Symfony中工作,而是通过composer拉入Symfony/var转储程序包,当我做一个简单的测试时,它工作得很好:

<?php
include 'vendor/autoload.php';
dump('Hello World of Dumping');
因此,在终端(ubuntu)中,我运行以下命令:

./vendor/bin/var-dump-server
执行此操作时,终端显示:

[确定]服务器正在侦听tcp://127.0.0.1:9912

但是,当我运行测试脚本并进行转储时,在终端中看不到任何内容。没有变化

尽管这不起作用,但我真正想做的是登录到一个文件。如果我尝试运行该命令并指定HTML格式和要转储的文件,它会创建该文件,但当我执行转储测试时,不会将任何内容放入该文件:

./vendor/bin/var-dump-server --format=html > dump.html
同样,它只是说服务器正在侦听

现在,在您查看文档并告诉我我疯了之前,我知道文档将命令显示为:

./bin/console server:dump
但是我没有使用Symfony,我假设我必须使用Symfony才能使该命令生效。我可能错了


所以,我正在寻找一些帮助来解决我的转储服务器问题。也许转储服务器功能不能在Symfony之外使用,但我想知道这是不是真的,我在文档中没有看到这方面的证据。我希望您能提供帮助,因为我不知道还有什么可以做/尝试。

Symfony文档不完整。即使在advanced usage页面上也没有对它的引用,但是需要使用ServerDumper类。这样简单的操作可以让转储服务器正常工作:

<?php
include 'vendor/autoload.php';

use Symfony\Component\VarDumper\VarDumper;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\ServerDumper;

VarDumper::setHandler(function ($var) {
    $cloner = new VarCloner();
    $dumper = new ServerDumper('tcp://127.0.0.1:9912');     
    $dumper->dump($cloner->cloneVar($var));
});

<?php
include 'vendor/autoload.php';

use Symfony\Component\VarDumper\VarDumper;
use Symfony\Component\VarDumper\Cloner\VarCloner;
use Symfony\Component\VarDumper\Dumper\ServerDumper;

VarDumper::setHandler(function ($var) {
    $cloner = new VarCloner();
    $dumper = new ServerDumper('tcp://127.0.0.1:9912');     
    $dumper->dump($cloner->cloneVar($var));
});