Router
class Router implements HttpKernelInterface, RouteFiltererInterface (View source)
Properties
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 ControllerDispatcher | $controllerDispatcher | The controller dispatcher instance. |
|
protected ControllerInspector | $inspector | The controller inspector instance. |
|
protected bool | $filtering | Indicates if the router is running filters. |
|
protected array | $patternFilters | The registered pattern based filters. |
|
protected array | $regexFilters | The registered regular expression based filters. |
|
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. |
|
protected array | $resourceDefaults | The default actions for a resourceful controller. |
Methods
Register an array of controllers with wildcard routing.
Route a controller to a URI with wildcard routing.
Register an inspected controller route.
Add a fallthrough route for a controller.
Route a resource to a controller.
Build a set of prefixed resource routes.
Extract the resource and prefix from a resource name.
Get the applicable resource methods.
Get the base resource URI for a given resource.
Get the URI for a nested resource segment array.
Get the action array for a resource route.
Get the name for a given resource.
Get the resource name for a grouped resource.
Format a resource wildcard for usage.
Add the index method for a resourceful route.
Add the create method for a resourceful route.
Add the store method for a resourceful route.
Add the show method for a resourceful route.
Add the edit method for a resourceful route.
Add the update method for a resourceful route.
Add the update method for a resourceful route.
Add the update method for a resourceful route.
Add the destroy method for a resourceful route.
Update the group stack with the given attributes.
Merge the given array with the last group stack.
Merge the given group attributes.
Format the uses prefix for the new group attributes.
Format the prefix for the new group attributes.
Get the prefix from the last group on the stack.
Create a new route instance.
Prefix the given URI with the last prefix.
Add the necessary where clauses to the route based on its initial registration.
Determine if the action is routing to a controller.
Add a controller based route action to the action array.
Get the Closure for a controller based action.
Prepend the last group uses onto the use clause.
Call the binding callback for the given key.
Register a route matched event listener.
Register a new "before" filter with the router.
Register a new "after" filter with the router.
Register a new global filter with the router.
Register a new filter with the router.
Parse the registered filter.
Register a pattern-based filter with the router.
Register a regular expression based filter with the router.
Add a new route parameter binder.
Create a class based binding using the IoC container.
Set a global where pattern on all routes
Set a group of global where patterns on all routes
Call the given filter with the request and response.
Filter pattern filters that don't apply to the request verb.
Determine if the given pattern filters applies to a given method.
Call the given route's before (non-pattern) filters.
Call the given route's before filters.
Call the given route filter.
Clean the parameters being passed to a filter callback.
Create a response instance from the given value.
Run a callback with filters disable on the router.
Enable route filtering on the router.
Disable route filtering on the router.
Get a route parameter for the current route.
Get the currently dispatched route instance.
Check if a route with the given name exists.
Get the current route name.
Alias for the "currentRouteNamed" method.
Determine if the current route matches a given name.
Get the current route action.
Alias for the "currentRouteUses" method.
Determine if the current route action matches a given action.
Get the request currently being dispatched.
Get the underlying route collection.
Get the controller dispatcher instance.
Get a controller inspector instance.
Get the global "where" patterns.
Details
void
__construct(Dispatcher $events, Container $container = null)
Create a new Router instance.
Route
delete(string $uri, Closure|array|string $action)
Register a new DELETE route with the router.
Route
options(string $uri, Closure|array|string $action)
Register a new OPTIONS route with the router.
Route
match(array|string $methods, string $uri, Closure|array|string $action)
Register a new route with the given verbs.
void
controllers(array $controllers)
Register an array of controllers with wildcard routing.
void
controller(string $uri, string $controller, array $names = array())
Route a controller to a URI with wildcard routing.
protected void
registerInspected(array $route, string $controller, string $method, array $names)
Register an inspected controller route.
protected void
addFallthroughRoute(string $controller, string $uri)
Add a fallthrough route for a controller.
void
resource(string $name, string $controller, array $options = array())
Route a resource to a controller.
protected void
prefixedResource(string $name, string $controller, array $options)
Build a set of prefixed resource routes.
protected array
getResourcePrefix(string $name)
Extract the resource and prefix from a resource name.
protected array
getResourceMethods(array $defaults, array $options)
Get the applicable resource methods.
string
getResourceUri(string $resource)
Get the base resource URI for a given resource.
protected string
getNestedResourceUri(array $segments)
Get the URI for a nested resource segment array.
protected array
getResourceAction(string $resource, string $controller, string $method, array $options)
Get the action array for a resource route.
protected string
getResourceName(string $resource, string $method, array $options)
Get the name for a given resource.
protected string
getGroupResourceName(string $prefix, string $resource, string $method)
Get the resource name for a grouped resource.
string
getResourceWildcard(string $value)
Format a resource wildcard for usage.
protected Route
addResourceIndex(string $name, string $base, string $controller, array $options)
Add the index method for a resourceful route.
protected Route
addResourceCreate(string $name, string $base, string $controller, array $options)
Add the create method for a resourceful route.
protected Route
addResourceStore(string $name, string $base, string $controller, array $options)
Add the store method for a resourceful route.
protected Route
addResourceShow(string $name, string $base, string $controller, array $options)
Add the show method for a resourceful route.
protected Route
addResourceEdit(string $name, string $base, string $controller, array $options)
Add the edit method for a resourceful route.
protected void
addResourceUpdate(string $name, string $base, string $controller, array $options)
Add the update method for a resourceful route.
protected Route
addPutResourceUpdate(string $name, string $base, string $controller, array $options)
Add the update method for a resourceful route.
protected void
addPatchResourceUpdate(string $name, string $base, string $controller)
Add the update method for a resourceful route.
protected Route
addResourceDestroy(string $name, string $base, string $controller, array $options)
Add the destroy method for a resourceful route.
void
group(array $attributes, Closure $callback)
Create a route group with shared attributes.
protected 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 protected string
formatUsesPrefix(array $new, array $old)
Format the uses prefix for the new group attributes.
static protected string
formatGroupPrefix(array $new, array $old)
Format the prefix for the new group attributes.
protected string
getLastGroupPrefix()
Get the prefix from the last group on the stack.
protected Route
addRoute(array|string $methods, string $uri, Closure|array|string $action)
Add a route to the underlying route collection.
protected Route
createRoute(array|string $methods, string $uri, mixed $action)
Create a new route instance.
protected Route
newRoute(array|string $methods, string $uri, mixed $action)
Create a new Route object.
protected string
prefix(string $uri)
Prefix the given URI with the last prefix.
protected Route
addWhereClausesToRoute(Route $route)
Add the necessary where clauses to the route based on its initial registration.
protected void
mergeController(Route $route)
Merge the group stack with the controller action.
protected bool
routingToController(array $action)
Determine if the action is routing to a controller.
protected array
getControllerAction(array|string $action)
Add a controller based route action to the action array.
protected Closure
getClassClosure(string $controller)
Get the Closure for a controller based action.
protected string
prependGroupUses(string $uses)
Prepend the last group uses onto the use clause.
mixed
dispatchToRoute(Request $request)
Dispatch the request to a route and return the response.
protected 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.
void
before(string|callable $callback)
Register a new "before" filter with the router.
void
after(string|callable $callback)
Register a new "after" filter with the router.
protected void
addGlobalFilter(string $filter, string|callable $callback)
Register a new global filter with the router.
void
filter(string $name, mixed $callback)
Register a new filter with the router.
protected mixed
parseFilter(callable|string $callback)
Parse the registered filter.
void
when(string $pattern, string $name, array|null $methods = null)
Register a pattern-based filter with the router.
void
whenRegex(string $pattern, string $name, array|null $methods = null)
Register a regular expression based filter with the router.
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
protected mixed
callFilter(string $filter, Request $request, Response $response = null)
Call the given filter with the request and response.
protected mixed|null
callPatternFilters(Route $route, Request $request)
Call the pattern based filters for the request.
array
findPatternFilters(Request $request)
Find the patterned filters matching a request.
protected array
patternsByMethod(string $method, array $filters)
Filter pattern filters that don't apply to the request verb.
protected bool
filterSupportsMethod(array $filter, array $method)
Determine if the given pattern filters applies to a given method.
protected mixed
callAttachedBefores(Route $route, Request $request)
Call the given route's before (non-pattern) filters.
mixed
callRouteAfter(Route $route, Request $request, Response $response)
Call the given route's before filters.
mixed
callRouteFilter(string $filter, array $parameters, Route $route, Request $request, Response|null $response = null)
Call the given route filter.
protected array
cleanFilterParameters(array $parameters)
Clean the parameters being passed to a filter callback.
protected Response
prepareResponse(Request $request, mixed $response)
Create a response instance from the given value.
void
withoutFilters(callable $callback)
Run a callback with filters disable on the router.
void
enableFilters()
Enable route filtering on the router.
void
disableFilters()
Disable route filtering on 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 "currentRouteNamed" 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.
ControllerDispatcher
getControllerDispatcher()
Get the controller dispatcher instance.
void
setControllerDispatcher(ControllerDispatcher $dispatcher)
Set the controller dispatcher instance.
ControllerInspector
getInspector()
Get a controller inspector instance.
array
getPatterns()
Get the global "where" patterns.
Response
handle(Request $request, int $type = HttpKernelInterface::MASTER_REQUEST, bool $catch = true)
Get the response for a given request.