KumbiaPHP  beta2
Framework PHP
 Todo Estructuras de Datos Namespaces Archivos Funciones Variables Páginas
bootstrap.php
Ir a la documentación de este archivo.
1 <?php
28 // Inicia la sesion
29 session_start();
30 
31 // Iniciar el buffer de salida
32 ob_start();
33 
34 // Versión de KumbiaPHP
35 function kumbia_version()
36 {
37  return '1.0 Beta 2';
38 }
39 
40 // @see KumbiaException
41 function handle_exception($e)
42 {
44 }
45 
46 // Registrar la autocarga
47 spl_autoload_register('auto');
48 
49 // Inicializar el ExceptionHandler
50 set_exception_handler('handle_exception');
51 
52 // @see Util
53 require CORE_PATH . 'kumbia/util.php';
54 
55 // @see Config
56 require CORE_PATH . 'kumbia/config.php';
57 
58 // Lee la configuracion
59 $config = Config::read('config');
60 
61 // Constante que indica si la aplicacion se encuentra en produccion
62 if (!defined('PRODUCTION')) {
63  define('PRODUCTION', $config['application']['production']);
64 }
65 
66 // Carga la cache y verifica si esta cacheado el template, al estar en produccion
67 if (PRODUCTION) {
68  // @see Cache
69  require CORE_PATH . 'libs/cache/cache.php';
70 
71  //Asigna el driver por defecto usando el config.ini
72  if (isset($config['application']['cache_driver']))
73  Cache::setDefault($config['application']['cache_driver']);
74 
75  // Verifica si esta cacheado el template
76  if ($template = Cache::driver()->get($url, 'kumbia.templates')) { //verifica cache de template para la url
77  echo $template;
78  echo '<!-- Tiempo: ' . round(microtime(TRUE) - START_TIME, 4) . ' seg. -->';
79  exit(0);
80  }
81 }
82 
83 // Asignando locale
84 if (isset($config['application']['locale'])) {
85  setlocale(LC_ALL, $config['application']['locale']);
86 }
87 
88 // Establecer el timezone para las fechas y horas
89 if (isset($config['application']['timezone'])) {
90  ini_set('date.timezone', $config['application']['timezone']);
91 }
92 
93 // Establecer el charset de la app en la constante APP_CHARSET
94 if (isset($config['application']['charset'])) {
95  define('APP_CHARSET', strtoupper($config['application']['charset']));
96 } else {
97  define('APP_CHARSET', 'UTF-8');
98 }
99 
100 // Autocarga de clases
101 function auto($class)
102 {
103 
104  // Optimizando carga
105  if ($class == 'ActiveRecord') {
106  return include APP_PATH . 'libs/active_record.php';
107  }
108  if ($class == 'Load') {
109  return include CORE_PATH . 'kumbia/load.php';
110  }
111 
112  // Pasando a smallcase
113  $class = Util::smallcase($class);
114  if (is_file(APP_PATH . "extensions/helpers/$class.php")) {
115  return include APP_PATH . "extensions/helpers/$class.php";
116  }
117  if (is_file(CORE_PATH . "extensions/helpers/$class.php")) {
118  return include CORE_PATH . "extensions/helpers/$class.php";
119  }
120  if (is_file(APP_PATH . "libs/$class.php")) {
121  return include APP_PATH . "libs/$class.php";
122  }
123  if (is_file(CORE_PATH . "libs/$class/$class.php")) {
124  return include CORE_PATH . "libs/$class/$class.php";
125  }
126 
127  if ($class == 'kumbia_exception') {
128  include CORE_PATH . 'kumbia/kumbia_exception.php';
129  }
130 }
131 
132 // @see Router
133 require CORE_PATH . 'kumbia/router.php';
134 
135 // @see Controller
136 require APP_PATH . 'libs/app_controller.php';
137 
138 // @see KumbiaView
139 require APP_PATH . 'libs/view.php';
140 
141 // Ejecuta el request
142 try {
143  // Dispatch y renderiza la vista
145 } catch (KumbiaException $e) {
147 }
148 
149 // Fin del request
150 exit();