joegreen0991 / config
此包的最新版本(v2.0.0)没有可用的许可信息。
基于 laravel 的 Config 组件
此包的官方仓库似乎已删除,因此该包已被冻结。
v2.0.0
2014-11-05 16:56 UTC
Requires (Dev)
- codeception/specify: 0.*
- phpunit/phpunit: 4.2.*
- satooshi/php-coveralls: 0.*
This package is not auto-updated.
Last update: 2024-01-20 11:18:54 UTC
README
##PHP的简单配置加载器
基于单个环境设置,将嵌套文件夹中的PHP配置数组合并(使用 array_replace_recursive
),以匹配您想要加载的文件夹树。
安装
通过 composer - 将包添加到 composer.json 文件中的 require 部分
"require" : {
"mrjgreen/config" : "v1.*"
}
示例
config
|
|____ production
| |
| |_______ server1
| | |___ redis.php
| | |___ database.php
| |
| |_______ server2
| | |___ database.php
| |
| |_______ database.php
|
|____ app.php
|____ database.php
|____ redis.php
<?php // in database.php return array( 'config_value' => 'foo', 'config_value2' => 'bar' );
<?php // in production/database.php return array( 'config_value' => 'baz', );
<?php // in production/server1/database.php return array( 'new_config_only_for_server1' => 'boo', );
$environment = ''; $config = new Config\Repository(new Config\FileLoader(__DIR__ . '/config'), $environment); var_dump($config['database']); /* array( 'config_value' => 'foo', 'config_value2' => 'bar' ); */ //________________________________________________________________________ $environment = 'production.server1'; $config = new Config\Repository(new Config\FileLoader(__DIR__ . '/config'), $environment); var_dump($config['database']); /* array( 'config_value' => 'baz', 'config_value2' => 'bar', 'new_config_only_for_server1' => 'boo', ); */
点符号
您可以在配置文件中嵌套数组,并通过点符号访问它们
<?php // in database.php return array( 'connections' => array( 'local' => array( 'host' => 'localhost' ), 'shared' => array( 'host' => '10.10.10.1' ), 'external' => array( 'host' => '156.12.102.1' ) ) ); var_dump($config['database.connection.local.host']); /* string(9) "localhost" */