ICanBoogie/Routing master
  • Namespace
  • Class

Namespaces

  • ICanBoogie
    • Routing
      • Controller
      • Route
      • RouteDispatcher

Classes

  • Controller
  • FormattedRoute
  • Helpers
  • Pattern
  • Route
  • RouteCollection
  • RouteDefinition
  • RouteDispatcher
  • RouteMaker

Interfaces

  • Exception
  • ToSlug

Exceptions

  • ActionNotDefined
  • ControllerNotDefined
  • PatternNotDefined
  • PatternRequiresValues
  • RouteNotDefined

Functions

  • absolutize_url
  • contextualize
  • decontextualize

Class RouteDispatcher

Dispatch requests among the defined routes.

If a route matching the request is found, the $route and $decontextualized_path properties are added to the ICanBoogie\HTTP\Request instance. $route holds the ICanBoogie\Routing\Route instance, $decontextualized_path holds the decontextualized path. The path is decontextualized using the decontextualize() function.

ICanBoogie\Routing\RouteDispatcher implements ICanBoogie\HTTP\Dispatcher uses ICanBoogie\Accessor\AccessorTrait (not available)
Namespace: ICanBoogie\Routing
Located at RouteDispatcher.php

Methods summary

protected
# get_routes( )
public
# __construct( ICanBoogie\Routing\RouteCollection $routes = null )

Parameters

$routes
public ICanBoogie\HTTP\Response|null
# __invoke( ICanBoogie\HTTP\Request $request )

Parameters

$request

Returns

ICanBoogie\HTTP\Response|null
protected string
# normalize_path( string $path )

Normalizes request path.

Normalizes request path.

Parameters

$path

Returns

string
Decontextualized path with trimmed ending slash.
protected false|ICanBoogie\Routing\Route|null
# resolve_route( ICanBoogie\HTTP\Request $request, string $normalized_path, array & $captured )

Resolves route from request.

Resolves route from request.

Parameters

$request
$normalized_path
$captured

Returns

false|ICanBoogie\Routing\Route|null
protected
# alter_params( ICanBoogie\Routing\Route $route, ICanBoogie\HTTP\Request $request, array $captured )

Alters request parameters.

Alters request parameters.

Parameters

$route
$request
$captured
Parameters captured from the request's path.
protected
# alter_context( ICanBoogie\HTTP\Request\Context $context, ICanBoogie\Routing\Route $route, callable $controller )

Alters request context with route and controller.

Alters request context with route and controller.

Parameters

$context
$route
$controller
protected ICanBoogie\HTTP\Response|null
# dispatch( ICanBoogie\Routing\Route $route, ICanBoogie\HTTP\Request $request )

Dispatches the route.

Dispatches the route.

Parameters

$route
$request

Returns

ICanBoogie\HTTP\Response|null
protected ICanBoogie\HTTP\Response|mixed
# respond( ICanBoogie\Routing\Route $route, ICanBoogie\HTTP\Request $request )

Returns a response for the route and request.

Returns a response for the route and request.

If the controller's result is not null but is not in instance of ICanBoogie\HTTP\Response, its result is wrapped in a response instance with the status code 200 and the Content-Type "text/html; charset=utf-8".

Parameters

$route
$request

Returns

ICanBoogie\HTTP\Response|mixed
public ICanBoogie\HTTP\Response
# rescue( ICanBoogie\Routing\Exception $exception, ICanBoogie\HTTP\Request $request )

Fires \ICanBoogie\Routing\RouteDispatcher\RescueEvent and returns the response provided by third parties. If no response was provided, the exception (or the exception provided by third parties) is re-thrown.

Fires \ICanBoogie\Routing\RouteDispatcher\RescueEvent and returns the response provided by third parties. If no response was provided, the exception (or the exception provided by third parties) is re-thrown.

Parameters

$exception
The exception to rescue.
$request
The request being dispatched.

Returns

ICanBoogie\HTTP\Response

Throws

Exception
if the exception cannot be rescued.

Properties summary

protected ICanBoogie\Routing\RouteCollection $routes

Route collection.

Route collection.

#

Magic properties

public read-only ICanBoogie\Routing\RouteCollection $routes
ICanBoogie/Routing master API documentation generated by ApiGen