Moduly

Moduly slouží k oddělení více sekcí – částí aplikace. Lze je přirovnat ke jmenným prostorům. Moduly nastavujeme opět routingem:

$router->connect('<:module admin>/<:controller>/<:action>', array(), true, true);

Dále je nutné vytvořit controller. Cesta k němu je ale jiná, než normálně. Stejně tak jeho jméno. Pokud se náš modul jmenuje admin. Pak cesta bude /app/controllers/admin/posts-controller.php. Název třídy je se skládá z modulů oddělených podtržítkem, následuje název třídy a suffix Controller.

class Admin_PostsController extends Controller
{

}

I cesta k template je jiná: /app/views/admin-module/posts/index.phtml. Jednotlivé složky modulů se zanořují postupně do sebe.

Pokud není šablona v modulu nalezena, zpracovávají se postupně šablony danho jména nadřazených modulů. Toto chování v controller zakážete pomocí členské proměnné $templatePathReduction.

class AppController extends Controller
{
    protected $templatePathReduction = false;
}