IESA
Programa de Feedback Gerencial y Liderazgo
 Todo Estructuras de Datos Archivos Funciones Variables
Config.class.php
Ir a la documentación de este archivo.
00001 <?php
00002 
00015 class Config{
00016 
00023         private static $env;
00024 
00034         public static function load($file){
00035 
00036                 $default = array(
00037                         'router'=>array(
00038                                 'unsecure' => array(),
00039                                 'secure' => array()
00040                         ),
00041                         'database'=>array()
00042                 );
00043 
00044                 $env = spyc_load_file($file);
00045 
00046                 if( !is_array( $env ) )
00047                         throw new Exception("File \"{$file}\" not found",1001);
00048 
00049                 $imports = array( );
00050 
00051                 if( isset( $env['imports'] ) && is_array( $env['imports'] ) ){
00052                         $imports = $env['imports'];
00053                         unset( $env['imports'] );
00054                 }
00055 
00056                 foreach( $imports as $name => $rsc ){
00057                         $env = array_merge_recursive(
00058                                 $env,
00059                                 spyc_load_file(
00060                                         (
00061                                                 dirname( $rsc["resource"] ) == '.' || strpos( $rsc["resource"], '/' ) != 0 ?
00062                                                         dirname( $file ) . '/'
00063                                                 :
00064                                                         ''
00065                                         )
00066                                         .$rsc["resource"]
00067                                 )
00068                         );
00069                 }
00070 
00071                 self::$env = array_merge_recursive( 
00072                         $env,
00073                         $default
00074                 );
00075         }
00076 
00107         public static function get($uri){
00108                 if( $uri=='' )
00109                         return '';
00110 
00111                 $uri = explode( '/', trim( $uri, '/' ) );
00112 
00113                 $rt= self::$env;
00114 
00115                 foreach($uri as $lvl)
00116                         if( isset($rt[$lvl]) )
00117                                 $rt = $rt[$lvl];
00118                         else{
00119                                 $rt = '';
00120                                 break;
00121                         }
00122                 return $rt;
00123         }
00124 
00125 }