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