nimayneb / advini
高级INI读取器
2.0.1
2017-09-04 07:05 UTC
Requires
- php: ~7.1.0
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: 6.3.*
This package is auto-updated.
Last update: 2024-09-25 20:17:27 UTC
README
PHP的高级INI文件读取器。
问题
您无法使用内部 "parse_ini_file" 实现定义和读取更深层次的数组结构
[group1] property1 = value1 property2 = value2 property3 = value3 [group2] property1 = value1 property2 = value2 property3 = value3
"Advini" 通过添加几个组件扩展了内部 "parse_ini_file"。
它支持
-
定义复杂的键和部分
category/property = value
-
导入任何INI文件
property = @import[ default.ini ]
-
包括常量(来自INI文件)
property = << key >>
-
在设置之前调用方法
property:sha1 = geheim1234
定义复杂的键和部分
用法
[{key1}/{key2}(...)]
key3/key4(...) = value
PHP
use JBR\Advini\Advini; $ini = new Advini(); $configuration = $ini->getFromFile("local.ini"); var_dump($configuration);
INI
[category/subcategory] key = value
输出结果
array(
"category" => array(
"subcategory" => array(
"key" => "value"
)
)
)
导入任何INI文件
用法
{key} = @import[ [file] ]
PHP
use JBR\Advini\Advini; $ini = new Advini(); $configuration = $ini->getFromFile("local.ini"); var_dump($configuration);
INI "local.ini"
category = @import[ import.ini ]
INI "import.ini"
[subcategory] key = value
输出结果
array(
"category" => array(
"subcategory" => array(
"key" => "value"
)
)
)
包含常量
用法
{key} = << [constant] >>
PHP
use JBR\Advini\Advini; use JBR\Advini\Instructor\ConstantInstructor; $ini = new Advini(); $const = $ini->getInstructor(ConstantInstructor::class); $const->setConstantsFromFile("constants.ini"); $configuration = $ini->getFromFile("local.ini"); var_dump($configuration);
INI "constants.ini"
[category/subcategory] key = value
INI "local.ini"
[category/subcategory] key = << key >>
输出结果
array(
"category" => array(
"subcategory" => array(
"key" => "value"
)
)
)
在设置之前调用方法
用法
{key}:{method}(...) = {value}
PHP
use JBR\Advini\Advini; use JBR\Advini\Methods\Base; $ini = new Advini(new Base()); try { $configuration = $ini->getFromFile("local.ini"); var_dump($configuration); } catch (AdviniException $e) { echo $e->getMessage(); }
INI "local.ini"
[category/subcategory] key1:integer = "foobar" key2:string = 123 key3:md5 = "secret"
输出结果
array(
"category" => array(
"subcategory" => array(
"key1" => 0,
"key2" => "123",
"key3" => "5ebe2294ecd0e0f08eab7690d2a6ee69"
)
)
)
或者通过部分调用
用法
[{section}:{method}]
{key} = {value}
INI "local.ini"
[category/subcategory:serialize] key1:integer = "foobar" key2:string = 123 key3:md5 = "secret"
输出结果
array(
"category" => array(
"subcategory" => "a:3:{s:4:"key1";i:0;s:4:"key2";s:3:"123";s:4:"key3";s:32:"5ebe2294ecd0e0f08eab7690d2a6ee69";}"
)
)