PHP Class Illuminate\Routing\Router

Inheritance: implements Illuminate\Contracts\Routing\Registrar, use trait Illuminate\Support\Traits\Macroable
Show file Open project: illuminate/routing Class Usage Examples

Public Properties

Property Type Description
$middlewarePriority array Forces the listed middleware to always be in the given order.
$verbs array All of the verbs supported by the router.

Protected Properties

Property Type Description
$binders array The registered route value binders.
$container Illuminate\Container\Container The IoC container instance.
$current Illuminate\Routing\Route The currently dispatched route instance.
$currentRequest Illuminate\Http\Request The request currently being dispatched.
$events Illuminate\Contracts\Events\Dispatcher The event dispatcher instance.
$groupStack array The route group attribute stack.
$middleware array All of the short-hand keys for middlewares.
$middlewareGroups array All of the middleware groups.
$patterns array The globally available parameter patterns.
$routes Illuminate\Routing\RouteCollection The route collection instance.

Public Methods

Method Description
__construct ( Illuminate\Contracts\Events\Dispatcher $events, Illuminate\Container\Container $container = null ) : void Create a new Router instance.
any ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new route responding to all verbs.
auth ( ) : void Register the typical authentication routes for an application.
bind ( string $key, string | callable $binder ) : void Add a new route parameter binder.
createClassBinding ( string $binding ) : Closure Create a class based binding using the IoC container.
current ( ) : Illuminate\Routing\Route Get the currently dispatched route instance.
currentRouteAction ( ) : string | null Get the current route action.
currentRouteName ( ) : string | null Get the current route name.
currentRouteNamed ( string $name ) : boolean Determine if the current route matches a given name.
currentRouteUses ( string $action ) : boolean Determine if the current route action matches a given action.
delete ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new DELETE route with the router.
dispatch ( Illuminate\Http\Request $request ) : Illuminate\Http\Response Dispatch the request to the application.
dispatchToRoute ( Illuminate\Http\Request $request ) : mixed Dispatch the request to a route and return the response.
gatherRouteMiddleware ( Illuminate\Routing\Route $route ) : array Gather the middleware for the given route.
get ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new GET route with the router.
getBindingCallback ( string $key ) : Closure | null Get the binding callback for a given binding.
getCurrentRequest ( ) : Illuminate\Http\Request Get the request currently being dispatched.
getCurrentRoute ( ) : Illuminate\Routing\Route Get the currently dispatched route instance.
getGroupStack ( ) : array Get the current group stack for the router.
getLastGroupPrefix ( ) : string Get the prefix from the last group on the stack.
getMiddleware ( ) : array Get all of the defined middleware short-hand names.
getPatterns ( ) : array Get the global "where" patterns.
getRoutes ( ) : Illuminate\Routing\RouteCollection Get the underlying route collection.
group ( array $attributes, Closure $callback ) : void Create a route group with shared attributes.
has ( string $name ) : boolean Check if a route with the given name exists.
hasGroupStack ( ) : boolean Determine if the router currently has a group stack.
input ( string $key, string $default = null ) : mixed Get a route parameter for the current route.
is ( ) : boolean Alias for the "currentRouteNamed" method.
match ( array | string $methods, string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new route with the given verbs.
matched ( string | callable $callback ) : void Register a route matched event listener.
mergeGroup ( array $new, array $old ) : array Merge the given group attributes.
mergeWithLastGroup ( array $new ) : array Merge the given array with the last group stack.
middleware ( string $name, string $class ) Register a short-hand name for a middleware.
middlewareGroup ( string $name, array $middleware ) Register a group of middleware.
model ( string $key, string $class, Closure $callback = null ) : void Register a model binder for a wildcard.
options ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new OPTIONS route with the router.
patch ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new PATCH route with the router.
pattern ( string $key, string $pattern ) : void Set a global where pattern on all routes.
patterns ( array $patterns ) : void Set a group of global where patterns on all routes.
post ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new POST route with the router.
prepareResponse ( Request $request, mixed $response ) : Illuminate\Http\Response Create a response instance from the given value.
prependMiddlewareToGroup ( string $group, string $middleware ) Add a middleware to the beginning of a middleware group.
pushMiddlewareToGroup ( string $group, string $middleware ) Add a middleware to the end of a middleware group.
put ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route Register a new PUT route with the router.
resolveMiddlewareClassName ( string $name ) : string | array Resolve the middleware name to a class name(s) preserving passed parameters.
resource ( string $name, string $controller, array $options = [] ) : void Route a resource to a controller.
resourceParameters ( array $parameters = [] ) : void Set the global resource parameter mapping.
resources ( array $resources ) : void Register an array of resource controllers.
setRoutes ( Illuminate\Routing\RouteCollection $routes ) : void Set the route collection instance.
singularResourceParameters ( boolean $singular = true ) : void Set the unmapped global resource parameters to singular.
substituteBindings ( Illuminate\Routing\Route $route ) : Illuminate\Routing\Route Substitute the route bindings onto the route.
substituteImplicitBindings ( Illuminate\Routing\Route $route ) : void Substitute the implicit Eloquent model bindings for the route.
uses ( ) : boolean Alias for the "currentRouteUses" method.

Protected Methods

Method Description
actionReferencesController ( array $action ) : boolean Determine if the action is routing to a controller.
addRoute ( array | string $methods, string $uri, Closure | array | string | null $action ) : Illuminate\Routing\Route Add a route to the underlying route collection.
addWhereClausesToRoute ( Illuminate\Routing\Route $route ) : Illuminate\Routing\Route Add the necessary where clauses to the route based on its initial registration.
convertToControllerAction ( array | string $action ) : array Add a controller based route action to the action array.
createRoute ( array | string $methods, string $uri, mixed $action ) : Illuminate\Routing\Route Create a new route instance.
findRoute ( Illuminate\Http\Request $request ) : Illuminate\Routing\Route Find the route matching a given request.
formatGroupPrefix ( array $new, array $old ) : string | null Format the prefix for the new group attributes.
formatUsesPrefix ( array $new, array $old ) : string | null Format the uses prefix for the new group attributes.
mergeGroupAttributesIntoRoute ( Illuminate\Routing\Route $route ) : void Merge the group stack with the controller action.
newRoute ( array | string $methods, string $uri, mixed $action ) : Illuminate\Routing\Route Create a new Route object.
parseMiddlewareGroup ( string $name ) : array Parse the middleware group and format it for usage.
performBinding ( string $key, string $value, Illuminate\Routing\Route $route ) : mixed Call the binding callback for the given key.
prefix ( string $uri ) : string Prefix the given URI with the last prefix.
prependGroupUses ( string $uses ) : string Prepend the last group uses onto the use clause.
runRouteWithinStack ( Illuminate\Routing\Route $route, Illuminate\Http\Request $request ) : mixed Run the given route within a Stack "onion" instance.
sortMiddleware ( Collection $middlewares ) : array Sort the given middleware by priority.
updateGroupStack ( array $attributes ) : void Update the group stack with the given attributes.

Method Details

__construct() public method

Create a new Router instance.
public __construct ( Illuminate\Contracts\Events\Dispatcher $events, Illuminate\Container\Container $container = null ) : void
$events Illuminate\Contracts\Events\Dispatcher
$container Illuminate\Container\Container
return void

actionReferencesController() protected method

Determine if the action is routing to a controller.
protected actionReferencesController ( array $action ) : boolean
$action array
return boolean

addRoute() protected method

Add a route to the underlying route collection.
protected addRoute ( array | string $methods, string $uri, Closure | array | string | null $action ) : Illuminate\Routing\Route
$methods array | string
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

addWhereClausesToRoute() protected method

Add the necessary where clauses to the route based on its initial registration.
protected addWhereClausesToRoute ( Illuminate\Routing\Route $route ) : Illuminate\Routing\Route
$route Illuminate\Routing\Route
return Illuminate\Routing\Route

any() public method

Register a new route responding to all verbs.
public any ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

auth() public method

Register the typical authentication routes for an application.
public auth ( ) : void
return void

bind() public method

Add a new route parameter binder.
public bind ( string $key, string | callable $binder ) : void
$key string
$binder string | callable
return void

convertToControllerAction() protected method

Add a controller based route action to the action array.
protected convertToControllerAction ( array | string $action ) : array
$action array | string
return array

createClassBinding() public method

Create a class based binding using the IoC container.
public createClassBinding ( string $binding ) : Closure
$binding string
return Closure

createRoute() protected method

Create a new route instance.
protected createRoute ( array | string $methods, string $uri, mixed $action ) : Illuminate\Routing\Route
$methods array | string
$uri string
$action mixed
return Illuminate\Routing\Route

current() public method

Get the currently dispatched route instance.
public current ( ) : Illuminate\Routing\Route
return Illuminate\Routing\Route

currentRouteAction() public method

Get the current route action.
public currentRouteAction ( ) : string | null
return string | null

currentRouteName() public method

Get the current route name.
public currentRouteName ( ) : string | null
return string | null

currentRouteNamed() public method

Determine if the current route matches a given name.
public currentRouteNamed ( string $name ) : boolean
$name string
return boolean

currentRouteUses() public method

Determine if the current route action matches a given action.
public currentRouteUses ( string $action ) : boolean
$action string
return boolean

delete() public method

Register a new DELETE route with the router.
public delete ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

dispatch() public method

Dispatch the request to the application.
public dispatch ( Illuminate\Http\Request $request ) : Illuminate\Http\Response
$request Illuminate\Http\Request
return Illuminate\Http\Response

dispatchToRoute() public method

Dispatch the request to a route and return the response.
public dispatchToRoute ( Illuminate\Http\Request $request ) : mixed
$request Illuminate\Http\Request
return mixed

findRoute() protected method

Find the route matching a given request.
protected findRoute ( Illuminate\Http\Request $request ) : Illuminate\Routing\Route
$request Illuminate\Http\Request
return Illuminate\Routing\Route

formatGroupPrefix() protected static method

Format the prefix for the new group attributes.
protected static formatGroupPrefix ( array $new, array $old ) : string | null
$new array
$old array
return string | null

formatUsesPrefix() protected static method

Format the uses prefix for the new group attributes.
protected static formatUsesPrefix ( array $new, array $old ) : string | null
$new array
$old array
return string | null

gatherRouteMiddleware() public method

Gather the middleware for the given route.
public gatherRouteMiddleware ( Illuminate\Routing\Route $route ) : array
$route Illuminate\Routing\Route
return array

get() public method

Register a new GET route with the router.
public get ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

getBindingCallback() public method

Get the binding callback for a given binding.
public getBindingCallback ( string $key ) : Closure | null
$key string
return Closure | null

getCurrentRequest() public method

Get the request currently being dispatched.
public getCurrentRequest ( ) : Illuminate\Http\Request
return Illuminate\Http\Request

getCurrentRoute() public method

Get the currently dispatched route instance.
public getCurrentRoute ( ) : Illuminate\Routing\Route
return Illuminate\Routing\Route

getGroupStack() public method

Get the current group stack for the router.
public getGroupStack ( ) : array
return array

getLastGroupPrefix() public method

Get the prefix from the last group on the stack.
public getLastGroupPrefix ( ) : string
return string

getMiddleware() public method

Get all of the defined middleware short-hand names.
public getMiddleware ( ) : array
return array

getPatterns() public method

Get the global "where" patterns.
public getPatterns ( ) : array
return array

getRoutes() public method

Get the underlying route collection.
public getRoutes ( ) : Illuminate\Routing\RouteCollection
return Illuminate\Routing\RouteCollection

group() public method

Create a route group with shared attributes.
public group ( array $attributes, Closure $callback ) : void
$attributes array
$callback Closure
return void

has() public method

Check if a route with the given name exists.
public has ( string $name ) : boolean
$name string
return boolean

hasGroupStack() public method

Determine if the router currently has a group stack.
public hasGroupStack ( ) : boolean
return boolean

input() public method

Get a route parameter for the current route.
public input ( string $key, string $default = null ) : mixed
$key string
$default string
return mixed

is() public method

Alias for the "currentRouteNamed" method.
public is ( ) : boolean
return boolean

match() public method

Register a new route with the given verbs.
public match ( array | string $methods, string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$methods array | string
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

matched() public method

Register a route matched event listener.
public matched ( string | callable $callback ) : void
$callback string | callable
return void

mergeGroup() public static method

Merge the given group attributes.
public static mergeGroup ( array $new, array $old ) : array
$new array
$old array
return array

mergeGroupAttributesIntoRoute() protected method

Merge the group stack with the controller action.
protected mergeGroupAttributesIntoRoute ( Illuminate\Routing\Route $route ) : void
$route Illuminate\Routing\Route
return void

mergeWithLastGroup() public method

Merge the given array with the last group stack.
public mergeWithLastGroup ( array $new ) : array
$new array
return array

middleware() public method

Register a short-hand name for a middleware.
public middleware ( string $name, string $class )
$name string
$class string

middlewareGroup() public method

Register a group of middleware.
public middlewareGroup ( string $name, array $middleware )
$name string
$middleware array

model() public method

Register a model binder for a wildcard.
public model ( string $key, string $class, Closure $callback = null ) : void
$key string
$class string
$callback Closure
return void

newRoute() protected method

Create a new Route object.
protected newRoute ( array | string $methods, string $uri, mixed $action ) : Illuminate\Routing\Route
$methods array | string
$uri string
$action mixed
return Illuminate\Routing\Route

options() public method

Register a new OPTIONS route with the router.
public options ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

parseMiddlewareGroup() protected method

Parse the middleware group and format it for usage.
protected parseMiddlewareGroup ( string $name ) : array
$name string
return array

patch() public method

Register a new PATCH route with the router.
public patch ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

pattern() public method

Set a global where pattern on all routes.
public pattern ( string $key, string $pattern ) : void
$key string
$pattern string
return void

patterns() public method

Set a group of global where patterns on all routes.
public patterns ( array $patterns ) : void
$patterns array
return void

performBinding() protected method

Call the binding callback for the given key.
protected performBinding ( string $key, string $value, Illuminate\Routing\Route $route ) : mixed
$key string
$value string
$route Illuminate\Routing\Route
return mixed

post() public method

Register a new POST route with the router.
public post ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

prefix() protected method

Prefix the given URI with the last prefix.
protected prefix ( string $uri ) : string
$uri string
return string

prepareResponse() public method

Create a response instance from the given value.
public prepareResponse ( Request $request, mixed $response ) : Illuminate\Http\Response
$request Symfony\Component\HttpFoundation\Request
$response mixed
return Illuminate\Http\Response

prependGroupUses() protected method

Prepend the last group uses onto the use clause.
protected prependGroupUses ( string $uses ) : string
$uses string
return string

prependMiddlewareToGroup() public method

If the middleware is already in the group, it will not be added again.
public prependMiddlewareToGroup ( string $group, string $middleware )
$group string
$middleware string

pushMiddlewareToGroup() public method

If the middleware is already in the group, it will not be added again.
public pushMiddlewareToGroup ( string $group, string $middleware )
$group string
$middleware string

put() public method

Register a new PUT route with the router.
public put ( string $uri, Closure | array | string | null $action = null ) : Illuminate\Routing\Route
$uri string
$action Closure | array | string | null
return Illuminate\Routing\Route

resolveMiddlewareClassName() public method

Resolve the middleware name to a class name(s) preserving passed parameters.
public resolveMiddlewareClassName ( string $name ) : string | array
$name string
return string | array

resource() public method

Route a resource to a controller.
public resource ( string $name, string $controller, array $options = [] ) : void
$name string
$controller string
$options array
return void

resourceParameters() public method

Set the global resource parameter mapping.
public resourceParameters ( array $parameters = [] ) : void
$parameters array
return void

resources() public method

Register an array of resource controllers.
public resources ( array $resources ) : void
$resources array
return void

runRouteWithinStack() protected method

Run the given route within a Stack "onion" instance.
protected runRouteWithinStack ( Illuminate\Routing\Route $route, Illuminate\Http\Request $request ) : mixed
$route Illuminate\Routing\Route
$request Illuminate\Http\Request
return mixed

setRoutes() public method

Set the route collection instance.
public setRoutes ( Illuminate\Routing\RouteCollection $routes ) : void
$routes Illuminate\Routing\RouteCollection
return void

singularResourceParameters() public method

Set the unmapped global resource parameters to singular.
public singularResourceParameters ( boolean $singular = true ) : void
$singular boolean
return void

sortMiddleware() protected method

Sort the given middleware by priority.
protected sortMiddleware ( Collection $middlewares ) : array
$middlewares Illuminate\Support\Collection
return array

substituteBindings() public method

Substitute the route bindings onto the route.
public substituteBindings ( Illuminate\Routing\Route $route ) : Illuminate\Routing\Route
$route Illuminate\Routing\Route
return Illuminate\Routing\Route

substituteImplicitBindings() public method

Substitute the implicit Eloquent model bindings for the route.
public substituteImplicitBindings ( Illuminate\Routing\Route $route ) : void
$route Illuminate\Routing\Route
return void

updateGroupStack() protected method

Update the group stack with the given attributes.
protected updateGroupStack ( array $attributes ) : void
$attributes array
return void

uses() public method

Alias for the "currentRouteUses" method.
public uses ( ) : boolean
return boolean

Property Details

$binders protected property

The registered route value binders.
protected array $binders
return array

$container protected property

The IoC container instance.
protected Container,Illuminate\Container $container
return Illuminate\Container\Container

$current protected property

The currently dispatched route instance.
protected Route,Illuminate\Routing $current
return Illuminate\Routing\Route

$currentRequest protected property

The request currently being dispatched.
protected Request,Illuminate\Http $currentRequest
return Illuminate\Http\Request

$events protected property

The event dispatcher instance.
protected Dispatcher,Illuminate\Contracts\Events $events
return Illuminate\Contracts\Events\Dispatcher

$groupStack protected property

The route group attribute stack.
protected array $groupStack
return array

$middleware protected property

All of the short-hand keys for middlewares.
protected array $middleware
return array

$middlewareGroups protected property

All of the middleware groups.
protected array $middlewareGroups
return array

$middlewarePriority public property

Forces the listed middleware to always be in the given order.
public array $middlewarePriority
return array

$patterns protected property

The globally available parameter patterns.
protected array $patterns
return array

$routes protected property

The route collection instance.
protected RouteCollection,Illuminate\Routing $routes
return Illuminate\Routing\RouteCollection

$verbs public static property

All of the verbs supported by the router.
public static array $verbs
return array