Zend Framework – little tip


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