strident/router

Routing component designed for ease of use and speed. Built for Trident.

2.0.1 2015-02-22 17:38 UTC

This package is not auto-updated.

Last update: 2024-03-16 14:30:29 UTC


README

#Router Build Status Coverage Code Climate

Routing component designed for ease of use and speed. Built for Trident.

##Installation

Installation is available via Composer. Add the package to your composer.json:

$ composer require strident/router ~2.0

##Usage

The Strident Router package is flexible and allows you to swap out components to extend it easier. To create a Router, do the following:

use Strident\Router\RouteFactory;
use Strident\Router\RouteMatcher;
use Strident\Router\Router;

$factory = new RouteFactory();
$matcher = new RouteMatcher();
$router  = new Router($factory, $matcher);

From there, you can define routes like so:

$router->route("route_name", "/route/path/{parameter}/{placeholders}")
    ->target("GET", "FooController::getAction")
    ->target("POST", "FooController::postAction")
;

The route() method of the Router returns the instance of a the created Route. The Route can then define it's targets for specific HTTP methods by using the target() method.

To dispatch the current request in the Router, use the dispatch() method of the Router.

$matched = $router->dispatch("GET", "/route/path/1/2");

The return value of dispatch() is an array containing information about the matched route. This includes the name of the route, the request method, the path, and the parameters (by name, and index).