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
Deprecated: 3.6.0 Dispatcher is deprecated. You should update your application to use the Http\Server implementation instead.
Property Summary
-
$_eventClass protected
stringDefault class name for new event objects.
-
$_eventManager protected
Cake\Event\EventManagerInterface|Cake\Event\EventManagerInstance of the Cake\Event\EventManager this object is using to dispatch inner events.
-
$_filters protected
Cake\Event\EventListenerInterface[]Connected filter objects
Method Summary
-
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.
-
dispatchEvent() public
Wrapper for creating and dispatching events.
-
eventManager() public deprecated
Returns the Cake\Event\EventManager manager instance for this object.
-
filters() public
Get the list of connected filters.
-
getEventManager() public
Returns the Cake\Event\EventManager manager instance for this object.
-
setEventManager() public
Returns the Cake\Event\EventManager manager instance for this object.
Method Detail
addFilter() ¶ public
addFilter(Cake\Event\EventListenerInterface $filter): void
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.
Returns
voiddispatch() ¶ public
dispatch(Cake\Http\ServerRequest $request, Cake\Http\Response $response): string|null
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|nullThrows
LogicExceptionWhen the controller did not get created in the Dispatcher.beforeDispatch event.
dispatchEvent() ¶ public
dispatchEvent(string $name, array|null $data = null, object|null $subject = null): Cake\Event\Event
Wrapper for creating and dispatching events.
Returns a dispatched event.
Parameters
-
string$name Name of the event.
-
array|null$data optional Any value you wish to be transported with this event to it can be read by listeners.
-
object|null$subject optional The object that this event applies to ($this by default).
Returns
Cake\Event\EventeventManager() ¶ public
eventManager(Cake\Event\EventManager|null $eventManager = null): Cake\Event\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|null$eventManager optional the eventManager to set
Returns
Cake\Event\EventManagerfilters() ¶ public
filters(): Cake\Event\EventListenerInterface[]
Get the list of connected filters.
Returns
Cake\Event\EventListenerInterface[]getEventManager() ¶ public
getEventManager(): Cake\Event\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.
Returns
Cake\Event\EventManagersetEventManager() ¶ public
setEventManager(Cake\Event\EventManager $eventManager): $this
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
$thisProperty Detail
$_eventManager ¶ protected
Instance of the Cake\Event\EventManager this object is using to dispatch inner events.
Type
Cake\Event\EventManagerInterface|Cake\Event\EventManager