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:

  1. Disabilitare Zend Layout ed il rendering di Zend View in tutto controller
  2. Visualizzare i moduli caricati su Apache2 sotto Ubuntu 8.04
  3. Uso di Zend_Route Regex con Zend_Config
  4. Death Note 28 Kuro-Hana

About The Author

No Comments

Leave A Reply