如果APP_ENV
为dev
,则将Web Profiler设置为激活。在我们的登台服务器上就是这种方式。但是,正在我们的登台服务器上进行安全审核,并且要求我们在保持APP_ENV
= dev
的同时手动关闭事件探查器。
这将成功禁用分析器和工具栏:
web_profiler:
toolbar: false
intercept_redirects: false
framework:
profiler:
{ enabled: false, only_exceptions: false }
但是我想使用.env
来使用我们可以控制将其禁用的标志。当我尝试时,Symfony抱怨:
Environment variables "bool:SYMFONY_TOOLBAR" are never used. Please, check your container's configuration.
这导致我得到一个答案here,该答案声称:
profiler > enabled
不能用运行时env变量设置,因为它控制是否在容器中创建所有探查器服务(只要需要就可以对它们进行探查来包装服务)。不能在运行时完全更改容器(并且此boolean配置的值最终不会在容器中的任何位置自行设置,这就是触发此错误的原因)
开发人员说“在仅以开发人员模式加载的文件中使用参数”。但是我不知道那是什么意思;那么,我该如何解决呢? (.env不是必需条件,只是理想条件)
答案 0 :(得分:0)
由于框架加载环境变量的顺序,因此无法在web_profiler.yaml
中使用环境标志。庆幸的是,创建一个新环境并不太困难或令人恐惧:
https://symfony.com/doc/4.1/configuration/environments.html#creating-a-new-environment
创建环境,将新的web_profiler.yaml
保存在其下,然后将其添加到bundles.php
的相关行中;就我而言,添加 staging 环境后,我的代码行如下所示:
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true, 'staging' => true],