清除Incenteev ParameterHandler设置的初始参数

Clearing initial parameters set by Incenteev ParameterHandler

我刚收到一个使用 Incenteev ParamemeterHandler package 的现有 PHP 项目,我 运行 composer install 问了我一堆问题。

接受其中一些的默认值似乎是错误的,并且由于重新运行命令没有再次询问我,我想我需要自己编辑app/config/parameters.yml来修复这个。事实证明,下次我 运行 composer install 它覆盖了新值!

这是出乎意料的,但我想以前的值存储在某个地方并重新用于构建该文件。现在,我想知道如何 "clear" 这些值 and/or 修正我的错误答案?我尝试对该字段进行 grepping(image_upload_dir 在我的例子中),但这只命中了其他 yml 文件,所以我不知道它在哪里隐藏我的缓存响应。

即使对于非 PHP 程序员来说,ParameterHandler 的源代码也非常易于阅读 - 主要部分由 160 lines of very readable PHP 完成。我在那里找到了答案:它使用名为 app/config/parameters.yml.dist 的模板文件(dist 扩展名是关键)作为默认值。

如果那里已经有一个 parameters.yml 文件,它只会提示您输入不存在的值。这意味着我的问题的答案只是删除文件。我也可以删除我希望再次提示我回答的字段,但这比简单地手动编辑文件要直观得多。

我认为我的值被覆盖的原因是 dist 文件有一行包含此内容 image_upload_dir: ~。我读这个意思是该值是主目录,这是 unices 上波浪字符的通常含义。因此,当我看到生成的文件有对应的 image_upload_dir: null 行时,我感到很惊讶。原来我不熟悉基本的 YAML:波浪字符 ~ 表示 nil 或 "empty",这意味着 null 完全符合。