Jet\MVC_Controller_Router
Po té co jsme si vysvětlili základní smysl a princip mikrorouteru, tak je čas kouknout podrobně na třídu Jet\MVC_Controller_Router a také na její interface Jet\MVC_Controller_Router_Interface.
Přehled metod
Metoda | Význam |
---|---|
public __construct( MVC_Controller $controller ) |
Konstruktoru je nutné předat instanci kontroleru, kterému bude mikrorouter sloužit. Vazba je tedy vzájemná. Kontroler má držet instanci mikrorouteru a mikrorouter drží instanci kontroleru. |
public addAction( string $controller_action_name, string $module_action_name = '' ): MVC_Controller_Router_Action |
Založí akci a následně vrátí její instanci. Akce je tedy založena, ale není nastavena - minimálně je nutné definovat resolver. Podívejme se na parametry, protože tam již naleznete cestu jak ověřovat oprávnění.
|
public getActions( ): MVC_Controller_Router_Action[] |
Vrátí seznam všech definovaných akcí mikrorouteru. |
public getAction( string $controller_action_name ): MVC_Controller_Router_Action |
Vrátí definovanou akci. Akce musí existovat. Metoda neověřuje zda je definována. To je záměr, aby při požadavku na neexistující akci raději aplikace "spadla" a nedostala se do nedefinovaného stavu. Definice akcí a jejich použití musí být konzistentní. |
public action( string $action_name ): MVC_Controller_Router_Action |
Jedná se o alias metody getAction pro kratší zápis. |
public setDefaultAction( string $controller_action_name, string $module_action_name = '' ): MVC_Controller_Router_Action |
Mikrorouter umožňuje definovat výchozí akci. Tedy takovou akci, která je platná a aplikována když žádná z definovaných akcí nebyla rozpoznána jako relevantní. |
public getDefaultAction( ): MVC_Controller_Router_Action |
Vrátí instanci výchozí akce. |
public getController( ): MVC_Controller |
Vrátí instanci kontroleru ke kterému mikrorouter náleží. |
public resolve( ): bool|string |
Tato metoda provede vyhodnocení. Metoda vrací buď bool hodnotu false, nebo název akce, která má být provedena (tedy string). Řekněme si něco o algoritmu vyhodnocení:
|
A pro úplnost prosím koukněte na třídu MVC_Controller_Router_Action.