KumbiaPHP beta2-dev
Framework PHP en español
|
00001 <?php 00023 // Inicia la sesion 00024 session_start(); 00025 00026 // Iniciar el buffer de salida 00027 ob_start(); 00028 00029 // Versión de KumbiaPHP 00030 function kumbia_version(){ 00031 return '1.0 Beta 2'; 00032 } 00033 00034 // @see KumbiaException 00035 function handle_exception($e){ 00036 KumbiaException::handle_exception($e); 00037 } 00038 00039 // Registrar la autocarga 00040 spl_autoload_register('auto'); 00041 00042 // Inicializar el ExceptionHandler 00043 set_exception_handler('handle_exception'); 00044 00045 // @see Util 00046 require_once CORE_PATH . 'kumbia/util.php'; 00047 00048 // @see Config 00049 require_once CORE_PATH . 'kumbia/config.php'; 00050 00051 // Lee la configuracion 00052 $config = Config::read('config'); 00053 00054 // Constante que indica si la aplicacion se encuentra en produccion 00055 if (! defined('PRODUCTION')) { 00056 define('PRODUCTION', $config['application']['production']); 00057 } 00058 00059 // Carga la cache y verifica si esta cacheado el template, al estar en produccion 00060 if(PRODUCTION) { 00061 // @see Cache 00062 require_once CORE_PATH . 'libs/cache/cache.php'; 00063 00064 //Asigna el driver por defecto usando el config.ini 00065 if (isset ($config['application']['cache_driver'])) Cache::setDefault($config['application']['cache_driver']); 00066 00067 // Verifica si esta cacheado el template 00068 if ($template = Cache::driver()->get($url, 'kumbia.templates')) { //verifica cache de template para la url 00069 echo $template; 00070 echo '<!-- Tiempo: ' . round(microtime(1) - START_TIME, 4) . ' seg. -->'; 00071 exit(0); 00072 } 00073 } 00074 00075 // Asignando locale 00076 if (isset($config['application']['locale'])) { 00077 setlocale(LC_ALL, $config['application']['locale']); 00078 } 00079 00080 // Establecer el timezone para las fechas y horas 00081 if (isset($config['application']['timezone'])) { 00082 ini_set('date.timezone', $config['application']['timezone']); 00083 } 00084 00085 // Establecer el charset de la app en la constante APP_CHARSET 00086 if (isset($config['application']['charset'])) { 00087 define('APP_CHARSET', strtoupper($config['application']['charset'])); 00088 } else { 00089 define('APP_CHARSET', 'UTF-8'); 00090 } 00091 00092 // Autocarga de clases 00093 function auto($class){ 00094 00095 // Optimizando carga de ActiveRecord 00096 if($class == 'ActiveRecord') { 00097 return require_once APP_PATH . 'libs/active_record.php'; 00098 } 00099 00100 // Pasando a smallcase 00101 $class = Util::smallcase($class); 00102 00103 if (is_file(APP_PATH . "extensions/helpers/$class.php")) { 00104 return require_once APP_PATH . "extensions/helpers/$class.php"; 00105 } 00106 if (is_file(CORE_PATH . "extensions/helpers/$class.php")) { 00107 return require_once CORE_PATH . "extensions/helpers/$class.php"; 00108 } 00109 if (is_file(APP_PATH . "libs/$class.php")) { 00110 return require_once APP_PATH . "libs/$class.php"; 00111 } 00112 if (is_file(CORE_PATH . "libs/$class/$class.php")) { 00113 return require_once CORE_PATH . "libs/$class/$class.php"; 00114 } 00115 00116 if($class == 'kumbia_exception'){ 00117 require_once CORE_PATH . 'kumbia/kumbia_exception.php'; 00118 } 00119 } 00120 // @see Router 00121 require_once CORE_PATH . 'kumbia/router.php'; 00122 00123 //@see Load 00124 require_once CORE_PATH . 'kumbia/load.php'; 00125 00126 // @see Dispatcher 00127 require_once CORE_PATH . 'kumbia/dispatcher.php'; 00128 00129 // @see Controller 00130 require_once APP_PATH . 'libs/app_controller.php'; 00131 00132 // @see KumbiaView 00133 require_once APP_PATH . 'libs/view.php'; 00134 00135 // Ejecuta el request 00136 try { 00137 // Dispatch y renderiza la vista 00138 View::render(Dispatcher::execute(Router::rewrite($url)), $url); 00139 } catch (KumbiaException $e) 00140 { 00141 KumbiaException::handle_exception($e); 00142 } 00143 00144 // Fin del request 00145 exit();