\Piko\Router

Router class.

Properties summary

Name Description
public $baseUri Base uri The base uri is the base part of the requ…
public $host Http host
public $protocol Http protocol used (http/https)
protected $cacheHandlers Internal cache for routes handlers
protected $fullyDynamicRoutes Name-value pair route to handler correspondance. T…
protected $radix The radix trie storage utility
protected $routes Name-value pair route to handler correspondance. E…
protected $staticRoutes Name-value pair route to handler correspondance. T…

Inherited Properties

Name Description
protected $eventDispatcher  
protected $listenerProvider  

Methods summary

Name Description
public __construct Constructor
public addRoute Register a route path and its corresponding handle…
public getUrl Convert an handler to its corresponding route url …
public resolve Parse the route path and return a match instance.
protected findFullyDynamicRoute Search for a fully parameterized route against the…
protected gethandlerRoutes Retrieve all routes attached to the handler

Inherited Methods

Name Description
public on  
public trigger Trigger an event that may be listen by event liste…

Properties

public $baseUri : string

Base uri The base uri is the base part of the request uri which shouldn’t be parsed. Example for the uri /home/blog/page : if the $baseUri is /home, the router will parse /blog/page

public $host : string

Http host

public $protocol : string

Http protocol used (http/https)

protected $cacheHandlers : array[]

Internal cache for routes handlers

protected $fullyDynamicRoutes : string[]

Name-value pair route to handler correspondance. This contains only routes composed with params. Ex: '/:controller/:action' => ':controller/:action'

protected $radix : \Piko\Router\RadixTrie

The radix trie storage utility

protected $routes : string[]

Name-value pair route to handler correspondance. Each key corresponds to a route. Each value corresponds to a route handler. Routes and handlers can contain parameters. Ex: '/user/:id' => 'usercontroller/viewAction'

protected $staticRoutes : string[]

Name-value pair route to handler correspondance. This contains only routes with non params.


Methods

public __construct(): mixed

public  __construct(array<string,mixed>  $config = []): mixed

Constructor Example:

$router = new Router([
     'baseUri' => '/subdir',
     'routes' => [
         '/' => 'home',
         '/user/:id' => 'userView',
         '/:module/:controller/:action' => ':module/:controller/:action',
     ]
 ]);

Parameters

$config (default: []): A configuration array to set public properties and routes

Return:

mixed


public addRoute(): void

public  addRoute(string  $path, mixed  $handler): void

Register a route path and its corresponding handler

Parameters

$path :

$handler :


public getUrl(): string

public  getUrl(string  $handler, string[]  $params = [], bool  $absolute = false): string

Convert an handler to its corresponding route url (reverse routing).

Parameters

$handler :

$params (default: []): Optional query parameters.

$absolute (default: false): Optional to get an absolute url.

Return:

string The corresponding url.


public resolve(): \Piko\Router\Matcher

public  resolve(string  $path): \Piko\Router\Matcher

Parse the route path and return a match instance.

Parameters

$path : The route path

Return:

\Piko\Router\Matcher The route match.


protected findFullyDynamicRoute(): \Piko\Router\Matcher

protected  findFullyDynamicRoute(string  $path): \Piko\Router\Matcher

Search for a fully parameterized route against the route path. Ex: /:controller/:action

Parameters

$path : The route path

Return:

\Piko\Router\Matcher The route match


protected gethandlerRoutes(): string[]

protected  gethandlerRoutes(string  $handler): string[]

Retrieve all routes attached to the handler

Parameters

$handler :

Return:

string[]