代码之家  ›  专栏  ›  技术社区  ›  FreeLightman

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

  •  1
  • FreeLightman  · 技术社区  · 7 年前

    symfony版本 4.1 是的。

    问题:当我使用 dd 我只看到一页空白。 body 标记不包含任何内容。我稍微怀疑一下,发现有不同类型的调试输出: cli 我是说, html , server .就我而言 var_dumper.server_dumper 服务被用作调试器类。我不知道symfony能做的这么好。我猜我可以通过服务配置文件 html_dumper 是的。但我没有找到任何相关文件。symfony文档也没有显示任何关于配置的信息。奇怪的是,谷歌也没有显示任何相关的结果。

    要添加我安装了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');
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Cerad    7 年前

    更新: 刚刚验证了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页面中,请将目标更改为空。

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

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

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

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

    推荐文章