@flowithwind
var_dump($config -> toArray()[ 'type' ][ 18 ][ 'text' ]);
string 'abc' (length=3)(Yaf >=1.0.0)
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".
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).
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"
@flowithwind
var_dump($config -> toArray()[ 'type' ][ 18 ][ 'text' ]);
string 'abc' (length=3)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/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' ");
?>