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
Namespace: Cake\Routing
Location: Routing/Dispatcher.php

Properties summary

  • $_filters protected
    array
    Connected filter objects

Inherited Properties

Method Summary

  • _invoke() protected

    Initializes the components and models a controller will be using. Triggers the controller action and invokes the rendering if Controller::$autoRender is true. If a response object is returned by controller action that is returned else controller's $response property is returned.

  • addFilter() public
    Add 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() public
    Get the list of connected filters.

Method Detail

_invoke()source protected

_invoke( Cake\Controller\Controller $controller )

Initializes the components and models a controller will be using. Triggers the controller action and invokes the rendering if Controller::$autoRender is true. If a response object is returned by controller action that is returned else controller's $response property is returned.

Parameters

Cake\Controller\Controller $controller
Controller to invoke

Returns

Cake\Network\Response
The resulting response object

Throws

LogicException

If data returned by controller action is not an instance of Response


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\Network\Request $request , Cake\Network\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\Network\Request $request
Request object to dispatch.
Cake\Network\Response $response
Response object to put the results of the dispatch into.

Returns

string|null
if $request['return'] is set then it returns response body, null otherwise

Throws

Cake\Routing\Exception\MissingControllerException
When the controller is missing.

filters()source public

filters( )

Get the list of connected filters.

Returns

array

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.

Parameters

Cake\Event\EventManager $eventManager optional null
the eventManager to set

Returns

Cake\Event\EventManager

Properties detail

$_filterssource

protected array

Connected filter objects

[]

© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Routing.Dispatcher.html