getsky / phalcon-config-loader
从各种文件加载配置的组件
v1.1.3
2014-10-31 12:28 UTC
Requires
- php: >=5.4
- ext-phalcon: >=1.2.4
- symfony/yaml: 2.5.5
Requires (Dev)
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);