Class Dispatcher
Dispatcher converts Requests into controller actions. It uses the dispatched Request to locate and load the correct controller. If found, the requested action is called on the controller
- Cake\Routing\Dispatcher uses Cake\Event\EventDispatcherTrait
Properties summary
-
$_filters
protected
Inherited Properties
Method Summary
- addFilter() publicAdd a filter to this dispatcher.
- dispatch() public
Dispatches and invokes given Request, handing over control to the involved controller. If the controller is set to autoRender, via Controller::$autoRender, then Dispatcher will render the view.
- filters() publicGet the list of connected filters.
Method Detail
addFilter()source public
addFilter( Cake\Event\EventListenerInterface $filter )
Add a filter to this dispatcher.
The added filter will be attached to the event manager used by this dispatcher.
Parameters
-
Cake\Event\EventListenerInterface
$filter
The filter to connect. Can be any EventListenerInterface. Typically an instance of \Cake\Routing\DispatcherFilter.
dispatch()source public
dispatch( Cake\Http\ServerRequest $request , Cake\Http\Response $response )
Dispatches and invokes given Request, handing over control to the involved controller. If the controller is set to autoRender, via Controller::$autoRender, then Dispatcher will render the view.
Actions in CakePHP can be any public method on a controller, that is not declared in Controller. If you want controller methods to be public and in-accessible by URL, then prefix them with a _
. For example public function _loadPosts() { }
would not be accessible via URL. Private and protected methods are also not accessible via URL.
If no controller of given name can be found, invoke() will throw an exception. If the controller is found, and the action is not found an exception will be thrown.
Parameters
-
Cake\Http\ServerRequest
$request
- Request object to dispatch.
-
Cake\Http\Response
$response
- Response object to put the results of the dispatch into.
Returns
string|nullif
$request['return']
is set then it returns response body, null otherwiseThrows
LogicExceptionWhen the controller did not get created in the Dispatcher.beforeDispatch event.
filters()source public
filters( )
Get the list of connected filters.
Returns
Cake\Event\EventListenerInterface[]
Methods used from Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Wrapper for creating and dispatching events.
Returns a dispatched event.
Parameters
- string
$name
- Name of the event.
- array|null
$data
optional null Any value you wish to be transported with this event to it can be read by listeners.
- object|null
$subject
optional null The object that this event applies to ($this by default).
Returns
Cake\Event\Event
eventManager()source public
eventManager( Cake\Event\EventManager $eventManager null )
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Deprecated
3.5.0 Use getEventManager()/setEventManager() instead.Parameters
-
Cake\Event\EventManager
$eventManager
optional null - the eventManager to set
Returns
Cake\Event\EventManager
getEventManager()source public
getEventManager( )
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Returns
Cake\Event\EventManager
setEventManager()source public
setEventManager( Cake\Event\EventManager $eventManager )
Returns the Cake\Event\EventManager manager instance for this object.
You can use this instance to register any new listeners or callbacks to the object events, or create your own events and trigger them at will.
Parameters
-
Cake\Event\EventManager
$eventManager
- the eventManager to set
Returns
$this
Properties detail
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.4/class-Cake.Routing.Dispatcher.html