symfony - symfony/debug-bundle 配置中的 dump_destination
问题描述
在我的团队中,我们使用 SF4 并使用 .env.dist(以及 .env)进行开发人员特定的配置。当我们开发时,我们发现symfony/var-dumper非常有用,但是有些开发者喜欢在浏览器中转储,有些在控制台中使用 symfony/debug-bundle 附带的 server:dump 命令。从远程拉出后一遍又一遍地注释掉/取消注释debug.dump_destination
键是非常烦人的,或者当当前远程 HEAD 恰好也编辑了这个文件时担心冲突。
我尽我所能进行调试,问题出在此处:
在构建容器之前Symfony\Bundle\DebugBundle\DependencyInjection\DebugExtension::load()
检查0 === strpos($config['dump_destination'], 'tcp://')
环境变量并没有解决,然后假设WHATEVER="tcp://%env(VAR_DUMPER_SERVER)%"
在我的.env文件中并debug.dump_destination: '%env(resolve:WHATEVER)%'
导致错误(在检查时 dump_destination 是env_93f4ff143f62ce8d_resolve_WHATEVER_e29a13ca55ef040f58272adff34dd9a4
) 一切都坏了。作为旁注,当我不使用环境变量而只是设置时 parameters.whatever: "tcp://%env(VAR_DUMPER_SERVER)%"
,debug.dump_destination: %whatever%
一切都很好。当然,我可以创建新的 parameters.dist.yaml 文件和 parameters.yaml ,后者将被添加到 .gitignore 但我想将每个开发人员的特定信息保留在一个文件中,即 .env 。
总而言之,我该怎么做才能让一个开发人员和另一个开发人员的密钥debug.dump_destination相等?tcp://%env(VAR_DUMPER_SERVER)%
null
~
解决方案
按照 M. Kebza 的回答,这是我想出的解决方案:
.env
DUMP_SERVER=null # or DUMP_SERVER=tcp://%env(VAR_DUMPER_SERVER)%
内核.php
$DUMP_SERVER = getenv('DUMP_SERVER');
if (strtolower($DUMP_SERVER) === 'null' || $DUMP_SERVER === '~') {
$DUMP_SERVER = null;
}
$container->setParameter('DUMP_SERVER', $DUMP_SERVER);
调试.yaml
debug.dump_destination: "%DUMP_SERVER%"
bin/console cache:clear
在.env文件中每次 DUMP_SERVER 变量更改后都需要。
解决方案
如何解决这个问题的另一个想法:
debug.dump_destination
在环境中为每个开发人员设置默认值并使用 ENV 变量来设置他的首选解决方案- 例如,在您
Kernel.php
的方法中configureContainer
检查本地文件是否存在,local.yaml
这可用于覆盖特定配置,在 git 中应忽略此文件。
推荐阅读
- python-3.x - Ansible 中是否有任何用于 Kinesis Firehose 创建的模块?类似于 Kinesis Data Streams 的 kiensis_stream 模块
- ms-access - 是否可以将照片放在报告上并在打印视图/打印时消失?
- android - SwipeRefreshLayout 中的 Android ViewPager
- keras - Keras 在极其简单的测试代码中拟合 ValueError
- javascript - 删除 Google 表单提交的文件
- java - 我无法让我的包按照我想要的方式编译
- apache-kafka - 在 Kafka Streams DSL 中使用内部连接获取记录密钥
- powershell - Powershell + 7zip 批量提取和重命名 - 收到“没有要处理的文件”消息
- scala - Geotrellis.spark._ 从当前主服务器拉出时不是包 Geotrellis 的成员吗?
- javascript - 是 React.ComponentType
流的一部分?