Sections

Abstract Class Phalcon\Dispatcher\AbstractDispatcher

Source on GitHub

Namespace Phalcon\Dispatcher   Uses Exception, Phalcon\DiInterface, Phalcon\Di\InjectionAwareInterface, Phalcon\Dispatcher\DispatcherInterface, Phalcon\Dispatcher\Exception, Phalcon\Events\EventsAwareInterface, Phalcon\Events\ManagerInterface, Phalcon\Filter\FilterInterface, Phalcon\Mvc\Model\Binder, Phalcon\Mvc\Model\BinderInterface   Implements DispatcherInterface, InjectionAwareInterface, 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

//
protected activeHandler;

/**
 * @var array
 */
protected activeMethodMap;

//
protected actionName;

/**
 * @var string
 */
protected actionSuffix = Action;

/**
 * @var array
 */
protected camelCaseMap;

//
protected container;

/**
 * @var string
 */
protected defaultAction = ;

//
protected defaultNamespace;

//
protected defaultHandler;

/**
 * @var array
 */
protected handlerHashes;

//
protected handlerName;

/**
 * @var string
 */
protected handlerSuffix = ;

//
protected eventsManager;

/**
 * @var bool
 */
protected finished = false;

/**
 * @var bool
 */
protected forwarded = false;

/**
 * @var bool
 */
protected isControllerInitialize = false;

//
protected lastHandler;

//
protected modelBinder;

/**
 * @var bool
 */
protected modelBinding = false;

//
protected moduleName;

//
protected namespaceName;

/**
 * @var array
 */
protected params;

//
protected previousActionName;

//
protected previousHandlerName;

//
protected previousNamespaceName;

//
protected returnedValue;

Methods

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

//

public function dispatch(): object | bool;

Process the results of the router by calling into the appropriate controller action(s) including any routing data or injected parameters.

@return object false Returns the dispatched handler class (the Controller for Mvc dispatching or a Task for CLI dispatching) or false if an exception occurred and the operation was stopped by returning false in the exception handler.

@throws \Exception if any uncaught or unhandled exception occurs during the dispatcher process.

public function forward( array $forward ): void;

Forwards the execution flow to another controller/action.

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

@throws \Phalcon\Exception

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 getDI(): DiInterface;

Returns the internal dependency injector

public function getDefaultNamespace(): string;

Returns the default namespace

public function getEventsManager(): ManagerInterface;

Returns the internal event manager

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;

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

@param mixed param @param string array filters @param mixed defaultValue @return mixed
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 setDI( DiInterface $container ): void;

Sets the dependency injector

public function setDefaultAction( string $actionName ): void;

Sets the default action name

public function setDefaultNamespace( string $namespaceName ): void;

Sets the default namespace

public function setEventsManager( ManagerInterface $eventsManager ): void;

Sets the events manager

public function setHandlerSuffix( string $handlerSuffix ): void;

Sets the default suffix for the handler

public function setModelBinder( BinderInterface $modelBinder, mixed $cache = null ): Dispatcher;

Enable model binding during dispatch

$di->set(
    'dispatcher',
    function() {
        $dispatcher = new Dispatcher();

        $dispatcher->setModelBinder(
            new Binder(),
            'cache'
        );

        return $dispatcher;
    }
);
public function setModuleName( string $moduleName ): 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

public function setParams( array $params ): void;

Sets action params to be dispatched

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(): object | 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

@param string array filters
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 ): 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

@param mixed value

public function setParams( array $params ): void;

Sets action params to be dispatched

Class Phalcon\Dispatcher\Exception

Source on GitHub

Namespace Phalcon\Dispatcher   Extends \Phalcon\Exception

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

Constants

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;