Symfony版本4.1
。
问题:使用dd
时,我只能看到空白页。 body
标签不包含任何内容。进行一些调试后,我发现调试输出有不同类型:cli
,html
,server
。在我的情况下,var_dumper.server_dumper
服务被用作调试器类。我不知道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');
}
}
答案 0 :(得分:3)
更新:刚刚确认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版本中修复。