Router

class Router implements Registrar (View source)

Traits

Macroable

Properties

static protected array $macros The registered string macros. from Macroable
protected Dispatcher $events The event dispatcher instance.
protected Container $container The IoC container instance.
protected RouteCollection $routes The route collection instance.
protected Route $current The currently dispatched route instance.
protected Request $currentRequest The request currently being dispatched.
protected array $middleware All of the short-hand keys for middlewares.
protected array $middlewareGroups All of the middleware groups.
protected array $binders The registered route value binders.
protected array $patterns The globally available parameter patterns.
protected array $groupStack The route group attribute stack.
static array $verbs All of the verbs supported by the router.

Methods

static void macro(string $name, callable $macro)

Register a custom macro.

from Macroable
static bool hasMacro(string $name)

Checks if macro is registered.

from Macroable
static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

from Macroable
mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

from Macroable
void __construct(Dispatcher $events, Container $container = null)

Create a new Router instance.

void get(string $uri, Closure|array|string $action = null)

Register a new GET route with the router.

void post(string $uri, Closure|array|string $action = null)

Register a new POST route with the router.

void put(string $uri, Closure|array|string $action = null)

Register a new PUT route with the router.

void patch(string $uri, Closure|array|string $action = null)

Register a new PATCH route with the router.

void delete(string $uri, Closure|array|string $action = null)

Register a new DELETE route with the router.

void options(string $uri, Closure|array|string $action = null)

Register a new OPTIONS route with the router.

Route any(string $uri, Closure|array|string|null $action = null)

Register a new route responding to all verbs.

void match(array|string $methods, string $uri, Closure|array|string $action = null)

Register a new route with the given verbs.

void controllers(array $controllers) deprecated

Register an array of controllers with wildcard routing.

void controller(string $uri, string $controller, array $names = []) deprecated

Route a controller to a URI with wildcard routing.

void registerInspected(array $route, string $controller, string $method, array $names) deprecated

Register an inspected controller route.

void addFallthroughRoute(string $controller, string $uri) deprecated

Add a fallthrough route for a controller.

void singularResourceParameters()

Set the unmapped global resource parameters to singular.

void resourceParameters(array $parameters = [])

Set the global resource parameter mapping.

void resources(array $resources)

Register an array of resource controllers.

void resource(string $name, string $controller, array $options = [])

Route a resource to a controller.

void auth()

Register the typical authentication routes for an application.

void group(array $attributes, Closure $callback)

Create a route group with shared attributes.

void updateGroupStack(array $attributes)

Update the group stack with the given attributes.

array mergeWithLastGroup(array $new)

Merge the given array with the last group stack.

static array mergeGroup(array $new, array $old)

Merge the given group attributes.

static string|null formatUsesPrefix(array $new, array $old)

Format the uses prefix for the new group attributes.

static string|null formatGroupPrefix(array $new, array $old)

Format the prefix for the new group attributes.

string getLastGroupPrefix()

Get the prefix from the last group on the stack.

Route addRoute(array|string $methods, string $uri, Closure|array|string|null $action)

Add a route to the underlying route collection.

Route createRoute(array|string $methods, string $uri, mixed $action)

Create a new route instance.

Route newRoute(array|string $methods, string $uri, mixed $action)

Create a new Route object.

string prefix(string $uri)

Prefix the given URI with the last prefix.

Route addWhereClausesToRoute(Route $route)

Add the necessary where clauses to the route based on its initial registration.

void mergeGroupAttributesIntoRoute(Route $route)

Merge the group stack with the controller action.

bool actionReferencesController(array $action)

Determine if the action is routing to a controller.

array convertToControllerAction(array|string $action)

Add a controller based route action to the action array.

string prependGroupUses(string $uses)

Prepend the last group uses onto the use clause.

Response dispatch(Request $request)

Dispatch the request to the application.

mixed dispatchToRoute(Request $request)

Dispatch the request to a route and return the response.

mixed runRouteWithinStack(Route $route, Request $request)

Run the given route within a Stack "onion" instance.

array gatherRouteMiddlewares(Route $route)

Gather the middleware for the given route.

string|array resolveMiddlewareClassName(string $name)

Resolve the middleware name to a class name(s) preserving passed parameters.

array parseMiddlewareGroup(string $name)

Parse the middleware group and format it for usage.

Route findRoute(Request $request)

Find the route matching a given request.

Route substituteBindings(Route $route)

Substitute the route bindings onto the route.

void substituteImplicitBindings(Route $route)

Substitute the implicit Eloquent model bindings for the route.

mixed performBinding(string $key, string $value, Route $route)

Call the binding callback for the given key.

void matched(string|callable $callback)

Register a route matched event listener.

array getMiddleware()

Get all of the defined middleware short-hand names.

$this middleware(string $name, string $class)

Register a short-hand name for a middleware.

$this middlewareGroup(string $name, array $middleware)

Register a group of middleware.

$this prependMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the beginning of a middleware group.

$this pushMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the end of a middleware group.

void model(string $key, string $class, Closure $callback = null)

Register a model binder for a wildcard.

void bind(string $key, string|callable $binder)

Add a new route parameter binder.

Closure createClassBinding(string $binding)

Create a class based binding using the IoC container.

void pattern(string $key, string $pattern)

Set a global where pattern on all routes.

void patterns(array $patterns)

Set a group of global where patterns on all routes.

Response prepareResponse(Request $request, mixed $response)

Create a response instance from the given value.

bool hasGroupStack()

Determine if the router currently has a group stack.

array getGroupStack()

Get the current group stack for the router.

mixed input(string $key, string $default = null)

Get a route parameter for the current route.

Route getCurrentRoute()

Get the currently dispatched route instance.

Route current()

Get the currently dispatched route instance.

bool has(string $name)

Check if a route with the given name exists.

string|null currentRouteName()

Get the current route name.

bool is()

Alias for the "currentRouteName" method.

bool currentRouteNamed(string $name)

Determine if the current route matches a given name.

string|null currentRouteAction()

Get the current route action.

bool uses()

Alias for the "currentRouteUses" method.

bool currentRouteUses(string $action)

Determine if the current route action matches a given action.

Request getCurrentRequest()

Get the request currently being dispatched.

RouteCollection getRoutes()

Get the underlying route collection.

void setRoutes(RouteCollection $routes)

Set the route collection instance.

array getPatterns()

Get the global "where" patterns.

Details

static void macro(string $name, callable $macro)

Register a custom macro.

Parameters

string $name
callable $macro

Return Value

void

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

void __construct(Dispatcher $events, Container $container = null)

Create a new Router instance.

Parameters

Dispatcher $events
Container $container

Return Value

void

void get(string $uri, Closure|array|string $action = null)

Register a new GET route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

void

void post(string $uri, Closure|array|string $action = null)

Register a new POST route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

void

void put(string $uri, Closure|array|string $action = null)

Register a new PUT route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

void

void patch(string $uri, Closure|array|string $action = null)

Register a new PATCH route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

void

void delete(string $uri, Closure|array|string $action = null)

Register a new DELETE route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

void

void options(string $uri, Closure|array|string $action = null)

Register a new OPTIONS route with the router.

Parameters

string $uri
Closure|array|string $action

Return Value

void

Route any(string $uri, Closure|array|string|null $action = null)

Register a new route responding to all verbs.

Parameters

string $uri
Closure|array|string|null $action

Return Value

Route

void match(array|string $methods, string $uri, Closure|array|string $action = null)

Register a new route with the given verbs.

Parameters

array|string $methods
string $uri
Closure|array|string $action

Return Value

void

void controllers(array $controllers) deprecated

deprecated

since version 5.2.

Register an array of controllers with wildcard routing.

Parameters

array $controllers

Return Value

void

void controller(string $uri, string $controller, array $names = []) deprecated

deprecated

since version 5.2.

Route a controller to a URI with wildcard routing.

Parameters

string $uri
string $controller
array $names

Return Value

void

protected void registerInspected(array $route, string $controller, string $method, array $names) deprecated

deprecated

since version 5.2.

Register an inspected controller route.

Parameters

array $route
string $controller
string $method
array $names

Return Value

void

protected void addFallthroughRoute(string $controller, string $uri) deprecated

deprecated

since version 5.2.

Add a fallthrough route for a controller.

Parameters

string $controller
string $uri

Return Value

void

void singularResourceParameters()

Set the unmapped global resource parameters to singular.

Return Value

void

void resourceParameters(array $parameters = [])

Set the global resource parameter mapping.

Parameters

array $parameters

Return Value

void

void resources(array $resources)

Register an array of resource controllers.

Parameters

array $resources

Return Value

void

void resource(string $name, string $controller, array $options = [])

Route a resource to a controller.

Parameters

string $name
string $controller
array $options

Return Value

void

void auth()

Register the typical authentication routes for an application.

Return Value

void

void group(array $attributes, Closure $callback)

Create a route group with shared attributes.

Parameters

array $attributes
Closure $callback

Return Value

void

protected void updateGroupStack(array $attributes)

Update the group stack with the given attributes.

Parameters

array $attributes

Return Value

void

array mergeWithLastGroup(array $new)

Merge the given array with the last group stack.

Parameters

array $new

Return Value

array

static array mergeGroup(array $new, array $old)

Merge the given group attributes.

Parameters

array $new
array $old

Return Value

array

static protected string|null formatUsesPrefix(array $new, array $old)

Format the uses prefix for the new group attributes.

Parameters

array $new
array $old

Return Value

string|null

static protected string|null formatGroupPrefix(array $new, array $old)

Format the prefix for the new group attributes.

Parameters

array $new
array $old

Return Value

string|null

string getLastGroupPrefix()

Get the prefix from the last group on the stack.

Return Value

string

protected Route addRoute(array|string $methods, string $uri, Closure|array|string|null $action)

Add a route to the underlying route collection.

Parameters

array|string $methods
string $uri
Closure|array|string|null $action

Return Value

Route

protected Route createRoute(array|string $methods, string $uri, mixed $action)

Create a new route instance.

Parameters

array|string $methods
string $uri
mixed $action

Return Value

Route

protected Route newRoute(array|string $methods, string $uri, mixed $action)

Create a new Route object.

Parameters

array|string $methods
string $uri
mixed $action

Return Value

Route

protected string prefix(string $uri)

Prefix the given URI with the last prefix.

Parameters

string $uri

Return Value

string

protected Route addWhereClausesToRoute(Route $route)

Add the necessary where clauses to the route based on its initial registration.

Parameters

Route $route

Return Value

Route

protected void mergeGroupAttributesIntoRoute(Route $route)

Merge the group stack with the controller action.

Parameters

Route $route

Return Value

void

protected bool actionReferencesController(array $action)

Determine if the action is routing to a controller.

Parameters

array $action

Return Value

bool

protected array convertToControllerAction(array|string $action)

Add a controller based route action to the action array.

Parameters

array|string $action

Return Value

array

protected string prependGroupUses(string $uses)

Prepend the last group uses onto the use clause.

Parameters

string $uses

Return Value

string

Response dispatch(Request $request)

Dispatch the request to the application.

Parameters

Request $request

Return Value

Response

mixed dispatchToRoute(Request $request)

Dispatch the request to a route and return the response.

Parameters

Request $request

Return Value

mixed

protected mixed runRouteWithinStack(Route $route, Request $request)

Run the given route within a Stack "onion" instance.

Parameters

Route $route
Request $request

Return Value

mixed

array gatherRouteMiddlewares(Route $route)

Gather the middleware for the given route.

Parameters

Route $route

Return Value

array

string|array resolveMiddlewareClassName(string $name)

Resolve the middleware name to a class name(s) preserving passed parameters.

Parameters

string $name

Return Value

string|array

protected array parseMiddlewareGroup(string $name)

Parse the middleware group and format it for usage.

Parameters

string $name

Return Value

array

protected Route findRoute(Request $request)

Find the route matching a given request.

Parameters

Request $request

Return Value

Route

protected Route substituteBindings(Route $route)

Substitute the route bindings onto the route.

Parameters

Route $route

Return Value

Route

protected void substituteImplicitBindings(Route $route)

Substitute the implicit Eloquent model bindings for the route.

Parameters

Route $route

Return Value

void

protected mixed performBinding(string $key, string $value, Route $route)

Call the binding callback for the given key.

Parameters

string $key
string $value
Route $route

Return Value

mixed

void matched(string|callable $callback)

Register a route matched event listener.

Parameters

string|callable $callback

Return Value

void

array getMiddleware()

Get all of the defined middleware short-hand names.

Return Value

array

$this middleware(string $name, string $class)

Register a short-hand name for a middleware.

Parameters

string $name
string $class

Return Value

$this

$this middlewareGroup(string $name, array $middleware)

Register a group of middleware.

Parameters

string $name
array $middleware

Return Value

$this

$this prependMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the beginning of a middleware group.

If the middleware is already in the group, it will not be added again.

Parameters

string $group
string $middleware

Return Value

$this

$this pushMiddlewareToGroup(string $group, string $middleware)

Add a middleware to the end of a middleware group.

If the middleware is already in the group, it will not be added again.

Parameters

string $group
string $middleware

Return Value

$this

void model(string $key, string $class, Closure $callback = null)

Register a model binder for a wildcard.

Parameters

string $key
string $class
Closure $callback

Return Value

void

Exceptions

NotFoundHttpException

void bind(string $key, string|callable $binder)

Add a new route parameter binder.

Parameters

string $key
string|callable $binder

Return Value

void

Closure createClassBinding(string $binding)

Create a class based binding using the IoC container.

Parameters

string $binding

Return Value

Closure

void pattern(string $key, string $pattern)

Set a global where pattern on all routes.

Parameters

string $key
string $pattern

Return Value

void

void patterns(array $patterns)

Set a group of global where patterns on all routes.

Parameters

array $patterns

Return Value

void

Response prepareResponse(Request $request, mixed $response)

Create a response instance from the given value.

Parameters

Request $request
mixed $response

Return Value

Response

bool hasGroupStack()

Determine if the router currently has a group stack.

Return Value

bool

array getGroupStack()

Get the current group stack for the router.

Return Value

array

mixed input(string $key, string $default = null)

Get a route parameter for the current route.

Parameters

string $key
string $default

Return Value

mixed

Route getCurrentRoute()

Get the currently dispatched route instance.

Return Value

Route

Route current()

Get the currently dispatched route instance.

Return Value

Route

bool has(string $name)

Check if a route with the given name exists.

Parameters

string $name

Return Value

bool

string|null currentRouteName()

Get the current route name.

Return Value

string|null

bool is()

Alias for the "currentRouteName" method.

Return Value

bool

bool currentRouteNamed(string $name)

Determine if the current route matches a given name.

Parameters

string $name

Return Value

bool

string|null currentRouteAction()

Get the current route action.

Return Value

string|null

bool uses()

Alias for the "currentRouteUses" method.

Return Value

bool

bool currentRouteUses(string $action)

Determine if the current route action matches a given action.

Parameters

string $action

Return Value

bool

Request getCurrentRequest()

Get the request currently being dispatched.

Return Value

Request

RouteCollection getRoutes()

Get the underlying route collection.

Return Value

RouteCollection

void setRoutes(RouteCollection $routes)

Set the route collection instance.

Parameters

RouteCollection $routes

Return Value

void

array getPatterns()

Get the global "where" patterns.

Return Value

array

© Taylor Otwell
Licensed under the MIT License.
Laravel is a trademark of Taylor Otwell.
https://laravel.com/api/5.2/Illuminate/Routing/Router.html