sinergi / config
0.6.4
2016-05-18 17:13 UTC
Requires
- php: >=5.6
- container-interop/container-interop: >=1
- sandrokeil/interop-config: >=0
- symfony/yaml: >=2
- vlucas/phpdotenv: >=2
Requires (Dev)
- doctrine/orm: dev-master
- phpunit/phpunit: 5
README
PHP 配置加载库。它旨在使您的应用程序能够根据运行的环境有不同的配置。例如,您的应用程序可以为单元测试、开发、预发布和生产使用不同的配置。
一个良好的做法是不要将生产或预发布配置包含在版本控制中。为此,Config 支持 Dotenv。
要求
此库使用 PHP 5.6+。
安装
建议您通过 Composer 安装 Config 库。要这样做,请运行 Composer 命令以安装 Config 的最新稳定版本。
composer require sinergi/config
使用方法
使用工厂实例化 Config 集合类
use Sinergi\Config\Collection; $config = Collection::factory([ 'path' => __DIR__ . "/configs" ]);
可选地,您也可以设置环境。设置环境将合并正常配置与环境目录中的配置。例如,如果您设置环境为 prod,则 configs/prod/*
目录中的配置将覆盖 configs/*
目录中的配置。以下是一个示例:
use Sinergi\Config\Collection; $config = Collection::factory([ 'path' => __DIR__ . "/configs", 'environment' => 'prod' ]);
可选地,您还可以使用 dotenv 将敏感信息隐藏到 .env
文件中。为此,指定包含 .env
文件的目录。例如,在这个示例中:
use Sinergi\Config\Collection; $config = Collection::factory([ 'path' => __DIR__ . "/configs", 'dotenv' => __DIR__, 'environment' => 'prod' ]);
然后您可以使用配置如下:
$config->get('app.timezone');
获取器
配置获取器使用简单的语法: 文件名.数组键
。
例如
$config->get('app.timezone');
您可以设置默认值,如下所示
$config->get('app.timezone', "America/New_York");
您可以使用获取器访问配置中的多维数组
$config->get('database.connections.default.host');
设置器
或者,您也可以从应用程序代码中设置配置
$config->set('app.timezone', "Europe/Berlin");
您可以设置整个配置数组
$config->set('database', [ 'host' => "localhost", 'dbname' => "my_database", 'user' => "my_user", 'password' => "my_password" ]);
示例
更多示例请参见 示例文件夹。
PHP 配置文件
PHP 配置文件示例
return [ 'timezone' => "America/New_York" ];
Yaml 配置文件
YAML 配置文件示例
timezone: America/New_York
Dotenv
在 PHP 配置文件中使用 Dotenv 的示例
return [ 'timezone' => env('TIMEZONE', "America/New_York") ];
以及在 .env
文件中
TIMEZONE="America/Chicago"
许可
Config 在 MIT 许可证(MIT)下授权。