Класс Dispatcher
Dispatcher преобразует запросы в действия контроллера. Он использует переданный запрос для поиска и загрузки правильного контроллера. Если контроллер найден, то запрашиваемое действие вызывается на контроллере.
- Cake\Routing\Dispatcher использует Cake\Event\EventDispatcherTrait
Подробное описание методов
_invokesource protected
_invoke( Cake\Controller\Controller $controller )
Инициализирует компоненты и модели, которые будет использовать контроллер. Запускает действие контроллера и вызывает отрисовку, если Controller::$autoRender имеет значение true. Если действие контроллера возвращает объект ответа, то возвращается он, иначе возвращается свойство $response контроллера.
Параметры
-
Cake\Controller\Controller$controller - Контроллер для вызова
Возвращаемое значение
Cake\Network\ResponseВозвращаемый объект ответа
Исключения
LogicExceptionЕсли данные, возвращённые действием контроллера, не являются экземпляром Response
addFiltersource public
addFilter( Cake\Event\EventListenerInterface $filter )
Добавляет фильтр к диспетчеру.
Добавленный фильтр будет прикреплён к диспетчеру событий, используемому этим диспетчером.
Параметры
-
Cake\Event\EventListenerInterface$filter - Фильтр для подключения. Может быть любым EventListenerInterface. Обычно экземпляр \Cake\Routing\DispatcherFilter.
dispatchsource public
dispatch( Cake\Network\Request $request , Cake\Network\Response $response )
Обрабатывает и вызывает заданный запрос, передавая управление вовлеченному контроллеру. Если контроллер настроен на автоматическую отрисовку через 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При отсутствии контроллера.
filterssource public
filters( )
Получить список подключенных фильтров.
Возвращаемое значение
arrayмассив
Методы, используемые из Cake\Event\EventDispatcherTrait
dispatchEventsource public
dispatchEvent( string $name , array|null $data null , object|null $subject null )
Обёртка для создания и обработки событий.
Возвращает событие, которое было обработано.
Параметры
- строка
$name - Имя события.
- массив|null
$dataнеобязательно null - Любое значение, которое вы хотите передать вместе с этим событием, чтобы слушатели могли его прочитать.
- объект|null
$subjectнеобязательно null - Объект, к которому относится это событие ($this по умолчанию).
Возвращаемое значение
Cake\Event\Event\Cake\Event\Event
eventManagersource public
eventManager( Cake\Event\EventManager $eventManager null )
Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.
Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создавать свои собственные события и вызывать их по желанию.
Параметры
-
Cake\Event\EventManager$eventManagerнеобязательно null - устанавливаемый eventManager
Возвращаемое значение
Cake\Event\EventManager\Cake\Event\EventManager
Краткое описание свойств
Свойства, используемые из Cake\Event\EventDispatcherTrait
$_eventClasssource
protected строка
Имя класса по умолчанию для новых объектов событий.
'\Cake\Event\Event' $_eventManagersource
protected Cake\Event\EventManager
Экземпляр Cake\Event\EventManager, используемый этим объектом для обработки внутренних событий.
null
© 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.1/class-Cake.Routing.Dispatcher.html