【发布时间】:2021-12-01 01:43:48
【问题描述】:
我想在我们的测试环境中实现一个调试输出,我想在其中输出应用程序发送的服务请求。
为此,我想使用 symfony/twig 函数 dump(),因为这里的输出针对所有类型的变量进行了精美的格式化,并且还提供了打开和关闭结构的选项。
伪代码是这样的
{% if debugEnabled %}
{{dump (debugInfos)}}
{% endif %}
不幸的是,“dump”是 Symfony DebugBundle 的一部分,出于充分的原因,它没有在 Prod 环境中加载,应该保持这种状态:
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
在 Symfony 文档中说:
根据设计,dump() 函数仅在开发和测试中可用 环境,以避免在生产中泄露敏感信息。在 事实上,尝试在 prod 环境中使用 dump() 函数会 导致 PHP 错误。
我根本不想在生产环境中使用dump(),而只想在本地输出我们的服务请求。
但是,我无法实现上述代码,因为生产中总是会出现错误(未定义函数dump())当然,因为根本没有加载dump()。
【问题讨论】:
-
谢谢,但这有什么帮助?无论我如何通过它,在生产中它仍然是错误的。在我将 DebugBundle 注册为“prod”(我不想要的)之前,在生产中的任何情况下都会出现错误(“找不到函数”)
-
如果尚未加载,只需创建自己的转储函数?您究竟想在生产中使用 dump() 做什么?
-
转储功能比我认为的更复杂。它不仅是在做一个 var_dump()。在生产中我不想用“dump()”做任何事情,但我无法在 dev 中实现调试输出的功能,因为我不能在模板中使用 dump(),因为它会在生产中引发错误。