La classe Yaf_Config_Ini

(Yaf >=1.0.0)

Introduction

Yaf_Config_Ini permet aux développeurs de stocker des données de configuration au format INI et de les lire dans l'application en utilisant une syntaxe interne orientée objet. Le format INI est prévu pour fournir à la fois la possibilité d'avoir une configuration hiérarchique des clés des données, ainsi qu'un héritage entre les sections des données de configuration. La hiérarchie des données de configuration est supportée en séparant les clés avec un point ou une virgule. Une section peut étendre ou hériter d'une autre section en faisant suivre le nom de la section avec le caractère ":", suivi du nom de la section depuis laquelle les données sont héritées.

Note:

Yaf_Config_Ini utilise la fonction PHP parse_ini_file(). Se reporter à la documentation de cette fonction afin de mieux apprécier son comportement, ainsi propagé à Yaf_Config_Ini, comme la façon dont sont gérées les valeurs spéciales "true", "false", "yes", "no", et "null".

Synopsis de la classe

class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Propriétés */
/* Méthodes */
public function __construct(string $config_file, string $section = ?)
public function count(): void
public function current(): void
public function __get(string $name = ?): void
public function __isset(string $name): void
public function key(): void
public function next(): void
public function offsetExists(string $name): void
public function offsetGet(string $name): void
public function offsetSet(string $name, string $value): void
public function offsetUnset(string $name): void
public function readonly(): void
public function rewind(): void
public function __set(string $name, mixed $value): void
public function toArray(): array
public function valid(): void
/* Méthodes héritées */
abstract public function Yaf_Config_Abstract::get(string $name, mixed $value): mixed
abstract public function Yaf_Config_Abstract::readonly(): bool
abstract public function Yaf_Config_Abstract::set(): Yaf_Config_Abstract
abstract public function Yaf_Config_Abstract::toArray(): array
}

Propriétés

_config

_readonly

Exemples

Exemple #1 Exemple avec Yaf_Config_Ini()

Cet exemple illustre une utilisation basique de Yaf_Config_Ini permettant de charger les données de configuration depuis un fichier INI. Dans cet exemple, il y a des données de configuration pour à la fois un système de production et un système de test. En raison du fait que les données de configuration du système de test sont très similaires à celles de production, la section de test hérite de la section de production. Aussi, cette décision est arbitraire, et aurait pu être écrite dans l'autre sens, avec une section de production qui hérite de la section de test, mais ce n'aurait pas pu être le cas pour des cas plus complexes. On suppose ici que les données de configuration suivantes sont contenues dans le chemin /path/to/config.ini :

; Données de configuration pour le site de production
[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
 
; Données de configuration pour le site de test, héritées depuis celui de production
; et écrasant les valeurs nécessaires
[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"));
?>

Résultat de l'exemple ci-dessus est similaire à :

string(15) "dev.example.com"
string(6) "dbname"
string(7) "devuser

Sommaire

add a note

User Contributed Notes 3 notes

up
2
lee dot howarth dot 90 at gmail dot com
12 years ago
@flowithwind 

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

string 'abc' (length=3)
up
1
Mark
11 years ago
/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' ");
?>
up
0
zzxiaoman at gmail dot com
11 years ago
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
To Top