Routes

Introduction

A Route is an object that maps a path to a controller. The router will attempt to match the path in the address bar to a previously defined route. If the router finds a match, it passes the logical controller to the Kernel where the appropriate class is resolved and loaded, and the controller method executed. If the controller returns a component, the application will insert it into the layout.

Routes are also assigned a name. A route's name may be used to generate a path instead of hard-coding; this allows us to change an existing URL without breaking any links in the application.

Class Synopsis

class Route
{
    constructor(name, pattern, defaults = {}, requirements = {}, metadata = {});

    getName() : string;
    getPattern() : string;
    getDefaults() : Object;
    getRequirements() : Object;
    getMeta() : Object;

    getCollection() : RouteCollection|null;
    setCollection(RouteCollection);
}

Example: Define a named route for URL #/sandbox/index

Advanced Routing

Example

Parameters

WIP

Defaults

Each route accepts a defaults object as an argument to allow default parameter values to be specified. When generating a path, any missing parameters will fallback to these defaults.

The defaults object may also include the special _controller property that contains the logical controller string that is used to link the route to a specific part of the system.

Requirements

Each route must also include a requirements object with a regular expression for each of the route's parameters. Only parameter values that match these requirements will match the route.

Important: Default values must also match these requirements.

Metadata

WIP

Last updated