dbtlr / php-env-builder
一个帮助自动化构建 .env 文件的 PHP 库。
v1.0.0
2018-08-17 14:17 UTC
Requires
- php: ^7.1
- composer/composer: ^1.7
- league/climate: ^3.4
- vlucas/phpdotenv: ^2.5
Requires (Dev)
- mikey179/vfsstream: ^1.6
- mockery/mockery: ^1.1
- phpunit/phpunit: ^7.3
- squizlabs/php_codesniffer: ^3.3
This package is not auto-updated.
Last update: 2024-09-15 05:05:43 UTC
README
使从命令行构建 .env 文件变得简单。
为了在您的开发工作流程中加载和使用 .env 文件,我强烈建议查看 vlucas/phpdotenv 包,它有助于抽象化加载环境变量的过程。这个库旨在帮助您构建一个本地 .env 库,您可以将其添加到 .gitignore 文件中,而不需要大多数人添加的额外的 .env.example 文件,该文件通常用于说明如何构建它。
安装
安装此库的推荐方法是使用 Composer。
从您的项目根目录运行以下命令
$ composer require --dev dbtlr/php-env-builder
作为 Composer 脚本的用法
由于 Composer 提供了自己的与控制台 IO 交互的方式,因此在这种情况下,extra.php-env-builder
配置是设置您的问题和变量名的正确方法。
为了在运行 composer install
或 composer update
时构建 .env 文件,您应该提供类似以下的配置
{ "scripts": { "build-env": "Dbtlr\\PHPEnvBuilder\\ComposerScriptRunner::build", "post-install-cmd": "@build-env", "post-update-cmd": "@build-env" }, "extra": { "php-env-builder": { "envFile": ".env", "questions": [ { "name": "MYSQL_HOST", "prompt": "What is the hostname for the MySQL server?", "default": "127.0.0.1", "required": true }, { "name": "MYSQL_PORT", "prompt": "The port for the MySQL server?", "default": "3306", "required": true }, { "name": "MYSQL_USER", "prompt": "What is the MySQL user?", "default": "app", "required": true }, { "name": "MYSQL_PASSWORD", "prompt": "What is the MySQL password?", "default": "app-password", "required": true } ] } } }
所有 extra.php-env-builder
选项
- questions - 默认:[]
(必需)
// 包含至少name
和prompt
元素的问答数组。 - envFile - 默认:
.env
// 绝对路径或相对于package.json
文件的路径。 - clobber - 默认:
false
// 构建时是否覆盖现有的 .env 文件? - loadEnv - 默认:
false
// 如果正在覆盖现有文件,是否会将其加载以提供默认值? - verbose - 默认:
false
// 额外输出
通用用法
如果您想自己编写脚本,语法本身相当简单。
注意:这是一个不太常见的用例,因为需要由 Composer 提供控制台 IO,以便它可以在 Composer 脚本内部接受输入。这可能对您从 Makefile 或 npm run postinstall
运行此脚本很有用。
require_once __DIR__ . "/vendor/autoload.php"; $config = [ 'verbose' => true, 'loadEnv' => true, ]; $builder = new \Dbtlr\PHPEnvBuilder\Builder('/path/to/.env', $config); $builder->ask( 'name', // ENV variable name 'What is your name?' // Command prompt '', // Default answer true // Is required? ); $builder->run(); // Run the builder and return the answers. $builder->write(); // Write the answers to the file.
运行测试吗?
所有测试都使用 PHPUnit 运行。请确保您已安装至少 PHP 7.1,以及 Composer。
要运行测试,只需运行
composer install
composer test