精心管理Composer忽略的参数

精心管理Composer忽略的参数

ParameterHandlerComposer script handling your ignored parameter file项目地址:https://gitcode.com/gh_mirrors/pa/ParameterHandler

在复杂的开发环境中,合理地处理项目中的忽略参数是至关重要的。这个名为"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.ymlcomposer installcomposer 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_1new_param_2将使用old_param_1old_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参数管理更加智能化和灵活。无论是需要处理单个文件还是多个文件,无论是需要保持旧参数、重命名参数还是利用环境变量,它都能提供解决方案。结合其易用性和强大的功能,无疑是一个值得尝试并加入到你的开发流程中的开源项目。现在就开始使用,让你的项目管理更上一层楼!

ParameterHandlerComposer script handling your ignored parameter file项目地址:https://gitcode.com/gh_mirrors/pa/ParameterHandler

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缪昱锨Hunter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值