2017 © Pedro Peláez
 

library router

Library for handling routes.

image

josantonius/router

Library for handling routes.

  • PHP
  • 3 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 13 Versions
  • 3 % Grown

The README.md

PHP Router library

Latest Stable Version License, (*1)

Versión en español, (*2)

Library for handling routes., (*3)

This documentation refers to version 1.1.1. Changes made in version 1.1.2 (which archived the repository) were not documented or tested., (*4)



Requirements

This library is supported by PHP versions 5.6 or higher and is compatible with HHVM versions 3.0 or higher., (*5)

Installation

The preferred way to install this extension is through Composer., (*6)

To install PHP Router library, simply:, (*7)

composer require Josantonius/Router

The previous command will only install the necessary files, if you prefer to download the entire source code you can use:, (*8)

composer require Josantonius/Router --prefer-source

You can also clone the complete repository with Git:, (*9)

$ git clone https://github.com/Josantonius/PHP-Router.git, (*10)

Or install it manually:, (*11)

Download Router.php and Url.php:, (*12)

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

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

Available Methods

Available methods in this library:, (*13)

- Set method name for use singleton pattern

Router::setSingletonName($method);
Attribute Description Type Required Default
$method Singleton method name. string Yes

# Return (boolean), (*14)

- Add route/s

Router::add($routes);
Attribute Key Description Type Required Default
$routes Route/s to add. array Yes
0 Route. string Yes
1 Method 'class@method'. string Yes

# Return (boolean), (*15)

- Get method to call from URI

Router::getMethod($route);
Attribute Description Type Required Default
$route Route. string Yes

# Return (string|null) → route or null, (*16)

- Defines callback if route is not found

Router::error($callback);
Attribute Description Type Required Default
$callback Callback. callable Yes

# Return (boolean true), (*17)

- Continue processing after match or stop it

Also can specify the number of total routes to process., (*18)

Router::keepLooking($value);
Attribute Description Type Required Default
$value Value. boolean int Yes | true

# Return (boolean true), (*19)

- Runs the callback for the given request

Router::dispatch();

# Return (call response|false), (*20)

Quick Start

To use this library with Composer:, (*21)

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

use Josantonius\Router\Router;

Or If you installed it manually, use it:, (*22)

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

use Josantonius\Router\Router;

Usage

Example of use for this library:, (*23)

- Add route

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

- Add routes

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

Router::add($routes);

- Execute route simulating 'services'

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

- Add route with regular expressions (:all)

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

- Execute route simulating 'language/PHP/'

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

- Add route with regular expressions (:any) and params

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

- Execute route simulating 'blog/games/Minecraft/'

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

- Add route with regular expressions (:num) and params

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

- Execute route simulating 'blog/development/1/'

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

- Add route with regular expressions (:hex) and params

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

- Execute route simulating 'blog/color/e0a060/'

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

- Add route with regular expressions (:uuidV4) and params

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

- Execute route simulating 'blog/uuid/11bf5b37-e0b8-42e0-8dcf-dc8c4aefc000/'

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

- Set method name for use singleton pattern

Router::setSingletonName('newSingleton');

- Get method

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

- Defines callback if route is not found

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

- Execute wrong routes with custom error callback

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

- Continue processing after match

Router::keepLooking();

- Keep Lookin up to three coincidences

Router::keepLooking(3);

- Stopping processing after match

Router::keepLooking(false);

Tests

To run tests you just need composer and to execute the following:, (*24)

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

cd PHP-Router

composer install

Run unit tests with PHPUnit:, (*25)

composer phpunit

Run PSR2 code standard tests with PHPCS:, (*26)

composer phpcs

Run PHP Mess Detector tests to detect inconsistencies in code style:, (*27)

composer phpmd

Run all previous tests:, (*28)

composer tests

If this project helps you to reduce your development time, you can sponsor me to support my open source work :blush:, (*29)

License

This repository is licensed under the MIT License., (*30)

Copyright © 2016-2022, Josantonius, (*31)

The Versions

22/04 2018

dev-master

9999999-dev

Library for handling routes.

  Sources   Download

MIT

The Requires

 

The Development Requires

php router routes

22/04 2018

1.1.1

1.1.1.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

The Development Requires

php router routes

17/04 2018

1.1.0

1.1.0.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

The Development Requires

php router routes

11/03 2018

1.0.9

1.0.9.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

The Development Requires

php router routes

09/11 2017

1.0.8

1.0.8.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

The Development Requires

php router routes

02/11 2017

1.0.7

1.0.7.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

The Development Requires

php router routes

17/09 2017

1.0.6

1.0.6.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

The Development Requires

php router routes

18/07 2017

1.0.5

1.0.5.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

php router routes

15/05 2017

1.0.4

1.0.4.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

php router routes

10/05 2017

1.0.3

1.0.3.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

php router routes

18/03 2017

1.0.2

1.0.2.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

php router routes

17/03 2017

1.0.1

1.0.1.0

Library for handling routes.

  Sources   Download

MIT

The Requires

 

php router routes

16/03 2017

1.0.0

1.0.0.0

Library for handling routes.

  Sources   Download

MIT

The Requires

  • php >=5.6

 

php router routes