Yaf_Config_Ini 类

(Yaf >=1.0.0)

简介

Yaf_Config_Ini 允许开发者将配置数据存储在熟悉的 INI 格式中,并通过使用嵌套对象属性语法在应用程序中读取它们。INI 格式专门用于提供配置数据键层次结构和配置数据节之间继承的能力。配置数据层次结构通过用点或句点字符(".")分隔键来支持。一个节可以通过在节名后面添加冒号字符(":")和要继承数据的节名来扩展或继承另一个节。

注意:

Yaf_Config_Ini 使用 » parse_ini_file() PHP 函数。请查看此文档以了解其特定行为,这些行为会传播到 Yaf_Config_Ini,例如如何处理 "true"、"false"、"yes"、"no" 和 "null" 的特殊值。

类概要

class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* 属性 */
/* 方法 */
public __construct(string $config_file, string $section = ?)
public count(): void
public current(): void
public __get(string $name = ?): void
public __isset(string $name): void
public key(): void
public next(): void
public offsetExists(string $name): void
public offsetGet(string $name): void
public offsetSet(string $name, string $value): void
public offsetUnset(string $name): void
public readonly(): void
public rewind(): void
public __set(string $name, mixed $value): void
public toArray(): array
public valid(): void
/* 继承的方法 */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
}

属性

_config

_readonly

示例

示例 #1 Yaf_Config_Ini()示例

此示例说明了 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

目录

添加备注

用户贡献笔记 3 笔记

lee dot howarth dot 90 at gmail dot com
10 年前
@flowithwind

var_dump($config -> toArray()[ 'type' ][ 18 ][ 'text' ]);

string 'abc' (length=3)
zzxiaoman at gmail dot com
9 年前
当我使用 Yaf_Config_ini 这些行时

type.18.text=abc
type.8.text=ddf
type.0.text=fjdsklf

你可以通过这种方式

$$configArr = $config->toArray();
var_dump($configArr['type'][18]['text']);

结果
abc
Mark
9 年前
/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' ");
?>
To Top