Change URI to Path.
This commit is contained in:
		| @@ -32,14 +32,14 @@ class Router { | ||||
|      * Parsea para deectar las pseudovariables (ej: {variable}) | ||||
|      * | ||||
|      * @param string $path | ||||
|      *   URI con pseudovariables. | ||||
|      *   Ruta con pseudovariables. | ||||
|      * | ||||
|      * @param callable $callback | ||||
|      *   Callback que será llamado cuando la uri configurada en $path coincida. | ||||
|      * | ||||
|      * @return array | ||||
|      *   Arreglo con 2 índices: | ||||
|      *     path        - Contiene la URI con la pseudovariables reeplazadas por expresiones regulares. | ||||
|      *     path        - Contiene la ruta con las pseudovariables reeplazadas por expresiones regulares. | ||||
|      *     callback    - Contiene el callback en formato Namespace\Clase::Método. | ||||
|      */ | ||||
|     private static function parse($path, $callback) { | ||||
| @@ -65,12 +65,12 @@ class Router { | ||||
|  | ||||
|  | ||||
|     /* | ||||
|      * Devuelve el path o URI base sobre la que trabajará el router. | ||||
|      * Devuelve el ruta base o raiz del proyecto sobre la que trabajará el router. | ||||
|      * | ||||
|      * Ej: Si la url del sistema está en "https://ejemplo.com/duckbrain" | ||||
|      *     entonces la URI base sería "/duckbrain" | ||||
|      *     entonces la ruta base sería "/duckbrain" | ||||
|      */ | ||||
|     public static function baseURI() { | ||||
|     public static function basePath() { | ||||
|         if (defined('SITE_URL')) | ||||
|             return parse_url(SITE_URL, PHP_URL_PATH); | ||||
|         return str_replace($_SERVER['DOCUMENT_ROOT'], '/', ROOT_DIR); | ||||
| @@ -79,15 +79,15 @@ class Router { | ||||
|     /* | ||||
|      * Redirije a una ruta relativa interna. | ||||
|      * | ||||
|      * @param string $uri | ||||
|      *   La URI relativa a la URI base. | ||||
|      * @param string $path | ||||
|      *   La ruta relativa a la ruta base. | ||||
|      * | ||||
|      * Ej: Si nuesto sistema está en "https://ejemplo.com/duckbrain" | ||||
|      *     llamamos a Router::redirect('/docs'), entonces seremos | ||||
|      *     redirigidos a "https://ejemplo.com/duckbrain/docs". | ||||
|      */ | ||||
|     public static function redirect($uri) { | ||||
|         header('Location: '.static::baseURI().substr($uri,1)); | ||||
|     public static function redirect($path) { | ||||
|         header('Location: '.static::basePath().substr($uri,1)); | ||||
|     } | ||||
|  | ||||
|     /* | ||||
| @@ -129,7 +129,7 @@ class Router { | ||||
|         $req->post       = new Neuron($_POST); | ||||
|         $req->json       = new Neuron(static::get_json()); | ||||
|         $req->params     = new Neuron(); | ||||
|         $req->path       = static::URIPath(); | ||||
|         $req->path       = static::currentPath(); | ||||
|         return $req; | ||||
|     } | ||||
|  | ||||
| @@ -149,7 +149,7 @@ class Router { | ||||
|      * Define los routers para el método GET. | ||||
|      * | ||||
|      * @param string $path | ||||
|      *   URI con pseudovariables. | ||||
|      *   Ruta con pseudovariables. | ||||
|      * | ||||
|      * @param callable $callback | ||||
|      *   Callback que será llamado cuando la uri configurada en $path coincida. | ||||
| @@ -167,7 +167,7 @@ class Router { | ||||
|      * Define los routers para el método POST. | ||||
|      * | ||||
|      * @param string $path | ||||
|      *   URI con pseudovariables. | ||||
|      *   Ruta con pseudovariables. | ||||
|      * | ||||
|      * @param callable $callback | ||||
|      *   Callback que será llamado cuando la uri configurada en $path coincida. | ||||
| @@ -185,7 +185,7 @@ class Router { | ||||
|      * Define los routers para el método PUT. | ||||
|      * | ||||
|      * @param string $path | ||||
|      *   URI con pseudovariables. | ||||
|      *   Ruta con pseudovariables. | ||||
|      * | ||||
|      * @param callable $callback | ||||
|      *   Callback que será llamado cuando la uri configurada en $path coincida. | ||||
| @@ -204,7 +204,7 @@ class Router { | ||||
|      * Define los routers para el método DELETE. | ||||
|      * | ||||
|      * @param string $path | ||||
|      *   URI con pseudovariables | ||||
|      *   Ruta con pseudovariables | ||||
|      * | ||||
|      * @param callable $callback | ||||
|      *   Callback que será llamado cuando la uri configurada en $path coincida. | ||||
| @@ -219,10 +219,10 @@ class Router { | ||||
|     } | ||||
|  | ||||
|     /* | ||||
|      * Devuelve el URI path actual | ||||
|      * Devuelve la ruta actual. | ||||
|      */ | ||||
|     public static function URIPath() { | ||||
|         return preg_replace('/'.preg_quote(static::baseURI(), '/').'/', | ||||
|     public static function currentPath() { | ||||
|         return preg_replace('/'.preg_quote(static::basePath(), '/').'/', | ||||
|                             '/', strtok($_SERVER['REQUEST_URI'], '?'), 1); | ||||
|     } | ||||
|  | ||||
| @@ -231,7 +231,7 @@ class Router { | ||||
|      * | ||||
|      * Este método ha de ser llamado luego de que todos los routers hayan sido configurados. | ||||
|      * | ||||
|      * En caso que la URI actual coincida con un router configurado, se comprueba si hay middleware; Si hay | ||||
|      * En caso que la ruta actual coincida con un router configurado, se comprueba si hay middleware; Si hay | ||||
|      * middleware, se enviará el callback y los datos de la petición como un Neuron. Caso contrario, se enviarán | ||||
|      * los datos directamente al callback. | ||||
|      * | ||||
| @@ -243,10 +243,10 @@ class Router { | ||||
|      * | ||||
|      * $req es una instancia de Neuron que tiene los datos de la petición. | ||||
|      * | ||||
|      * Si no la uri no coincide con ninguna de las URIs configuradas, ejecutará el callback $notFoundCallback | ||||
|      * Si no la uri no coincide con ninguna de las rutas configuradas, ejecutará el callback $notFoundCallback | ||||
|      */ | ||||
|     public static function apply() { | ||||
|         $uri =  static::URIPath(); | ||||
|         $uri =  static::currentPath(); | ||||
|         $routers = []; | ||||
|         switch ($_SERVER['REQUEST_METHOD']){ // Según el método selecciona un arreglo de routers configurados | ||||
|             case 'POST': | ||||
| @@ -265,11 +265,11 @@ class Router { | ||||
|  | ||||
|         $args = static::getReq(); | ||||
|  | ||||
|         foreach ($routers as $router) { // revisa todos los routers para ver si coinciden con la URI actual | ||||
|         foreach ($routers as $router) { // revisa todos los routers para ver si coinciden con la ruta actual | ||||
|             if (preg_match_all('/^'.$router['path'].'\/?$/si',$uri, $matches, PREG_PATTERN_ORDER)) { | ||||
|                 unset($matches[0]); | ||||
|  | ||||
|                 // Comprobando pseudo variables en URI | ||||
|                 // Comprobando pseudo variables en la ruta | ||||
|                 if (isset($matches[1])) { | ||||
|                     foreach ($matches as $index => $match) { | ||||
|                         $paramName = $router['paramNames'][$index-1]; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user