Compare commits

...

2 Commits

Author SHA1 Message Date
kj
b6555ee039 Fix docblocks. 2022-06-07 23:06:37 -04:00
kj
a641248453 Add middleware priorities. 2022-06-07 23:05:49 -04:00

View File

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