La clase Yaf_Config_Ini

(Yaf >=1.0.0)

Introducción

Yaf_Config_Ini permite a los desarrolladores almacenar la información de configuración en el familiar formato INI y leerla en la aplicación mediante la sintaxis de propiedades de objeto anidadas. El formato INI soporta jerarquías de claves de configuración (separadas por punto, ".") y herencia entre secciones (con ":" seguido del nombre de la sección padre).

Nota:

Yaf_Config_Ini utiliza la función parse_ini_file() de PHP. Consulte su documentación para conocer sus comportamientos específicos, que se propagan a Yaf_Config_Ini, como el manejo de los valores especiales "true", "false", "yes", "no" y "null".

Sugerencia

Yaf_Config_Ini analiza el fichero de configuración en cada petición. Si una aplicación gestiona una gran cantidad de configuración (mayormente estática), conviene considerar la extensión Yaconf: mantiene la configuración en memoria compartida durante todo el ciclo de vida de PHP, de modo que solo se analiza una vez y se accede de forma mucho más eficiente. Yaconf entiende exactamente la misma sintaxis INI (claves separadas por puntos y herencia entre secciones mediante "[section : parent]"), por lo que el application.ini existente puede ser servido por Yaconf tal cual; solo cambia la forma de pasarlo a Yaf_Application::__construct() (ver el consejo en Application Configuration).

Sinopsis de la clase

class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Propiedades */
/* Métodos */
public function __construct(mixed $config_file, string $section = NULL)
public function count(): int
public function current(): mixed
public function get(string $name = NULL): mixed
public function __isset(string $name): bool
public function key(): mixed
public function next(): void
public function offsetExists(mixed $name): bool
public function offsetGet(mixed $name): mixed
public function offsetSet(mixed $name, mixed $value): void
public function offsetUnset(mixed $name): void
public function readonly(): bool
public function rewind(): void
public function set(string $name, mixed $value): bool
public function toArray(): array
public function valid(): bool
/* Métodos heredados */
public function Yaf_Config_Abstract::get(string $name = NULL): mixed
abstract public function Yaf_Config_Abstract::readonly(): bool
abstract public function Yaf_Config_Abstract::set(string $name, mixed $value): bool
}

Propiedades

_config

_readonly

Ejemplos

Ejemplo #1 Ejemplo de Yaf_Config_Ini()

Este ejemplo ilustra el uso básico de la clase Yaf_Config_Ini para cargar la información de configuración desde un fichero INI. En este ejemplo existe información de configuración para el sistema de producción y el sistema de pruebas (staging). Ya que la información de configuración del sistema de pruebas es similar a la de producción, la sección de pruebas hereda de la sección de producción. En este caso, la decisión es arbitraria y podría haber sido escrito a la inversa, con la sección de producción heredando de la sección de pruebas, aunque este puede no ser el caso para situaciones más complejas. Suponga que la información de configuración siguiente está contenida en /ruta/a/config.ini:

; Información de configuración del sitio de producción
[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

; La información de configuración del sitio de pruebas hereda del de producción y
; sobrescribe los valores según sea necesario
[staging : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret
<?php
$config = new Yaf_Config_Ini('/ruta/a/config.ini', 'staging');

var_dump($config->database->params->host);
var_dump($config->database->params->dbname);
var_dump($config->get("database.params.username"));
?>

Resultado del ejemplo anterior es similar a:

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

Tabla de contenidos

+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
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
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' ");
?>
To Top