Phalcon\Mvc\Dispatcher
Класс Phalcon\Mvc\Dispatcher
расширяет абстрактный класс Phalcon\Dispatcher
Реализует Phalcon\Events\EventsAwareInterface, Phalcon\Di\InjectionAwareInterface, Phalcon\DispatcherInterface, Phalcon\Mvc\DispatcherInterface
Диспетчеризация-это процесс принятия объекта запроса, извлечения имени модуля, имени контроллера, имени действия и дополнительных параметров, содержащихся в нем, а затем создания экземпляра контроллера и вызова действия этого контроллера.
<?php $di = new \Phalcon\Di(); $dispatcher = new \Phalcon\Mvc\Dispatcher(); $dispatcher->setDI($di); $dispatcher->setControllerName("posts"); $dispatcher->setActionName("index"); $dispatcher->setParams([]); $controller = $dispatcher->dispatch();
Константы
integer EXCEPTION_NO_DI
integer EXCEPTION_CYCLIC_ROUTING
integer EXCEPTION_HANDLER_NOT_FOUND
integer EXCEPTION_INVALID_HANDLER
integer EXCEPTION_INVALID_PARAMS
integer EXCEPTION_ACTION_NOT_FOUND
Методы
public setControllerSuffix (mixed $controllerSuffix)
Устанавливает суффикс контроллера по умолчанию
public setDefaultController (mixed $controllerName)
Задает имя контроллера по умолчанию
public setControllerName (mixed $controllerName)
Задает имя контроллера для отправки
public getControllerName ()
Получает последнее отправленное имя контроллера
public getPreviousNamespaceName ()
Получает предыдущее отправленное имя пространства имен
public getPreviousControllerName ()
Получает предыдущее имя контроллера
public getPreviousActionName ()
Получает предыдущее имя отправленного действия
protected _throwDispatchException (mixed $message, [mixed $exceptionCode])
Создает внутреннее исключение
protected _handleException (Exception $exception)
Обрабатывает исключение пользователя
public forward (array $forward)
Перенаправляет поток выполнения другому контроллеру / действию.
<?php use Phalcon\Events\Event; use Phalcon\Mvc\Dispatcher; use App\Backend\Bootstrap as Backend; use App\Frontend\Bootstrap as Frontend; // Registering modules $modules = [ "frontend" => [ "className" => Frontend::class, "path" => __DIR__ . "/app/Modules/Frontend/Bootstrap.php", "metadata" => [ "controllersNamespace" => "App\Frontend\Controllers", ], ], "backend" => [ "className" => Backend::class, "path" => __DIR__ . "/app/Modules/Backend/Bootstrap.php", "metadata" => [ "controllersNamespace" => "App\Backend\Controllers", ], ], ]; $application->registerModules($modules); // Setting beforeForward listener $eventsManager = $di->getShared("eventsManager"); $eventsManager->attach( "dispatch:beforeForward", function(Event $event, Dispatcher $dispatcher, array $forward) use ($modules) { $metadata = $modules[$forward["module"]]["metadata"]; $dispatcher->setModuleName($forward["module"]); $dispatcher->setNamespaceName($metadata["controllersNamespace"]); } ); // Forward $this->dispatcher->forward( [ "module" => "backend", "controller" => "posts", "action" => "index", ] );
public getControllerClass ()
Возможное имя класса контроллера, которое будет назначено для отправки запроса
public getLastController ()
Возвращает последний отправленный контроллер
public getActiveController ()
Возвращает активный контроллер в диспетчере
public setDI (Phalcon\DiInterface $dependencyInjector) inherited from Phalcon\Dispatcher
Устанавливает инжектор зависимостей
public getDI () inherited from Phalcon\Dispatcher
Возвращает внутренний инжектор зависимостей
public setEventsManager (Phalcon\Events\ManagerInterface $eventsManager) inherited from Phalcon\Dispatcher
Устанавливает диспетчер событий
public getEventsManager () inherited from Phalcon\Dispatcher
Возвращает внутренний менеджер событий
public setActionSuffix (mixed $actionSuffix) inherited from Phalcon\Dispatcher
Устанавливает суффикс действия по умолчанию
public getActionSuffix () inherited from Phalcon\Dispatcher
Возвращает суффикс действия по умолчанию
public setModuleName (mixed $moduleName) inherited from Phalcon\Dispatcher
Устанавливает модуль, в котором находится контроллер (только информативный)
public getModuleName () inherited from Phalcon\Dispatcher
Возвращает модуль, в котором находится класс контроллера
public setNamespaceName (mixed $namespaceName) inherited from Phalcon\Dispatcher
Задает пространство имен, где класс контроллера
public getNamespaceName () inherited from Phalcon\Dispatcher
Возвращает пространство имен, добавляемое к текущему имени обработчика
public setDefaultNamespace (mixed $namespaceName) inherited from Phalcon\Dispatcher
Задает пространство имен по умолчанию
public getDefaultNamespace () inherited from Phalcon\Dispatcher
Возвращает пространство имен по умолчанию
public setDefaultAction (mixed $actionName) inherited from Phalcon\Dispatcher
Задает имя действия по умолчанию
public setActionName (mixed $actionName) inherited from Phalcon\Dispatcher
Задает имя действия для отправки
public getActionName () inherited from Phalcon\Dispatcher
Получает последнее имя отправленного действия
public setParams (array $params) inherited from Phalcon\Dispatcher
Задает параметры действий для отправки
public getParams () inherited from Phalcon\Dispatcher
Получает параметры действия
public setParam (mixed $param, mixed $value) inherited from Phalcon\Dispatcher
Задаёт параметр param по его имени или числовому индексу
public mixed getParam (mixed $param, [string | array $filters], [mixed $defaultValue]) inherited from Phalcon\Dispatcher
Получает параметр param по его имени или числовому индексу
public boolean hasParam (mixed $param) inherited from Phalcon\Dispatcher
Проверяет, существует ли параметр param
public getActiveMethod () inherited from Phalcon\Dispatcher
Возвращает текущий метод, который должен быть выполнен в диспетчере
public isFinished () inherited from Phalcon\Dispatcher
Проверяет, завершен ли цикл отправки или имеется больше диспетчеров/задач для отправки
public setReturnedValue (mixed $value) inherited from Phalcon\Dispatcher
Устанавливает последнее возвращаемое значение вручную
public mixed getReturnedValue () inherited from Phalcon\Dispatcher
Возвращает значение, возвращенное последним отправленным действием
public setModelBinding (mixed $value, [mixed $cache]) inherited from Phalcon\Dispatcher
Включить/отключить привязку модели во время отправки
<?php $di->set('dispatcher', function() { $dispatcher = new Dispatcher(); $dispatcher->setModelBinding(true, 'cache'); return $dispatcher; });
public setModelBinder (Phalcon\Mvc\Model\BinderInterface $modelBinder, [mixed $cache]) inherited from Phalcon\Dispatcher
Включить привязку модели во время отправки
<?php $di->set('dispatcher', function() { $dispatcher = new Dispatcher(); $dispatcher->setModelBinder(new Binder(), 'cache'); return $dispatcher; });
public getModelBinder () inherited from Phalcon\Dispatcher
Получает связыватель модели
public object dispatch () inherited from Phalcon\Dispatcher
Отправляет действие дескриптора с учетом параметров маршрутизации
protected object _dispatch () inherited from Phalcon\Dispatcher
Отправляет действие дескриптора с учетом параметров маршрутизации
public wasForwarded () inherited from Phalcon\Dispatcher
Проверить, было ли текущее выполненное действие переадресовано другим
public getHandlerClass () inherited from Phalcon\Dispatcher
Возможное имя класса, которое будет расположено для отправки запроса
public callActionMethod (mixed $handler, mixed $actionMethod, [array $params]) inherited from Phalcon\Dispatcher
...
public getBoundModels () inherited from Phalcon\Dispatcher
Возвращает привязанные модели из экземпляра связывателя
<?php class UserController extends Controller { public function showAction(User $user) { $boundModels = $this->dispatcher->getBoundModels(); // return array with $user } }
protected _resolveEmptyProperties () inherited from Phalcon\Dispatcher
Задаёт для пустых свойств значения по умолчанию (где доступны значения по умолчанию)