Como activar los helpers con Zend_Application

6 Comentarios

Últimamente le encuentro más pegas que ventajas al modulo Zend_Application que incorpora la versión 1.9 del Zend Framework. Esta vez se trata de los helpers.

El primer problema lo encontramos a la hora de construir la aplicación con Zend_Tool, pues este no crear la carpeta pertinente. Y esto nos lleva al segundo problema y es que Zend_Tool no registra el lugar donde serán llamados los helpers.

Entonces lo primero que hemos de hacer es crear la carpeta helpers. ¿Dónde? En principio donde queramos. Lo lógico sería crearla dentro de la carpeta controllers, pero si usamos el Zend Studio cuando queramos crear un helper nos  lo pondrá en la raíz porque el lugar por defecto para crear los helpers es dentro de application es decir: /application/helpers.

Lo segundo que hemos de hacer es añadir al bootstrap la siguiente linea (teniendo en cuenta que existe la constante APPLICATION_PATH que es la ruta de nuestra aplicación y que queremos guardar los helpers en /application/helpers):

 Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH .'/helpers'); 

 

Pero existe otro problema aún si usamos diferentes módulos dentro de nuestra aplicación. Seguramente nos interesará que cada módulo tenga sus propios helpers

Para ello debemos hacer algo parecido a lo que vimos en un post anterior como hacer un layout para cada modulo

Necesitaremos crear un plugin:

 //My/Controller/Action/helpers.php class My_Controller_Action_helpers extends Zend_Controller_plugin_Abstract{ public function preDispatch(Zend_Controller_Request_Abstract $request){ $config = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getOptions(); $moduleName = $request->getModuleName(); Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/modules/' . $moduleName . '/helpers'); } } 

y luego registrarlo en el bootstrap:

 protected function _initPlugins(){ $this->bootstrap('frontController'); $plugin = new My_Controller_Action_Helpers(); $this->frontController->registerPlugin($plugin); Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/helpers'); } 

En mi caso para no crear dos plugins tan solo he añadido la linea de llamada a Zend_Controller_Action_HelperBroker al plugin que ya había creado en el post anterior mencionado.

Buenos espero que os sea útil.

6 response to Como activar los helpers con Zend_Application

  1. Javi Moya

    Ya me lo esperaba, blog de mierda con apenas comentarios y estos deben ser moderados, normal, se cree el rey el novato este…

    Atrevete a no censurarme y colgar ambos comentarios como Dios manda y responde como harian los grandes bloggers….

    anda que… puto niñato de los cojones…

  2. admin

    He aprobado tus mensajes. Es la mejor forma de que alguien vea la falta de respeto que tienes y lo ligero que eres de palabra.
    ¿Blog de mierda con apenas comentarios? No pretendo hacerme ni rico ni famoso, le dedico el tiempo que puedo que es muy escaso.
    ¿se cree el rey el novato este…? Para nada, es solo que con tu falta de respeto tu te crees mejor que nadie.
    ¿Puto niñato de los cojones? Se me ocurren muchos insultos pero dejaré que te los digas a ti mismo.
    ¿burda copia del blog de Anieto2k…? De copia tiene lo justo, pues el blog de Anieto2k lo admiro y lo sigo y es para mi una inspiración.

    Gracias por tu aportación y el tiempo que me has dedicado

  3. David Cardona

    Admin, no te preocupes por personas enfermas mentalmente fanaticos y totalmente carentes de etica y cultura como el señor Javi Montoya.
    Me pareceió excelente tu respuesta a este señor. “La cobardia de los insultos” lo llamaría yo. Esta bien que lo publiques el único que se hace daño es el, pues una persona con almenos una neurona puede hacerse una idea no muy buena de este señor. Es mas si este señor algún dia madura deberia escribirte un post rogandote que lo quites.

    Ademas no veo porque ese señor dice que tu blog es una copia de Anieto2K, personalmente no veo nada parecido.

    Te felicito por tu blog, recien lo encontré hoy y me ha parecido excelente ademas del contenido el diseño esta fantastico. Sigue adelante!! un saludo

  4. admin

    Hola David!

    Muchas gracias por tu comentario, me anima muchisimo.
    Estoy preparando nuevos contenidos sobre zend, espero verte pronto por aquí otra vez.

    ¡Gracias otra vez!

  5. David Cardona

    Hola Admin!! claro que si lo tengo agregado a mi delicious!! lo revisaré constantemente.

    te agradezco tu tiempo

    un saludo