示例#1
0
 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;
 }
示例#2
0
<?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();