alpipego / toml-config
hassankhan/config 的 TOML 适配器
0.1.2
2020-01-21 07:48 UTC
Requires
- hassankhan/config: ^2.0
- yosymfony/toml: ^1.0
This package is auto-updated.
Last update: 2024-09-21 20:36:10 UTC
README
在 .toml
文件中编写您的配置(https://github.com/toml-lang/toml)并使用 https://github.com/hassankhan/config。
使用的 Toml 解析器:https://github.com/yosymfony/toml
配置
支持重载,并使用传入的第一个文件作为默认值。
插值
支持在同一个配置文件内进行简单的变量插值
basepath = "/var/www" publicpath = "${basepath}/public"
<?php $config = new Alpipego\TomlConfig\TomlConfig(['tomlfile.toml']); $config->get('public'); // => `/var/www/public`
数组中也可以这样做。在同一个数组内可以使用简单标记
[paths] base = "/var/www" public = "${base}/public" # /var/www/public
为了避免冲突,建议使用完整的变量路径
[paths] base = "/var/www" public = "${paths.base}/public" # /var/www/public
如果之前已展开值,则可以进行递归
[paths] base = "/var/www" public = "${paths.base}/public" # /var/www/public assets = "${paths.public}/assets" # /var/www/public/assets
$ENV
配置变量将被放入环境变量中。数组键(以及其他复杂数值)将被展开,如下所示
[paths] base = "/var/www" [paths.app] dir = "${paths.base}/app"
这会导致以下结果
PATHS_BASE=/var/www PATHS_APP_DIR=/var/www/app
<?php getenv('PATHS_APP_DIR'); // '/var/www/app' $_ENV('PATHS_APP_DIR'); // '/var/www/app'
注意:如果环境变量已存在,则不会覆盖。
编写 .env
文件
如果您想在命令行中使用您的配置,您可以编写一个 .env
文件并在您的 shell 中引用它
<?php $config = new \Alpipego\TomlConfig\TomlConfig(['file1', 'file2']); $config->writeEnv(__DIR__);
备注
.env
文件的路径必须可由 web 服务器写入- 每次函数调用都会写入此文件