©
本文档使用 PHP中文网手册 发布
(Yaf >=1.0.0)
Yaf_Config_Ini允许开发者通过嵌套的对象属性语法在应用程序中用熟悉的INI格式存储和读取配置数据。 INI格式在提供拥有配置数据键的等级结构和配置数据节之间的继承能力方面具有专长。 配置数据等级结构通过用点或者句号(.)分离键值。 一个节可以扩展或者通过在节的名称之后带一个冒号(:)和被继承的配置数据的节的名称来从另一个节继承。
Note:
Yaf_Config_Ini利用PHP的函数parse_ini_file()来解析配置文件的。 请仔细查看这个函数的文档,注意它的一些特殊用途。以及它传递给Yaf_Config_Ini的一些比如 "TRUE", "FALSE","yes", "no", 和"NULL"的特殊值的处理方式
$config_file
[, string $section
] )$name
] )$name
)$name
)$name
)$name
, string $value
)$name
)$name
, mixed $value
)$name
, mixed $value
)Example #1 Yaf_Config_Ini() example
这个例子说明了使用Yaf_Config_Ini从一个INI配置文件中获取配置数据的基本用法。 这个例子中既有生产环境的配置方法也有演示环境的配置方法。 因为演示环境的配置跟生产环境的非常类似,所以演示环境的配置继承了生产环境的配置。 在复杂的情况下,决定是任意的,也可以写成相反的。在更复杂的情况下,生产环境继承自演示环境不是不可能的。 假设,以下配置数据都包含在/path/to/config.ini中:
; Production site configuration data [production] webhost = www.example.com database.adapter = pdo_mysql database.params.host = db.example.com database.params.username = dbuser database.params.password = secret database.params.dbname = dbname ; Staging site configuration data inherits from production and ; overrides values as necessary [staging : production] database.params.host = dev.example.com database.params.username = devuser database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini ( '/path/to/config.ini' , 'staging' );
var_dump ( $config -> database -> params -> host );
var_dump ( $config -> database -> params -> dbname );
var_dump ( $config -> get ( "database.params.username" ));
?>
以上例程的输出类似于:
string(15) "dev.example.com" string(6) "dbname" string(7) "devuser
[#1] zzxiaoman at gmail dot com [2015-03-04 15:17:42]
when i use Yaf_Config_ini with these lines:
type.18.text=abc
type.8.text=ddf
type.0.text=fjdsklf
You can through this way
$$configArr = $config->toArray();
var_dump($configArr['type'][18]['text']);
result:
abc
[#2] kehaovista at qq dot com [2015-01-06 08:00:29]
print_r($config->type[18]->text);
print_r($config->type[18]['text']);
????????
[#3] Mark [2015-01-03 20:59:51]
/conf/db.ini
[product]
database.params.host = localhost
database.params.port = 5432
database.params.dbname = postgres
database.params.username = 'postgres'
database.params.password = 123456
<?php
$config = new Yaf_Config_ini('../conf/db.ini','product');
$config = $config->toArray();
$host = $config['database']['params']['host'];
$port = $config['database']['params']['port'];
$database = $config['database']['params']['dbname'];
$username = $config['database']['params'['username'];
$password = $config['database']['params']['password'];
$pg_conn = pg_connect("host='$host' port='$port' dbname='$database' user='$username' password='$password' ");
?>
[#4] lee dot howarth dot 90 at gmail dot com [2014-05-02 21:59:44]
@flowithwind
var_dump($config -> toArray()[ 'type' ][ 18 ][ 'text' ]);
string 'abc' (length=3)
[#5] flowithwind at gmail dot com [2014-04-08 07:03:14]
when i use Yaf_Config_ini with these lines:
type.18.text=abc
type.8.text=ddf
type.0.text=fjdsklf
I can not found a way to get config value:
$config->type->18->text
$config->type[18]->text
$config->type['18']->text
$config->get("type.18.text")
all of above codes return NULL.
How can I get the config value?