Alcune note sul bootstrapping dei moduli sotto ZF
Appunti presi dopo la lettura di questo post
In particolare: se ci sono delle funzionalità che devono essere chiamate solo a condizione che il modulo partecipa attivamente nella richiesta, allora conviene metterli all’interno dei plugin di front controller oppure dentro gli action helper.
Se si sceglie la prima strada, un posto buono potrebbe essere rappresentato dai hook routeShutdown() oppure dispatchLoopStartup(). Basta semplicemente verificare che il modulo dentro la richiesta corrisponde a quello su cui deve essere esguita l’azione richiesta.
class Foomodule_Plugin_Layout extends Zend_Controller_Plugin_Abstract
{
public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
{
if ('foomodule' != $request->getModuleName()) {
// If not in this module, return early
return;
}
// Change layout
Zend_Layout::getMvcInstance()->setLayout('foomodule');
}
}
class Foomodule_Boootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initPlugins()
{
$bootstrap = $this->getApplication();
$bootstrap->bootstrap('frontcontroller');
$front = $bootstrap->getResource('frontcontroller');
$front->registerPlugin(new Foomodule_Plugin_Layout());
}
}
Related posts:
- Disabilitare Zend Layout ed il rendering di Zend View in tutto controller
- Visualizzare i moduli caricati su Apache2 sotto Ubuntu 8.04
- Uso di Zend_Route Regex con Zend_Config
- Death Note 28 Kuro-Hana
No Comments