/** * Función Principal donde se ejecutan los controladores * * @params string $url url * @return boolean */ public static function main($url) { /** * El Router analiza la url **/ Router::rewrite($url); /** * Ciclo del enrutador */ $controller = Dispatcher::execute(); while (Router::getRouted()) { Router::setRouted(false); $controller = Dispatcher::execute(); } /** * Renderiza la vista **/ if ($controller->view || $controller->template) { require CORE_PATH . 'kumbia/view.php'; View::render($controller, $url); } else { ob_end_flush(); } // Fin del request exit; }
} // @see Router require CORE_PATH . 'kumbia/router.php'; //@see Load require CORE_PATH . 'kumbia/load.php'; // @see Dispatcher require CORE_PATH . 'kumbia/dispatcher.php'; // @see Controller require APP_PATH . 'libs/application_controller.php'; // @see KumbiaView require APP_PATH . 'libs/view.php'; try { // Bootstrap de la aplicacion require APP_PATH . 'libs/bootstrap.php'; // Dispatch y renderiza la vista View::render(Dispatcher::execute(Router::rewrite($url)), $url); } catch (KumbiaException $e) { KumbiaException::handle_exception($e); } // Autocarga de clases function auto($class) { // Optimizando carga de ActiveRecord if ($class == 'ActiveRecord') { return require APP_PATH . 'libs/active_record.php'; } // Pasando a smallcase $class = Util::smallcase($class); if (is_file(APP_PATH . "extensions/helpers/{$class}.php")) { return require APP_PATH . "extensions/helpers/{$class}.php"; }