Archivos de Configuracion

Aspectos Generales
Los archivos de configuracion son archivos de texto plano, que contienen configuraciones utiles al sistema, o simplemente datos fijos de la aplicacion que pueden variar pero con muy poca frecuencia. La estructura es la misma que los archivos .ini de php por ejemplo:
<?php
todo texto en una línea tras un punto y coma sin comillas (;) será ignorado
[php] ; los marcadores de sección (textos entre corchetestambién se ignoran
Los valores de tipo boolean puede establecerse a:
;    
trueonyes
o  falseoffnonone
register_globals 
off
track_errors 
yes

se pueden encerrar los strings entre comillas dobles
include_path 
".:/usr/local/lib/php"

las barras invertidas reciben el mismo tratamiento que el resto de caracteres
include_path 
".;c:\php\lib"

Las diferencias en agenor, con respecto a los archivos ini de php son 2:
- La extencion de dichos archivos sea .php en vez de .ini
- Deben comenzar con el tag de apertura php es decir <?php

Esto es para darle mayor seguridad al sistema. En caso de que puedan acceder a nuestro archivo por un error del .htaccess el mismo mostrara el siguiente mensaje de error: Parse error: syntax error, unexpected 'is' (T_STRING) in C:\xampp\htdocs\application.php on line 2.-

Tipos de Archivos de Configuracion
Podemos encontrar 2 tipos de archivos de configuracion:
1> Los archivos generales del sistema, que se encuentran en la carpeta DIR_CONFIG_APP (configs) en el directorio base, y que debe setear aspectos generales del sistema, por lo menos debemos definir un archivo application.php de configuracion.
2> Configuraciones de Modulo, se encuentran en la carpeta DIR_CONFIGS (configs) de cada modulo y deberan setear aspectos especificos de cada modulo.

Como se procesan
Ya sean archivos de configuracion de la aplicacion o del modulo, estos van a terminar siendo parseados por agenor, para dejarnos disponible automaticamente un objeto de propiedades (objeto tipo stdClass). Para entender mejor este aspecto veremos un ejemplo, supongamos el siguiente archivo de configuracion llamado : info.php
<?php
Datos para el log de Errores del Sistema.
log.dir         'log';
log.pref        'agenor';
log.state       1;

Datos de informacion general
sys
.zone_date   'America/Montevideo';
sys.version     '0.5.4 alfa';
sys.nombre      'AGENOR - MVC';
sys.autor       'Marcelo Castro';
sys.email       'objetivophp@gmail.com';
El sistema guardara en el Registry de la aplicacion bajo el nombre info un objeto del tipo stdClass con todos los datos del archivo, para obtenerlo haremos:
$datos = \agenor\mvc\Registry::get('info');
Si quisieramos mostrar la zona horaria
echo $datos->sys->zone_date;
El cual mostrara como resultado America/Montevideo.

A continuacion dejamos el objeto del tipo stdClass, completo que se genero a partir del archivo de configuracion.
  object(stdClass)#7 (2) {
  ["log"]=>
  object(stdClass)#5 (3) {
    ["dir"]=>
    string(3) "log"
    ["pref"]=>
    string(6) "agenor"
    ["state"]=>
    string(1) "1"
  }
  ["sys"]=>
  object(stdClass)#6 (5) {
    ["zone_date"]=>
    string(18) "America/Montevideo"
    ["version"]=>
    string(10) "0.5.4 alfa"
    ["nombre"]=>
    string(12) "AGENOR - MVC"
    ["autor"]=>
    string(14) "Marcelo Castro"
    ["email"]=>
    string(21) "objetivophp@gmail.com"
  }
}    

  IMPORTANTE :
Recordar siempre de iniciar un archivo de configuracion con <?php, esto redundara en mas seguridad de nuestra aplicacion.

Archivo basico de configuracion
El archivo application.php del directorio de configuracion del raiz del sitio, debe contener como minimo:
<?php
this is an INI file
[web]
Configuracion del Layout
layout
.dir      'bootstrap';
layout.main     'layout.phtml';
layout.idioms   'es';

Datos para el log de Errores del Sistema.
log.dir         'log';
log.pref        'agenor';
log.state       1;

Marca que debug hereda de Web y se sobreescribiran los parametros que cambien.
[
debug web]

IMPORTANTE :
Siempre debe existir y ser cargado el archivo application.php.-