sinergi/config

此包已被弃用且不再维护。作者建议使用 northwoods/config 包。

PHP 配置加载

0.6.4 2016-05-18 17:13 UTC

README

Build Status StyleCI Scrutinizer Code Quality Code Coverage Code Climate Latest Stable Version Total Downloads License SensioLabsInsight Gitter

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)下授权。