Volevo parlare del Zend Framework da molto tempo, eppure ancora oggi non riesco a trovarlo; cosi allora accenno a questo piccolo post per spiegare una cosa che ho scoperto in questi giorni riprendendo un vecchio progetto in mano basato su ZF 0.9 e aggiornandolo all’ultima versione 1.5.
In ZF è possibile gestire più moduli e mantenere i moduli separati per directory; per settare questa proprietà è possibile usare
$frontController->setControllerDirectory(array(
'default' => '/home/workspace/Scout/ScoutPad/application/default/controllers',
'rubrica' => '/home/workspace/Scout/ScoutPad/application/rubrica/controllers',
'admin' => '/home/workspace/Scout/ScoutPad/application/admin/controllers'
));
ora nel caso vogliate personalizzare il funzionamento MVC di ZF potete anche ridefinire Zend_Controller_Dispatcher_Standard, e settarlo
con
$frontController->setDispatcher($dispatcher);
Se fate questo ricordatevi di farlo prima di settare le directory o di settarle direttamente sul nuovo dispatcher in quanto $frontController->setControllerDirectory non fa altro che chiamare $this->getDispatcher()->setControllerDirectory, se lo settate prima di aver cambiato dispatcher quindi perderete le impostazioni.
Un esempio
$dispatcher = new Zend_Controller_Dispatcher_Standard();
$dispatcher->setControllerDirectory(array(
'default' => '/home/workspace/Scout/ScoutPad/application/default/controllers',
'rubrica' => '/home/workspace/Scout/ScoutPad/application/rubrica/controllers',
'admin' => '/home/workspace/Scout/ScoutPad/application/admin/controllers'
));
$frontController->setDispatcher($dispatcher);