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