PHP Classes

File: README-ES.md

Recommend this page to a friend!
  Classes of Josantonius   PHP Router   README-ES.md   Download  
File: README-ES.md
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP Router
Manage routes and dispatch requests to classes
Author: By
Last change: Updated to 1.0.9 version
Updated to 1.0.9 version
Updated to 1.0.9 version
Date: 5 years ago
Size: 9,595 bytes
 

Contents

Class file image Download

PHP Router library

Latest Stable Version Latest Unstable Version License Codacy Badge Total Downloads Travis PSR2 PSR4 CodeCov

English version

Biblioteca para manejo de rutas.

Requisitos

Esta clase es soportada por versiones de PHP 5.6 o superiores y es compatible con versiones de HHVM 3.0 o superiores.

Instalación

La mejor forma de instalar esta extensión es a través de Composer.

Para instalar PHP Router library, simplemente escribe:

$ composer require Josantonius/Router

El comando anterior sólo instalará los archivos necesarios, si prefieres descargar todo el código fuente puedes utilizar:

$ composer require Josantonius/Router --prefer-source

También puedes clonar el repositorio completo con Git:

$ git clone https://github.com/Josantonius/PHP-Router.git

O instalarlo manualmente:

Descargar Router.php y Url.php:

$ wget https://raw.githubusercontent.com/Josantonius/PHP-Router/master/src/Router.php

$ wget https://raw.githubusercontent.com/Josantonius/PHP-Url/master/src/Url.php

Métodos disponibles

Métodos disponibles en esta biblioteca:

- Definir el nombre del método que se usará para aplicar el patrón singleton:

Router::setSingletonName($method);

| Atributo | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | | $method | Nombre del método singleton. | string | Sí | |

# Return (boolean)

- Añadir ruta/s:

Router::add($routes);

| Atributo | Clave | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | --- | | $routes | | Ruta/s a agregar. | array | Sí | | | | 0 | Ruta. | string | Sí | | | | 1 | Método 'class@method'. | string | Sí | |

# Return (boolean)

- Obtener método a llamar desde URI:

Router::getMethod($route);

| Atributo | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | | $route | Ruta. | string | Sí | |

# Return (string|null) ? ruta o null

- Definir método de llamada si no se encuentra la ruta:

Router::error($callback);

| Atributo | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | | $callback | Callback. | callable | Sí | |

# Return (boolean true)

- Establecer si se continúa procesando después de encontrar coincidencia:

También se puede especificar el número de rutas totales a procesar.

Router::keepLooking($value);

| Atributo | Descripción | Tipo | Requerido | Predeterminado | --- | --- | --- | --- | --- | | $value | Valor. | boolean|int | Sí | true |

# Return (boolean true)

- Ejecutar llamada de retorno para la ruta:

Router::dispatch();

# Return (respuesta de la llamada|false)

Cómo empezar

Para utilizar esta biblioteca con Composer:

require __DIR__ . '/vendor/autoload.php';

use Josantonius\Router\Router;

Si la instalaste manualmente, utiliza:

require_once __DIR__ . '/Router.php';
require_once __DIR__ . '/Url.php';

use Josantonius\Router\Router;

Uso

Ejemplo de uso para esta biblioteca:

- Agregar ruta:

Router::add([
    'services' => 'Josantonius\Router\Example@services'
]);

- Agregar rutas:

$routes = [
    'services' => 'Josantonius\Router\Example@services',
    'home'     => 'Josantonius\Router\Example@home',
];

Router::add($routes);

- Ejecutar ruta simulando 'services':

Router::dispatch(); // Response from services method

- Añadir ruta con expresiones regulares (:all):

Router::add([
    'blog/:all' => 'Josantonius\Router\Example@blog'
]);

- Ejecutar ruta simulando 'language/PHP/':

Router::dispatch(); // Response from services method

- Añadir ruta con expresiones regulares (:any) y parámetros:

Router::add([
    'blog/:any/:any/' => 'Josantonius\Router\Example@blog',
]);

- Ejecutar ruta simulando 'blog/games/Minecraft/':

Router::dispatch(); // Response from blog method: games | Minecraft

- Añadir ruta con expresiones regulares (:num) y parámetros:

Router::add([
    blog/:any/:num/' => 'Josantonius\Router\Example@blog',
]);

- Ejecutar ruta simulando 'blog/development/1/':

Router::dispatch(); // Response from blog method: development | 1

- Añadir ruta con expresiones regulares (:hex) y parámetros:

Router::add([
    'blog/:any/:hex/' => 'Josantonius\Router\Example@blog',
]);

- Ejecutar ruta simulando 'blog/color/e0a060/':

Router::dispatch(); // Response from blog method: color | e0a060

- Añadir ruta con expresiones regulares (:uuidV4) y parámetros:

Router::add([
    'blog/:any/:uuidV4/' => 'Josantonius\Router\Example@blog',
]);

- Ejecutar ruta simulando 'blog/uuid/11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000/':

Router::dispatch(); // Response from blog method: uuid | 11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000

- Definir el nombre del método para usar el patrón singleton:

Router::setSingletonName('newSingleton');

- Obtener método desde ruta:

Router::getMethod('services'); // Josantonius\Router\Example@services

- Defines callback if route is not found:

Router::error('Josantonius\Router\Example@error');

- Ejecutar ruta incorrecta con método de error personalizado:

Router::dispatch('unknown'); // Response from error method

- Continuar procesando después de encontrar coincidencia:

Router::keepLooking();

- Continuar procesando hasta encontrar 3 coincidencias:

Router::keepLooking(3);

- No seguir procesando después de encontrar coincidencia:

Router::keepLooking(false);

Tests

Para ejecutar las pruebas necesitarás Composer y seguir los siguientes pasos:

$ git clone https://github.com/Josantonius/PHP-Router.git

$ cd PHP-Router

$ composer install

Ejecutar pruebas unitarias con PHPUnit:

$ composer phpunit

Ejecutar pruebas de estándares de código PSR2 con PHPCS:

$ composer phpcs

Ejecutar pruebas con PHP Mess Detector para detectar inconsistencias en el estilo de codificación:

$ composer phpmd

Ejecutar todas las pruebas anteriores:

$ composer tests

? Tareas pendientes

  • [ ] Añadir nueva funcionalidad.
  • [ ] Mejorar pruebas.
  • [ ] Mejorar documentación.
  • [ ] Refactorizar código para las reglas de estilo de código deshabilitadas. Ver phpmd.xml y .php_cs.dist.

Contribuir

Si deseas colaborar, puedes echar un vistazo a la lista de issues o tareas pendientes.

Pull requests

  • Fork and clone.
  • Ejecuta el comando `composer install` para instalar dependencias. Esto también instalará las dependencias de desarrollo.
  • Ejecuta el comando `composer fix` para estandarizar el código.
  • Ejecuta las pruebas.
  • Crea una nueva rama (branch), commit, push y envíame un pull request.

Repositorio

La estructura de archivos de este repositorio se creó con PHP-Skeleton.

Licencia

Este proyecto está licenciado bajo licencia MIT. Consulta el archivo LICENSE para más información.

Copyright

2016 - 2018 Josantonius, josantonius.com

Si te ha resultado útil, házmelo saber :wink:

Puedes contactarme en Twitter o a través de mi correo electrónico.