Класс Dispatcher
Dispatcher преобразует запросы в действия контроллера. Он использует обработанный запрос для поиска и загрузки правильного контроллера. Если он найден, запрошенное действие вызывается на контроллере.
- Dispatcher реализует CakeEventListener
Непосредственные известные подклассы
ControllerTestDispatcherАвторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение Cake/Routing/Dispatcher.php
Подробное описание методов
__constructисходный код public
__construct( string $base false )
Конструктор.
Параметры
- строка
$baseнеобязательно false - Базовый каталог приложения. Записывает
App.baseв Configure.
_attachFiltersисходный код protected
_attachFilters( CakeEventManager $manager )
Прикрепляет все обработчики событий для данного экземпляра диспетчера. Загружает фильтры диспетчера из настроенных расположений.
Параметры
-
CakeEventManager$manager - Экземпляр менеджера событий.
Исключения
MissingDispatcherFilterExceptionMissingDispatcherFilterException
_getControllerисходный код protected
_getController( CakeRequest $request , CakeResponse $response )
Получить контроллер для использования, либо плагин-контроллер, либо контроллер приложения
Параметры
-
CakeRequest$request - Объект запроса
-
CakeResponse$response - Ответ для контроллера.
Возвращает
mixedимя контроллера, если не загружен, или объект, если загружен
_invokeисходный код protected
_invoke( Controller $controller , CakeRequest $request )
Инициализирует компоненты и модели, которые контроллер будет использовать. Вызывает действие контроллера и вызывает отображение, если Controller::$autoRender равно true, и выводит результат. В противном случае возвращается значение действия контроллера.
Параметры
-
Controller$controller - Контроллер для вызова
-
CakeRequest$request - Объект запроса для вызова контроллера.
Возвращает
CakeResponseрезультирующий объект ответа
_loadControllerисходный код protected
_loadController( CakeRequest $request )
Загрузка контроллера и возврат имени класса контроллера
Параметры
-
CakeRequest$request - Экземпляр запроса.
Возвращает
string|booleanИмя класса контроллера
dispatchисходный код public
dispatch( CakeRequest $request , CakeResponse $response , array $additionalParams array() )
Обрабатывает и вызывает заданный запрос, передавая управление вовлеченному контроллеру. Если контроллер настроен на автоматическое отображение, через Controller::$autoRender, Dispatcher отобразит представление.
Действия в CakePHP могут быть любым публичным методом контроллера, который не объявлен в Controller. Если вы хотите, чтобы методы контроллера были публичными и недоступными по URL, добавьте префикс _. Например, public function _loadPosts() { } не будет доступен по URL. Приватные и защищенные методы также недоступны по URL.
Если контроллер с заданным именем не найден, invoke() выбросит исключение. Если контроллер найден, а действие не найдено, будет выброшено исключение.
Параметры
-
CakeRequest$request - Объект запроса для обработки.
-
CakeResponse$response - Объект ответа, в который будут помещены результаты обработки.
- массив
$additionalParamsнеобязательно array() - Массив настроек ("bare", "return"), который объединен с параметрами GET и POST
Возвращает
string|nullесли
$request['return'] установлен, то возвращается тело ответа, в противном случае nullИсключения
MissingControllerExceptionКогда контроллер отсутствует.
Триггерит
Dispatcher.beforeDispatch $this, compact('request', 'response', 'additionalParams')Dispatcher.afterDispatch $this, compact('request', 'response')
getEventManagerисходный код public
getEventManager( )
Возвращает экземпляр CakeEventManager или создает его, если он не был создан. Прикрепляет стандартные обработчики и фильтры
Возвращает
CakeEventManagerCakeEventManager
implementedEventsисходный код public
implementedEvents( )
Возвращает список событий, на которые этот объект подписан.
Возвращает
arrayмассив
Реализация
CakeEventListener::implementedEvents() parseParamsисходный код public
parseParams( CakeEvent $event )
Применяет маршрутизацию и дополнительные параметры к запросу для обработки. Если маршруты не загружены, они будут загружены, и будет выполнен app/Config/routes.php.
Параметры
-
CakeEvent$event - содержащий запрос, ответ и дополнительные параметры
Резюме свойств
© 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/2.7/class-Dispatcher.html