如何修复 symfony dd 函数显示空白页?

How to fix that symfony dd function shows a blank page?

Symfony 版本 4.1

问题:当我使用 dd 时,我只看到一个空白页。 body 标签不包含任何内容。在进行少量调试时,我发现有不同类型的调试输出:clihtmlserver。在我的例子中 var_dumper.server_dumper 服务被用作调试器 class。我不知道 symfony 这么好,可以做一些进一步的步骤。我猜想有服务配置文件,我可以在其中传递 html_dumper。但是我没有找到任何相关文件。 Symfony 文档也没有显示任何关于配置的信息。奇怪,但是 google 也没有显示任何相关结果。

想补充一点,我在 symfony 4.1 不稳定时安装了它,然后我使用 dd/dump 得到了相同的结果。但是我最近有 运行 composer update,现在我应该有一个新的 symfony 版本。很长一段时间我使用 xdebug 但有时转储 var.

更容易

更新:

我的代码:

namespace App\Controller\SuperAdmin;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;

class HomeController extends Controller
{
    /**
     * @Route("/", name="home")
     * @return Response
     */
    public function index()
    {
        dd(1);
        return $this->render('super-admin/home/index.html.twig');
    }
}

更新: 刚刚验证 Symfony 4.1.1 已经修复了这个问题。 dd 现在开箱即用。

这里讨论了其中的一些内容:https://symfony.com/blog/new-in-symfony-4-1-vardumper-server

基本上,开箱即用的 Symfony 4.1 具有:

# config/packages/dev/debug.yaml
debug:
    # Forwards VarDumper Data clones to a centralized server allowing to inspect dumps on CLI or in your browser.
    # See the "server:dump" command to start a new server.
    dump_destination: "tcp://%env(VAR_DUMPER_SERVER)%"

目的(我认为)是拦截调试字符串并使用以下命令将它们打印到控制台:

bin/console server:dump

所以dd(1);将导致控制台输出以及浏览器中的空白网页。不完全确定 Symfony 人员是否打算将此作为默认行为。

如果您希望 dd(1) 出现在您的 html 页面中,请将目标更改为 null。

# config/packages/dev/debug.yaml
debug:
    dump_destination: null

无论如何,dump() 会继续按预期工作。

看起来这实际上是一个错误:https://github.com/symfony/symfony/issues/27622

应在下一个 4.1.x 版本中修复。