getsky / phalcon-config-loader

从各种文件加载配置的组件

v1.1.3 2014-10-31 12:28 UTC

This package is not auto-updated.

Last update: 2024-09-24 03:23:25 UTC


README

ConfigLoader - 它是Phalcon的配置文件管理器。它允许您通过单个方法创建各种格式的配置(ini、yaml、JSON、PHP数组或其他,您将添加适配器)。

$configYml = $configLoader->create('config.yml');
$configIni = $configLoader->create('config.ini');
$configPhp = $configLoader->create('config.php');


// or use string
$string = 'foo = bar'
$configFromText = $configLoader->fromText($string, 'ini');

// or use arrays
$config = ['foo' => 'bar'];
$configFromArray = $configLoader->fromArray($config);

ConfigLoader能够追踪配置文件中的%environment%并替换为我们的环境。

// Create ConfigLoader and specify the environment of our application
$configLoader = new ConfigLoader('prod');

// config.yml : test: %environment%
$configYml = $configLoader->create('config.yml');

echo $configYml->test;
// print: prod 

要添加适配器,您必须调用add ()方法,传递扩展和适配器类,该类必须继承自Phalcon\Config类。

$config = $configLoader->add('xml', 'MyNamespace/XmlConfig');

此外,您可以合并配置文件

#config.ini
[test]
test = true
%res% = import.ini
exp = %res:import.ini
%class% = Test/Class::SERVICES
import-class =  %class:Test/Class::SERVICES
#import.ini
import = "test"
namespace Test;

class Class {
  const SERVICES = '/const.ini';
}
#const.ini
class = "class"

config.ini加载配置的结果

[                               
    'test' => [                 
        'test' => true,                             
        'import' => true,       
        'env' => 'dev',
        'exp' => [
            'import' => true,
            'env' => 'dev'
        ],
        'class' => "class",
        'impot-class' => [
            'class' => "class"
        ]
    ]                           
]                               

父文件中声明的变量不会被子文件中的变量替换(只有%res%或%class%)

# /app/config/config.ini
%res% = include.ini
[foo]
test = config-test
# /app/config/include.ini
[foo]
test = test
bar = bar
# result
[foo]
test = config-test
bar = bar

如果您不想导入资源(在本配置中加载其他配置文件),第二个参数必须传递一个布尔值false

$config = $configLoader->create('config.ini', false);