精心管理Composer忽略的参数
在复杂的开发环境中,合理地处理项目中的忽略参数是至关重要的。这个名为"Incenteev Parameter Handler"的工具,能帮你实现这一目标,专为那些在Yaml文件中以单一顶级键(默认为parameters
)存储参数的项目设计。其他键则会原封不动地复制。
使用方法
只需在你的根目录composer.json
文件中添加以下代码:
{
"require": {
"incenteev/composer-parameter-handler": "~2.0"
},
"scripts": {
"post-install-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
],
"post-update-cmd": [
"Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
]
},
"extra": {
"incenteev-parameters": {
"file": "app/config/parameters.yml"
}
}
}
这将确保app/config/parameters.yml
在composer install
或composer update
后被创建或更新,并与app/config/parameters.yml.dist
结构匹配。如果参数缺失,脚本会向你询问并填充。
默认情况下,配置文件假设是在参数文件同位置且带有.dist
后缀,但可以通过配置进行更改:
{
"extra": {
"incenteev-parameters": {
"file": "app/config/parameters.yml",
"dist-file": "some/other/folder/to/other/parameters/file/parameters.yml.dist"
}
}
}
当Composer在非交互模式下运行时,若参数文件缺少值,dist-file
的值会被使用。
警告: 这个参数处理器会覆盖parameters.yml
文件中的注释和空格,操作需谨慎。如果希望保留格式和注释,请在dist
版本中设置。
保留过期参数
如果你需要保留不再出现在parameters.yml.dist
中的过期参数,可以启用keep-outdated
配置项:
{
"extra": {
"incenteev-parameters": {
"keep-outdated": true
}
}
}
自定义顶级键
默认情况下,脚本会在dist
文件中查找parameters
键,你可以通过parameter-key
配置自定义:
{
"extra": {
"incenteev-parameters": {
"parameter-key": "config"
}
}
}
使用环境变量设定参数
在生产环境中,交互式提示可能不适用。在这种情况下,你可以依赖环境变量来提供参数。具体做法是在配置中指定环境变量到参数的映射:
{
"extra": {
"incenteev-parameters": {
"env-map": {
"my_first_param": "MY_FIRST_PARAM",
"my_second_param": "MY_SECOND_PARAM"
}
}
}
}
环境变量的值始终会替换现有参数文件中的值。
参数重命名
如果需要重命名参数,新键将按常规方式设置(如果可能,提示输入,或者使用环境变量,或使用默认值)。要使用旧参数的值,可以使用rename-map
:
{
"extra": {
"incenteev-parameters": {
"rename-map": {
"new_param_1": "old_param_1",
"new_param_2": "old_param_2"
}
}
}
}
这样,新参数new_param_1
和new_param_2
将使用old_param_1
和old_param_2
的值,而无需删除旧参数,除非已从dist
版本中移除。
多文件管理
参数处理器支持管理多个忽略文件。只需在incenteev-parameters
额外配置中包含一个包含多个配置对象的JSON数组:
{
"extra": {
"incenteev-parameters": [
{
"file": "app/config/parameters.yml",
"env-map": {}
},
{
"file": "app/config/databases.yml",
"dist-file": "app/config/databases.dist.yml",
"parameter-key": "config"
}
]
}
}
总结
Incenteev Parameter Handler是一个强大的工具,它使你的Composer参数管理更加智能化和灵活。无论是需要处理单个文件还是多个文件,无论是需要保持旧参数、重命名参数还是利用环境变量,它都能提供解决方案。结合其易用性和强大的功能,无疑是一个值得尝试并加入到你的开发流程中的开源项目。现在就开始使用,让你的项目管理更上一层楼!