Skip to content

Phalcon dispatcher

NOTE

All classes are prefixed with Phalcon

Dispatcher\AbstractDispatcher

Abstract Source on GitHub

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.

Uses Exception · Phalcon\Di\AbstractInjectionAware · Phalcon\Di\DiInterface · Phalcon\Dispatcher\Exception · Phalcon\Dispatcher\Exceptions\ForwardInInitializeForbidden · Phalcon\Events\EventsAwareInterface · Phalcon\Events\ManagerInterface · Phalcon\Filter\FilterInterface · Phalcon\Mvc\Model\Binder · Phalcon\Mvc\Model\BinderInterface · Phalcon\Support\Collection

Method Summary

public callActionMethod(mixed $handler,string $actionMethod,array $params = []) public mixed|bool dispatch() Process the results of the router by calling into the appropriate public void forward( array $forward ) Forwards the execution flow to another controller/action. public string getActionName() Gets the latest dispatched action name public string getActionSuffix() Gets the default action suffix public string getActiveMethod() Returns the current method to be/executed in the dispatcher public array getBoundModels() Returns bound models from binder instance public string getDefaultNamespace() Returns the default namespace public ManagerInterface|null getEventsManager() Returns the internal event manager public string getHandlerClass() Possible class name that will be located to dispatch the request public string getHandlerSuffix() Gets the default handler suffix public BinderInterface|null getModelBinder() Gets model binder public string|null getModuleName() Gets the module where the controller class is public string getNamespaceName() Gets a namespace to be prepended to the current handler name public mixed getParam(mixed $param,mixed $filters = null,mixed $defaultValue = null) Gets a param by its name or numeric index public mixed getParameter(mixed $param,mixed $filters = null,mixed $defaultValue = null) Gets a param by its name or numeric index public array getParameters() Gets action params public array getParams() Gets action params public mixed getReturnedValue() Returns value returned by the latest dispatched action public bool hasParam( mixed $param ) Check if a param exists public bool hasParameter( mixed $param ) Check if a param exists public bool isFinished() Checks if the dispatch loop is finished or has more pendent public void setActionName( string $actionName ) Sets the action name to be dispatched public void setActionSuffix( string $actionSuffix ) Sets the default action suffix public void setDefaultAction( string $actionName ) Sets the default action name public void setDefaultNamespace( string $defaultNamespace ) Sets the default namespace public void setEventsManager( ManagerInterface $eventsManager ) Sets the events manager public void setHandlerSuffix( string $handlerSuffix ) Sets the default suffix for the handler public DispatcherInterface setModelBinder(BinderInterface $modelBinder,mixed $cache = null) Enable model binding during dispatch public void setModuleName( string $moduleName = null ) Sets the module where the controller is (only informative) public void setNamespaceName( string $namespaceName ) Sets the namespace where the controller class is public void setParam(mixed $param,mixed $value) Set a param by its name or numeric index public void setParameter(mixed $param,mixed $value) Set a param by its name or numeric index public void setParameters( array $params ) Sets action params to be dispatched public void setParams( array $params ) Sets action params to be dispatched public void setReturnedValue( mixed $value ) Sets the latest returned value by an action manually public bool wasForwarded() Check if the current executed action was forwarded by another one protected void resolveEmptyProperties() Set empty properties to their defaults (where defaults are available) protected string toCamelCase( string $input )

Properties

protected string $actionName = ""
protected string $actionSuffix = "Action"
protected object|null $activeHandler = null
protected array $activeMethodMap = []
protected array $camelCaseMap = []
protected string $defaultAction = ""
protected string $defaultHandler = ""
protected string $defaultNamespace = ""
protected ManagerInterface|null $eventsManager = null
protected bool $finished = false
protected bool $forwarded = false
protected array $handlerHashes = []
protected array $handlerHookCache = []
protected string $handlerName = ""
protected string $handlerSuffix = ""
protected bool $isControllerInitialize = false
protected mixed|null $lastHandler = null
protected BinderInterface|null $modelBinder = null
protected bool $modelBinding = false
protected string $moduleName = ""
protected string $namespaceName = ""
protected array $params = []
protected string|null $previousActionName = ""
protected string|null $previousHandlerName = ""
protected string|null $previousNamespaceName = ""
protected string|null $returnedValue = null

Methods

Public · 37

callActionMethod()

public function callActionMethod(
    mixed $handler,
    string $actionMethod,
    array $params = []
);

dispatch()

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.

forward()

public function forward( array $forward ): void;

Forwards the execution flow to another controller/action.

$this->dispatcher->forward(
    [
        "controller" => "posts",
        "action"     => "index",
    ]
);

getActionName()

public function getActionName(): string;

Gets the latest dispatched action name

getActionSuffix()

public function getActionSuffix(): string;

Gets the default action suffix

getActiveMethod()

public function getActiveMethod(): string;

Returns the current method to be/executed in the dispatcher

getBoundModels()

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();
    }
}

getDefaultNamespace()

public function getDefaultNamespace(): string;

Returns the default namespace

getEventsManager()

public function getEventsManager(): ManagerInterface|null;

Returns the internal event manager

getHandlerClass()

public function getHandlerClass(): string;

Possible class name that will be located to dispatch the request

getHandlerSuffix()

public function getHandlerSuffix(): string;

Gets the default handler suffix

getModelBinder()

public function getModelBinder(): BinderInterface|null;

Gets model binder

getModuleName()

public function getModuleName(): string|null;

Gets the module where the controller class is

getNamespaceName()

public function getNamespaceName(): string;

Gets a namespace to be prepended to the current handler name

getParam()

public function getParam(
    mixed $param,
    mixed $filters = null,
    mixed $defaultValue = null
): mixed;

Gets a param by its name or numeric index

@todo remove this in future versions

getParameter()

public function getParameter(
    mixed $param,
    mixed $filters = null,
    mixed $defaultValue = null
): mixed;

Gets a param by its name or numeric index

getParameters()

public function getParameters(): array;

Gets action params

getParams()

public function getParams(): array;

Gets action params

@todo remove this in future versions

getReturnedValue()

public function getReturnedValue(): mixed;

Returns value returned by the latest dispatched action

hasParam()

public function hasParam( mixed $param ): bool;

Check if a param exists @todo deprecate this in the future

hasParameter()

public function hasParameter( mixed $param ): bool;

Check if a param exists

isFinished()

public function isFinished(): bool;

Checks if the dispatch loop is finished or has more pendent controllers/tasks to dispatch

setActionName()

public function setActionName( string $actionName ): void;

Sets the action name to be dispatched

setActionSuffix()

public function setActionSuffix( string $actionSuffix ): void;

Sets the default action suffix

setDefaultAction()

public function setDefaultAction( string $actionName ): void;

Sets the default action name

setDefaultNamespace()

public function setDefaultNamespace( string $defaultNamespace ): void;

Sets the default namespace

setEventsManager()

public function setEventsManager( ManagerInterface $eventsManager ): void;

Sets the events manager

setHandlerSuffix()

public function setHandlerSuffix( string $handlerSuffix ): void;

Sets the default suffix for the handler

setModelBinder()

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;
    }
);

setModuleName()

public function setModuleName( string $moduleName = null ): void;

Sets the module where the controller is (only informative)

setNamespaceName()

public function setNamespaceName( string $namespaceName ): void;

Sets the namespace where the controller class is

setParam()

public function setParam(
    mixed $param,
    mixed $value
): void;

Set a param by its name or numeric index @todo deprecate this in the future

setParameter()

public function setParameter(
    mixed $param,
    mixed $value
): void;

Set a param by its name or numeric index

setParameters()

public function setParameters( array $params ): void;

Sets action params to be dispatched

setParams()

public function setParams( array $params ): void;

Sets action params to be dispatched @todo deprecate this in the future

setReturnedValue()

public function setReturnedValue( mixed $value ): void;

Sets the latest returned value by an action manually

wasForwarded()

public function wasForwarded(): bool;

Check if the current executed action was forwarded by another one

Protected · 2

resolveEmptyProperties()

protected function resolveEmptyProperties(): void;

Set empty properties to their defaults (where defaults are available)

toCamelCase()

protected function toCamelCase( string $input ): string;

Dispatcher\DispatcherInterface

Interface Source on GitHub

Interface for Phalcon\Dispatcher\AbstractDispatcher

Method Summary

public mixed|bool dispatch() Dispatches a handle action taking into account the routing parameters public void forward( array $forward ) Forwards the execution flow to another controller/action public string getActionName() Gets last dispatched action name public string getActionSuffix() Gets the default action suffix public string getHandlerSuffix() Gets the default handler suffix public mixed getParam(mixed $param,mixed $filters = null) Gets a param by its name or numeric index public mixed getParameter(mixed $param,mixed $filters = null) Gets a param by its name or numeric index public array getParameters() Gets action params public array getParams() Gets action params public mixed getReturnedValue() Returns value returned by the latest dispatched action public bool hasParam( mixed $param ) Check if a param exists public bool isFinished() Checks if the dispatch loop is finished or has more pendent public void setActionName( string $actionName ) Sets the action name to be dispatched public void setActionSuffix( string $actionSuffix ) Sets the default action suffix public void setDefaultAction( string $actionName ) Sets the default action name public void setDefaultNamespace( string $defaultNamespace ) Sets the default namespace public void setHandlerSuffix( string $handlerSuffix ) Sets the default suffix for the handler public void setModuleName( string $moduleName = null ) Sets the module name which the application belongs to public void setNamespaceName( string $namespaceName ) Sets the namespace which the controller belongs to public void setParam(mixed $param,mixed $value) Set a param by its name or numeric index public void setParams( array $params ) Sets action params to be dispatched

Methods

Public · 21

dispatch()

public function dispatch(): mixed|bool;

Dispatches a handle action taking into account the routing parameters

forward()

public function forward( array $forward ): void;

Forwards the execution flow to another controller/action

getActionName()

public function getActionName(): string;

Gets last dispatched action name

getActionSuffix()

public function getActionSuffix(): string;

Gets the default action suffix

getHandlerSuffix()

public function getHandlerSuffix(): string;

Gets the default handler suffix

getParam()

public function getParam(
    mixed $param,
    mixed $filters = null
): mixed;

Gets a param by its name or numeric index

getParameter()

public function getParameter(
    mixed $param,
    mixed $filters = null
): mixed;

Gets a param by its name or numeric index

getParameters()

public function getParameters(): array;

Gets action params

getParams()

public function getParams(): array;

Gets action params

getReturnedValue()

public function getReturnedValue(): mixed;

Returns value returned by the latest dispatched action

hasParam()

public function hasParam( mixed $param ): bool;

Check if a param exists

isFinished()

public function isFinished(): bool;

Checks if the dispatch loop is finished or has more pendent controllers/tasks to dispatch

setActionName()

public function setActionName( string $actionName ): void;

Sets the action name to be dispatched

setActionSuffix()

public function setActionSuffix( string $actionSuffix ): void;

Sets the default action suffix

setDefaultAction()

public function setDefaultAction( string $actionName ): void;

Sets the default action name

setDefaultNamespace()

public function setDefaultNamespace( string $defaultNamespace ): void;

Sets the default namespace

setHandlerSuffix()

public function setHandlerSuffix( string $handlerSuffix ): void;

Sets the default suffix for the handler

setModuleName()

public function setModuleName( string $moduleName = null ): void;

Sets the module name which the application belongs to

setNamespaceName()

public function setNamespaceName( string $namespaceName ): void;

Sets the namespace which the controller belongs to

setParam()

public function setParam(
    mixed $param,
    mixed $value
): void;

Set a param by its name or numeric index

setParams()

public function setParams( array $params ): void;

Sets action params to be dispatched

Dispatcher\Exception

Class Source on GitHub

Exceptions thrown in Phalcon\Dispatcher/* will use this class

Constants

int EXCEPTION_ACTION_NOT_FOUND = 5
int EXCEPTION_CYCLIC_ROUTING = 1
int EXCEPTION_HANDLER_NOT_FOUND = 2
int EXCEPTION_INVALID_HANDLER = 3
int EXCEPTION_INVALID_PARAMS = 4
int EXCEPTION_NO_DI = 0

Dispatcher\Exceptions\ForwardInInitializeForbidden

Class Source on GitHub

This file is part of the Phalcon Framework.

(c) Phalcon Team team@phalcon.io

For the full copyright and license information, please view the LICENSE.txt file that was distributed with this source code.

Uses Phalcon\Dispatcher\Exception

Method Summary

Methods

Public · 1

__construct()

public function __construct();