CakeFest 2024: The Official CakePHP Conference

La clase Yaf_Config_Ini

(Yaf >=1.0.0)

Introducción

La clase Yaf_Config_Ini permite a los desarrolladores almacenar la información de configuración en un formato INI familiar y leerla en la aplicación utilizando una sintaxis apropiada de objetos anidados. El formato INI está especializado en proporcionar la capacidad de tener una jerarquía de claves de información de configuación y herencia entre secciones de información de configuración. Las jerarquías de información de configuración está soportadas separando las claves con el carácter punto ("."). Una sección puede extender o heredar de otra sección añadiendo al nombre de la sección el carácter dos puntos(":") y el nombre de la sección desde la que se hereda la información.

Nota:

Yaf_Config_Ini utiliza la función » parse_ini_file() de PHP. Revise esta documentación para conocer sus comportamientos específicos, los cuales propaga a la clase Yaf_Config_Ini, tales como el manejo de valores especiales como "true", "false", "yes", "no", y "null".

Sinopsis de la Clase

class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable {
/* Propiedades */
/* Métodos */
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
/* Métodos heredados */
abstract public Yaf_Config_Abstract::get(string $name, mixed $value): mixed
}

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"));
?>

El resultado del ejemplo sería algo 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
9 years ago
@flowithwind

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

string 'abc' (length=3)
up
1
Mark
9 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
9 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