KumbiaPHP beta2-dev
Framework PHP en español
bootstrap.php
Ir a la documentación de este archivo.
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();
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Enumeraciones