Compare commits

..

No commits in common. "b6555ee039d82662b46e274e2ced1f31206f49ed" and "eb27acf68ecb521cd8da6a8c8c8ff77e8b6060b0" have entirely different histories.

View File

@ -92,18 +92,16 @@ class Router {
header('Location: '.static::basePath().substr($path,1)); header('Location: '.static::basePath().substr($path,1));
} }
/** /*
* Añade un middleware a la última ruta usada. * Añade un middleware a la última ruta usada.
* Solo se puede usar un middleware a la vez. * Solo se puede usar un middleware a la vez.
* *
* @param mixed $callback * @param mixed $callback
* @param int $prioriry
* *
* @return Router * @return Router
* Devuelve un enlace estático. * Devuelve un enlace estático.
*/ */
public static function middleware($callback) : Router{
public static function middleware($callback, int $priority = null) : Router {
if (!isset(static::$last)) if (!isset(static::$last))
return new static(); return new static();
@ -114,23 +112,12 @@ class Router {
$callback = 'Middlewares\\'.$callback; $callback = 'Middlewares\\'.$callback;
} }
if (isset($priority) && $priority <= 0) static::$$method[$index]['callback'][] = $callback;
$priority = 1;
if (is_null($priority) || $priority >= count(static::$$method[$index]['callback']))
static::$$method[$index]['callback'][] = $callback;
else {
static::$$method[$index]['callback'] = array_merge(
array_slice(static::$$method[$index]['callback'], 0, $priority),
[$callback],
array_slice(static::$$method[$index]['callback'], $priority)
);
}
return new static(); return new static();
} }
/** /*
* @return Neuron * @return Neuron
* Devuelve un objeto que contiene los atributos: * Devuelve un objeto que contiene los atributos:
* post - Donde se encuentran los valores enviados por $_POST. * post - Donde se encuentran los valores enviados por $_POST.
@ -148,7 +135,7 @@ class Router {
return $req; return $req;
} }
/** /*
* @return object * @return object
* Devuelve un objeto con los datos recibidos en JSON. * Devuelve un objeto con los datos recibidos en JSON.
*/ */
@ -160,7 +147,7 @@ class Router {
return (object) ''; return (object) '';
} }
/** /*
* Define los routers para el método GET. * Define los routers para el método GET.
* *
* @param string $path * @param string $path
@ -178,7 +165,7 @@ class Router {
return new static(); return new static();
} }
/** /*
* Define los routers para el método POST. * Define los routers para el método POST.
* *
* @param string $path * @param string $path
@ -196,7 +183,7 @@ class Router {
return new static(); return new static();
} }
/** /*
* Define los routers para el método PUT. * Define los routers para el método PUT.
* *
* @param string $path * @param string $path
@ -215,7 +202,7 @@ class Router {
return new static(); return new static();
} }
/** /*
* Define los routers para el método DELETE. * Define los routers para el método DELETE.
* *
* @param string $path * @param string $path
@ -233,7 +220,7 @@ class Router {
return new static(); return new static();
} }
/** /*
* Devuelve la ruta actual. * Devuelve la ruta actual.
* *
* @return string * @return string
@ -243,7 +230,7 @@ class Router {
'/', strtok($_SERVER['REQUEST_URI'], '?'), 1); '/', strtok($_SERVER['REQUEST_URI'], '?'), 1);
} }
/** /*
* Aplica los routers. * Aplica los routers.
* *
* Este método ha de ser llamado luego de que todos los routers hayan sido configurados. * Este método ha de ser llamado luego de que todos los routers hayan sido configurados.