diarmuidie / envpopulate
当Composer安装或更新时,基于.env.example文件交互式填充.env文件的工具。
Requires
- php: >=7.3
- m1/env: ^2.0
Requires (Dev)
- composer/composer: >=2.0.13
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.6
README
PHP工具,当Composer安装或更新时,基于.env.example文件交互式填充.env文件。
基于类似的包Incenteev/ParameterHandler。如果您需要将参数保存到YAML文件而不是env文件中,可以查看该包👍。
由Diarmuid开发。
安装
您可以通过Composer安装EnvPopulate。
$ composer require diarmuidie/envpopulate
为了在Composer安装和更新时触发EnvPopulate脚本,您必须将以下脚本添加到您的composer.json
文件中
{ "scripts": { "post-install-cmd": [ "Diarmuidie\\EnvPopulate\\ScriptHandler::populateEnv" ], "post-update-cmd": [ "Diarmuidie\\EnvPopulate\\ScriptHandler::populateEnv" ] } }
可选
如果您想更改示例或生成的env文件的位置,或添加多个文件,您也可以添加一个额外的部分到composer.json
文件中
"extra": { "env-populate": { "files": [ { "example-file": ".env.server.dist", "generated-file": ".env.server" }, { "example-file": ".env.dist", "generated-file": ".env" } ] } }
您还可以指定是否要在非交互式模式(自动化系统)中运行env populate脚本
"extra": { "env-populate": { "run-non-interactively": false } }
用法
请确保您的项目根目录(或通过设置额外选项的其它位置)有一个.env.example文件。
每次您执行composer install
或composer update
时,脚本都会运行。按回车键接受默认值或输入以覆盖它。
看看它的实际效果
在自动化环境中禁用
您可以在自动化环境中(例如CI服务器如Travis或Jenkins)禁用EnvPopulate脚本。您有两种选择来实现这一点
-
使用
--noscripts
选项运行Composer。这将停止运行任何脚本(包括EnvPopulate)。 -
以非交互式模式运行Composer(
--no-interaction
)。这将导致EnvPopulate在生成.env文件时采用.env.example中的默认值,而无需用户输入。
贡献
欢迎贡献功能、错误修复或有用的建议 😄
- 叉取此存储库
- 创建功能分支
- 提交PR...
- 赚钱 😎
运行测试
您可以通过Docker运行测试
# Build the dockerfile:
$ docker build . --tag envpopulate:latest
# Run the tests
$ docker run envpopulate:latest composer run-script test
变更日志
查看CHANGELOG.md文件。
作者
许可证
MIT许可证(MIT)
版权所有(c)2016 Diarmuid
特此免费许可,任何人获得此软件及其相关文档文件(“软件”)的副本(以下简称“软件”),不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的个人提供处理软件的权利,前提是符合以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是由合同、侵权或其他方式引起的,无论是否与软件或软件的使用或其它交易有关。