Abstract Class Phalcon\Dispatcher\AbstractDispatcher
Source on GitHub
Namespace |
Phalcon\Dispatcher |
|
Uses |
Exception, Phalcon\Di\DiInterface, Phalcon\Di\AbstractInjectionAware, Phalcon\Dispatcher\Exception, Phalcon\Events\EventsAwareInterface, Phalcon\Events\ManagerInterface, Phalcon\Filter\FilterInterface, Phalcon\Mvc\Model\Binder, Phalcon\Mvc\Model\BinderInterface |
|
Extends |
AbstractInjectionAware |
|
Implements |
DispatcherInterface, EventsAwareInterface |
This is the base class for Phalcon\Mvc\Dispatcher and Phalcon\Cli\Dispatcher. This class can’t be instantiated directly, you can use it to create your own dispatchers.
Properties
/**
* @var object|null
*/
protected activeHandler;
/**
* @var array
*/
protected activeMethodMap;
/**
* @var string|null
*/
protected actionName;
/**
* @var string
*/
protected actionSuffix = Action;
/**
* @var array
*/
protected camelCaseMap;
/**
* @var string
*/
protected defaultAction = ;
/**
* @var string|null
*/
protected defaultNamespace;
/**
* @var string|null
*/
protected defaultHandler;
/**
* @var array
*/
protected handlerHashes;
/**
* @var string|null
*/
protected handlerName;
/**
* @var string
*/
protected handlerSuffix = ;
/**
* @var ManagerInterface|null
*/
protected eventsManager;
/**
* @var bool
*/
protected finished = false;
/**
* @var bool
*/
protected forwarded = false;
/**
* @var bool
*/
protected isControllerInitialize = false;
/**
* @var mixed|null
*/
protected lastHandler;
/**
* @var BinderInterface|null
*/
protected modelBinder;
/**
* @var bool
*/
protected modelBinding = false;
/**
* @var string|null
*/
protected moduleName;
/**
* @var string|null
*/
protected namespaceName;
/**
* @var array
*/
protected params;
/**
* @var string|null
*/
protected previousActionName;
/**
* @var string|null
*/
protected previousHandlerName;
/**
* @var string|null
*/
protected previousNamespaceName;
/**
* @var string|null
*/
protected returnedValue;
Methods
public function callActionMethod( mixed $handler, string $actionMethod, array $params = [] );
public function dispatch(): mixed | bool;
Process the results of the router by calling into the appropriate controller action(s) including any routing data or injected parameters.
public function forward( array $forward ): void;
Forwards the execution flow to another controller/action.
$this->dispatcher->forward(
[
"controller" => "posts",
"action" => "index",
]
);
@throws PhalconException
public function getActionName(): string;
Gets the latest dispatched action name
public function getActionSuffix(): string;
Gets the default action suffix
public function getActiveMethod(): string;
Returns the current method to be/executed in the dispatcher
public function getBoundModels(): array;
Returns bound models from binder instance
class UserController extends Controller
{
public function showAction(User $user)
{
// return array with $user
$boundModels = $this->dispatcher->getBoundModels();
}
}
public function getDefaultNamespace(): string;
Returns the default namespace
public function getEventsManager(): ManagerInterface | null;
返回内部事件管理器
public function getHandlerClass(): string;
Possible class name that will be located to dispatch the request
public function getHandlerSuffix(): string;
Gets the default handler suffix
public function getModelBinder(): BinderInterface | null;
Gets model binder
public function getModuleName(): string | null;
Gets the module where the controller class is
public function getNamespaceName(): string;
Gets a namespace to be prepended to the current handler name
public function getParam( mixed $param, mixed $filters = null, mixed $defaultValue = null ): mixed;
Gets a param by its name or numeric index
public function getParameter( mixed $param, mixed $filters = null, mixed $defaultValue = null ): mixed;
Gets a param by its name or numeric index
public function getParameters(): array;
Gets action params
public function getParams(): array;
Gets action params
@todo remove this in future versions
public function getReturnedValue(): mixed;
Returns value returned by the latest dispatched action
public function hasParam( mixed $param ): bool;
Check if a param exists @todo deprecate this in the future
public function hasParameter( mixed $param ): bool;
Check if a param exists
public function isFinished(): bool;
Checks if the dispatch loop is finished or has more pendent controllers/tasks to dispatch
public function setActionName( string $actionName ): void;
Sets the action name to be dispatched
public function setActionSuffix( string $actionSuffix ): void;
Sets the default action suffix
public function setDefaultAction( string $actionName ): void;
Sets the default action name
public function setDefaultNamespace( string $defaultNamespace ): void;
Sets the default namespace
public function setEventsManager( ManagerInterface $eventsManager ): void;
设置事件管理器
public function setHandlerSuffix( string $handlerSuffix ): void;
Sets the default suffix for the handler
public function setModelBinder( BinderInterface $modelBinder, mixed $cache = null ): DispatcherInterface;
Enable model binding during dispatch
$di->set(
'dispatcher',
function() {
$dispatcher = new Dispatcher();
$dispatcher->setModelBinder(
new Binder(),
'cache'
);
return $dispatcher;
}
);
public function setModuleName( string $moduleName = null ): void;
Sets the module where the controller is (only informative)
public function setNamespaceName( string $namespaceName ): void;
Sets the namespace where the controller class is
public function setParam( mixed $param, mixed $value ): void;
Set a param by its name or numeric index @todo deprecate this in the future
public function setParameter( mixed $param, mixed $value ): void;
Set a param by its name or numeric index
public function setParameters( array $params ): void;
Sets action params to be dispatched
public function setParams( array $params ): void;
Sets action params to be dispatched @todo deprecate this in the future
public function setReturnedValue( mixed $value ): void;
Sets the latest returned value by an action manually
public function wasForwarded(): bool;
Check if the current executed action was forwarded by another one
protected function resolveEmptyProperties(): void;
Set empty properties to their defaults (where defaults are available)
protected function toCamelCase( string $input ): string;
Interface Phalcon\Dispatcher\DispatcherInterface
Source on GitHub
Namespace |
Phalcon\Dispatcher |
Interface for Phalcon\Dispatcher\AbstractDispatcher
Methods
public function dispatch(): mixed | bool;
Dispatches a handle action taking into account the routing parameters
public function forward( array $forward ): void;
Forwards the execution flow to another controller/action
public function getActionName(): string;
Gets last dispatched action name
public function getActionSuffix(): string;
Gets the default action suffix
public function getHandlerSuffix(): string;
Gets the default handler suffix
public function getParam( mixed $param, mixed $filters = null ): mixed;
Gets a param by its name or numeric index
public function getParameter( mixed $param, mixed $filters = null ): mixed;
Gets a param by its name or numeric index
public function getParameters(): array;
Gets action params
public function getParams(): array;
Gets action params
public function getReturnedValue(): mixed;
Returns value returned by the latest dispatched action
public function hasParam( mixed $param ): bool;
Check if a param exists
public function isFinished(): bool;
Checks if the dispatch loop is finished or has more pendent controllers/tasks to dispatch
public function setActionName( string $actionName ): void;
Sets the action name to be dispatched
public function setActionSuffix( string $actionSuffix ): void;
Sets the default action suffix
public function setDefaultAction( string $actionName ): void;
Sets the default action name
public function setDefaultNamespace( string $defaultNamespace ): void;
Sets the default namespace
public function setHandlerSuffix( string $handlerSuffix ): void;
Sets the default suffix for the handler
public function setModuleName( string $moduleName = null ): void;
Sets the module name which the application belongs to
public function setNamespaceName( string $namespaceName ): void;
Sets the namespace which the controller belongs to
public function setParam( mixed $param, mixed $value ): void;
Set a param by its name or numeric index
public function setParams( array $params ): void;
Sets action params to be dispatched
Class Phalcon\Dispatcher\Exception
Source on GitHub
Namespace |
Phalcon\Dispatcher |
|
Extends |
\Exception |
Exceptions thrown in Phalcon\Dispatcher/* will use this class
常量
const EXCEPTION_ACTION_NOT_FOUND = 5;
const EXCEPTION_CYCLIC_ROUTING = 1;
const EXCEPTION_HANDLER_NOT_FOUND = 2;
const EXCEPTION_INVALID_HANDLER = 3;
const EXCEPTION_INVALID_PARAMS = 4;
const EXCEPTION_NO_DI = 0;