diarmuidie/envpopulate

当Composer安装或更新时,基于.env.example文件交互式填充.env文件的工具。

2.0.0 2021-05-03 16:04 UTC

This package is auto-updated.

Last update: 2024-08-29 04:36:58 UTC


README

PHP工具,当Composer安装或更新时,基于.env.example文件交互式填充.env文件。

基于类似的包Incenteev/ParameterHandler。如果您需要将参数保存到YAML文件而不是env文件中,可以查看该包👍。

Diarmuid开发。

Latest Stable Version License

安装

您可以通过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 installcomposer update时,脚本都会运行。按回车键接受默认值或输入以覆盖它。

看看它的实际效果

asciicast

在自动化环境中禁用

您可以在自动化环境中(例如CI服务器如Travis或Jenkins)禁用EnvPopulate脚本。您有两种选择来实现这一点

  • 使用--noscripts选项运行Composer。这将停止运行任何脚本(包括EnvPopulate)。

  • 以非交互式模式运行Composer(--no-interaction)。这将导致EnvPopulate在生成.env文件时采用.env.example中的默认值,而无需用户输入。

贡献

欢迎贡献功能、错误修复或有用的建议 😄

  1. 叉取此存储库
  2. 创建功能分支
  3. 提交PR...
  4. 赚钱 😎

运行测试

您可以通过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

特此免费许可,任何人获得此软件及其相关文档文件(“软件”)的副本(以下简称“软件”),不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的个人提供处理软件的权利,前提是符合以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是由合同、侵权或其他方式引起的,无论是否与软件或软件的使用或其它交易有关。