alpipego/toml-config

hassankhan/config 的 TOML 适配器

0.1.2 2020-01-21 07:48 UTC

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 服务器写入
  • 每次函数调用都会写入此文件