/** * Método que despacha la página solicitada * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]delaf.cl) * @version 2014-03-21 */ public static function dispatch() { $request = new Network_Request(); $response = new Network_Response(); // Verificar si el recurso solicitado es un archivo físico dentro del // directorio webroot if (self::_asset($request->request, $response)) { // retorna el método Dispatcher::dispatch, con lo cual termina el // procesado de la página return; } // Parsear parámetros del request $request->params = Routing_Router::parse($request->request); // Si se solicita un módulo tratar de cargar y verificar que quede activo if (!empty($request->params['module'])) { Module::load($request->params['module']); if (!Module::loaded($request->params['module'])) { throw new Exception_Module_Missing(array('module' => $request->params['module'])); } } // Obtener controlador $controller = self::_getController($request, $response); // Verificar que lo obtenido sea una instancia de la clase Controller if (!$controller instanceof Controller) { throw new Exception_Controller_Missing(array('class' => 'Controller_' . Utility_Inflector::camelize($request->params['controller']))); } // Invocar a la acción del controlador return self::_invoke($controller, $request, $response); }
/** * SowerPHP * Copyright (C) SowerPHP (http://sowerphp.org) * * Este programa es software libre: usted puede redistribuirlo y/o * modificarlo bajo los términos de la Licencia Pública General Affero de GNU * publicada por la Fundación para el Software Libre, ya sea la versión * 3 de la Licencia, o (a su elección) cualquier versión posterior de la * misma. * * Este programa se distribuye con la esperanza de que sea útil, pero * SIN GARANTÍA ALGUNA; ni siquiera la garantía implícita * MERCANTIL o de APTITUD PARA UN PROPÓSITO DETERMINADO. * Consulte los detalles de la Licencia Pública General Affero de GNU para * obtener una información más detallada. * * Debería haber recibido una copia de la Licencia Pública General Affero de GNU * junto a este programa. * En caso contrario, consulte <http://www.gnu.org/licenses/agpl.html>. */ namespace sowerphp\core; /** * @file core.php * Rutas estándares de las páginas o aplicaciones * @version 2014-03-22 */ // Definir la página de inicio Routing_Router::connect('/', array('controller' => 'pages', 'action' => 'display', '/' . Configure::read('homepage')));