phpgt / config
使用 ini 文件和环境变量管理配置。
v1.1.0
2021-01-30 14:24 UTC
Requires
- php: >=8.0
- magicalex/write-ini-file: v1.2.4
- phpgt/typesafegetter: 1.*
Requires (Dev)
- phpstan/phpstan: >=0.12.64
- phpunit/phpunit: 9.*
- dev-master
- v1.1.0
- v1.0.0
- v0.3.2
- v0.3.1
- v0.3.0
- v0.2.0
- v0.1.0
- v0.0.1
- dev-dependabot/composer/phpstan/phpstan-1.10.6
- dev-dependabot/composer/phpunit/phpunit-9.6.5
- dev-dependabot/composer/magicalex/write-ini-file-2.0.1
- dev-dependabot/composer/phpstan/phpstan-0.12.85
- dev-circleci
- dev-18-writer
- dev-16-overrides
This package is auto-updated.
Last update: 2024-08-29 15:18:05 UTC
README
通过定义默认值来管理项目配置,这些值可以被 ini 文件和环境变量覆盖。
同时提供从 CLI 生成 ini 文件的功能。
示例用法 - 加载项目配置
项目的配置可以分散在多个文件中。以下示例展示了如何通过环境变量提供密钥,该密钥用于覆盖 config.ini 中定义的默认值,同时展示了如何使用其他命名的配置文件。
nginx.conf
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_param database_password super-secret-passw0rd;
include fastcgi_params;
}
config.ini
[app] namespace = MyApp debug = true logging = verbose [database] host = db.example.com schema = local_shop username = admin password = admin_pass [shopapi] key = jungfnyyguvffubhgvat secret = guvfvfnybpnyfubcgurerfabguvatsbelbhurer
config.dev.ini
[database] host = localhost
example.php
// Load config.ini $config = new Config("/path/to/project"); // Note that the database password is overriden in the environment (from nginx) // and the host is overridden by the development ini file. echo $config->get("database.host"); // localhost echo $config->get("database.port"); // 6612 echo $config->get("database.password"); // super-secret-passw0rd
示例用法 - 生成配置文件
有时在即时生成配置文件很有用,例如来自持续集成脚本。以下是一个快速示例,展示了如何使用一些键值生成一个会覆盖默认设置的 config.deploy.ini
文件。
vendor/bin/config-generate deploy "shopapi.key=test-api-key" "database.schema=local_shop_$BRANCH_NAME"
上述命令将创建一个 config.deploy.ini
文件(注意第一个参数 "deploy"),并使用点符号提供对两个 ini 键的覆盖。请注意,由于此命令将在持续集成设置中运行,我们期望有一个 $BRANCH_NAME 变量已设置,允许我们使用包含当前分支名称的模式名称。