Класс Dispatcher
Dispatcher преобразует запросы в действия контроллера. Он использует обработанный запрос для поиска и загрузки правильного контроллера. Если найден, запрашиваемое действие вызывается в контроллере
- Cake\Routing\Dispatcher использует Cake\Event\EventDispatcherTrait
Краткое описание свойств
-
$_filtersprotectedОбъекты подключенных фильтровarray
Унаследованные свойства
Краткое описание методов
- _invoke() protected
Инициализирует компоненты и модели, которые будет использовать контроллер. Вызывает действие контроллера и вызывает отрисовку, если Controller::$autoRender имеет значение true. Если действие контроллера возвращает объект response, то он возвращается, иначе возвращается свойство $response контроллера.
- addFilter() publicДобавить фильтр в этот диспетчер.
- dispatch() public
Обрабатывает и вызывает данный запрос Request, передавая управление вовлечённому контроллеру. Если контроллер настроен на автоматическую отрисовку (через Controller::$autoRender), Dispatcher отобразит представление.
- filters() publicПолучить список подключенных фильтров.
Подробное описание методов
_invoke()source protected
_invoke( Cake\Controller\Controller $controller )
Инициализирует компоненты и модели, которые будет использовать контроллер. Вызывает действие контроллера и вызывает отрисовку, если Controller::$autoRender имеет значение true. Если действие контроллера возвращает объект response, то он возвращается, иначе возвращается свойство $response контроллера.
Параметры
-
Cake\Controller\Controller$controller - Контроллер для вызова
Возвращает
Cake\Network\ResponseПолученный объект response
Выбрасывает
LogicExceptionЕсли данные, возвращённые действием контроллера, не являются экземпляром Response
addFilter()source public
addFilter( Cake\Event\EventListenerInterface $filter )
Добавить фильтр в этот диспетчер.
Добавленный фильтр будет прикреплен к диспетчеру событий, используемому этим диспетчером.
Параметры
-
Cake\Event\EventListenerInterface$filter Фильтр для подключения. Может быть любым EventListenerInterface. Обычно экземпляр \Cake\Routing\DispatcherFilter.
dispatch()source public
dispatch( Cake\Network\Request $request , Cake\Network\Response $response )
Обрабатывает и вызывает данный запрос Request, передавая управление вовлечённому контроллеру. Если контроллер настроен на автоматическую отрисовку (через Controller::$autoRender), Dispatcher отобразит представление.
Действия в CakePHP могут быть любым публичным методом контроллера, который не объявлен в Controller. Если вы хотите, чтобы методы контроллера были публичными и недоступными через URL, префиксруйте их _. Например, public function _loadPosts() { } будет недоступен через URL. Приватные и защищённые методы также недоступны через URL.
Если контроллер с данным именем не найден, invoke() выбросит исключение. Если контроллер найден, а действие не найдено, будет выброшено исключение.
Параметры
-
Cake\Network\Request$request - Объект запроса для обработки.
-
Cake\Network\Response$response - Объект ответа для размещения результатов обработки.
Возвращает
string|nullесли
$request['return'] задан, возвращает тело ответа, в противном случае nullВыбрасывает
Cake\Routing\Exception\MissingControllerExceptionКогда контроллер отсутствует.
Используемые методы из Cake\Event\EventDispatcherTrait
dispatchEvent()source public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и обработки событий.
Возвращает обработанное событие.
Параметры
- string
$name - Имя события.
- array|null
$dataoptional null Любое значение, которое вы хотите передать с этим событием, его могут прочитать слушатели.
- object|null
$subjectoptional null Объект, к которому относится это событие ($this по умолчанию).
Возвращает
Cake\Event\EventeventManager()source public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создавать свои собственные события и вызывать их по своему желанию.
Параметры
-
Cake\Event\EventManager$eventManageroptional null - диспетчер событий для установки
Возвращает
Cake\Event\EventManagerПодробное описание свойств
© 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