Foros del Web » Programando para Internet » PHP » Zend »

Obtener controlador en un ViewHelper

Estas en el tema de Obtener controlador en un ViewHelper en el foro de Zend en Foros del Web. Hola. Estoy desarrollando una aplicación con Zend Framework y se me plantea lo siguiente. Para el menú de la aplicación utilizo un ViewHelper que me ...
  #1 (permalink)  
Antiguo 30/01/2011, 19:46
 
Fecha de Ingreso: octubre-2010
Ubicación: Asturias
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
Pregunta Obtener controlador en un ViewHelper

Hola.

Estoy desarrollando una aplicación con Zend Framework y se me plantea lo siguiente.

Para el menú de la aplicación utilizo un ViewHelper que me retorna, según que sección de la página esté visitando (o controlador esté utilizando), un menú u otro.
Para ello desde el layout llamo al método
Código PHP:
 $this->menuHelper()->getMenu($controller
, donde $controller es el controlador que se ha ejecutado.

La manera que tengo de hacerlo es escribir en cada controlador un parámetro en la vista con el nombre del mismo:

Código PHP:
$this->view->controller $this->_request->getControllerName() 
Pero esto lo tengo que escribir en cada controlador y lo veo demasiado repetitivo.

¿Conoceis alguna opción más limpia para hacerlo?

Gracias de antemano.

Pritok.
  #2 (permalink)  
Antiguo 31/01/2011, 03:29
 
Fecha de Ingreso: octubre-2010
Ubicación: Asturias
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Obtener controlador en un ViewHelper

Creo que he encontrado otra solución:

Desde el layout, cuando envío al helper la petición de que me retorne el menú, hago lo siguiente:

Código PHP:
echo $this->menuHelper()->getMenuItems($this->url()); 
De esta manera obtengo la URL completa, y con un explode() en el helper puedo manejar por separado controlador, accion e incluso variables.

Usando esto no estoy violando los parámetros MVC, no?
  #3 (permalink)  
Antiguo 31/01/2011, 05:51
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Obtener controlador en un ViewHelper

A través del FrontController podes acceder al request, podrias utilizar algo de esto en tu ViewHelper:

Código PHP:
Ver original
  1. //MenuHelper
  2. Zend_Controller_Front::getInstance()->getRequest();
  3. Zend_Controller_Front::getInstance()->getRequest()->getControllerName();

con respecto a tu pregunta, pasar un parámetro a un view helper no "rompe" el MVC.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 31/01/2011, 06:57
 
Fecha de Ingreso: octubre-2010
Ubicación: Asturias
Mensajes: 14
Antigüedad: 13 años, 6 meses
Puntos: 0
Respuesta: Obtener controlador en un ViewHelper

Muchas gracias masterpuppet

Saludos.

Etiquetas: controller, framework, viewhelper
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:52.