static function run($ruta = null) { self::$LPAR = array(); self::$uri = $ruta ? $ruta : substr($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], strlen(self::$base) - 2); self::$url = self::$base . self::$uri; foreach (explode('/', self::$uri) as $param) { if ($param) { $param = urldecode($param); if (($pos = strpos($param, '?')) !== false) { $gets = substr($param, $pos + 1); self::$LPAR[] = substr($param, 0, $pos); } else { self::$LPAR[] = $param; } } } $lpar = self::$LPAR; $coincide = false; $ruts = array_keys(self::$rutas); foreach ($ruts as $ruta) { if (!$coincide) { $rut = explode('/', $ruta); $coinc = 0; foreach ($rut as $k => $ru) { if (isset(self::$LPAR[$k]) && ($ru == self::$LPAR[$k] || preg_match('/(*UTF8)^' . $ru . '$/', self::$LPAR[$k]))) { $coinc++; } else { $coinc = 0; break; } } if (count($lpar) > 0 && count($lpar) == $coinc) { $coincide = $ruta; } } } if ($coincide) { $func = self::$rutas[$coincide]; $func(); return true; } if (!headers_sent()) { header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found'); } if (is_callable(self::$error)) { self::$error(); } else { echo self::$error; } return false; }
<?php // Cargamos LIGA3 require_once '../LIGA3/LIGA.php'; // Configuramos el directorio base RUTA::$base = '//localhost/LIGA3/enrutador/'; // Creo una ruta básica RUTA::nueva('holaMundo', function () { echo '<h1>Hola mundo con el enrutador de LIGA.php</h1>'; }); // Imprimo las etiquetas HTML iniciales HTML::cabeceras(array('title' => 'RUTA en LIGA 3', 'description' => 'Página de pruebas para RUTA de LIGA 3', 'css' => RUTA::$base . '../util/LIGA.css')); // Guardo el bufer para colocarlo en el layout ob_start(); // Se ejecuta el enrutador RUTA::run(); $cont = ob_get_clean(); // Estuctura el cuerpo de la página HTML::cuerpo(array('cont' => $cont)); // Cierre de etiquetas HTML HTML::pie();