Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Ayuda con mvc

Estas en el tema de Ayuda con mvc en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas, en mi site tengo unos grupos y quiero que las urls tengan la siguiente jerarquia: /grupos/{id_grupo}/ /grupos/{id_grupo}/noticias /grupos/{id_grupo}/galeria /grupos/{id_grupo}/eventos /grupos/{id_grupo}/eventos/{id_evento} /grupos/{id_grupo}/eventos/{id_evento}/noticias /grupos/{id_grupo}/eventos/{id_evento}/galeria /grupos/{id_grupo}/eventos/{id_evento}/noticias Como ...
  #1 (permalink)  
Antiguo 04/01/2011, 05:07
 
Fecha de Ingreso: diciembre-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Ayuda con mvc

Buenas, en mi site tengo unos grupos y quiero que las urls tengan la siguiente jerarquia:

/grupos/{id_grupo}/
/grupos/{id_grupo}/noticias
/grupos/{id_grupo}/galeria
/grupos/{id_grupo}/eventos
/grupos/{id_grupo}/eventos/{id_evento}
/grupos/{id_grupo}/eventos/{id_evento}/noticias
/grupos/{id_grupo}/eventos/{id_evento}/galeria
/grupos/{id_grupo}/eventos/{id_evento}/noticias

Como veis un grupo puede tener noticias, galeria, etc. y a su vez un evento que esta en un grupo también puede tener noticias, galeria, etc.

¿Como enfocaríais esto para implementarlo en un framework sin especificar uno en concreto?, es decir, me gustaría alguna orientacion sobre que modulos tendria, controladores, etc.

Gracias.
  #2 (permalink)  
Antiguo 04/01/2011, 10:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Ayuda con mvc

Tu duda no tiene sentido, si bien sabes el patrón MVC, es un patrón de diseño, la estructura de las URLs es no tiene nada que ver con MVC, ya que la parte del Controller (que es la encargada de recibir los valores de entrada del usuario) puede aceptar input de cualquier tipo.

Tu duda mas bien tiene que ser atacada por el Framework que estes usando, ya que el Framework que uses debe de tener la capacidad de poder ajustar las URLs a tus necesidades, y poder mapearlas a los controllers que necesites.

Saludos.
  #3 (permalink)  
Antiguo 04/01/2011, 15:21
 
Fecha de Ingreso: diciembre-2010
Mensajes: 12
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda con mvc

bueno , no expresé bien mi pregunta, con el enrutado de momento me aclaro, las urls las puse para que se viera como estaban estructurados los grupos.

Cuando accedo a /grupos/{id_grupo}/eventos/{id_evento}, enruto al controlador GrupoEventosController.php, internamente es algo como

GrupoEventosController.php?id_grupo=x&idevento=y.. .

Tengo varios controladores para gestionar los grupos

GrupoEventosController.php
GrupoForosController.php
GrupoGaleriaController.php
etc...

y son cerca de 15 secciones las que componen los grupos.

Cuando se inicia la instancia de GrupoEventosController.php se llama a un metodo init() que obtiene datos del grupo.

public function init(){

$grupo = FGrupo::getGrupoById($request->getParameter('id_grupo'));

//Mas operaciones para obtener permisos del grupo, configuracion, etc.

}

Mi duda es, como hacer para no tener que repetir el codigo de obtención de los datos del grupo en cada controlador.

Gracias.
  #4 (permalink)  
Antiguo 04/01/2011, 15:45
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 11 meses
Puntos: 845
Respuesta: Ayuda con mvc

Cita:
Iniciado por xavicai Ver Mensaje
...
Mi duda es, como hacer para no tener que repetir el codigo de obtención de los datos del grupo en cada controlador.
Lo mas simple seria herencia, el resto de opciones depende del FW que estes utilizando, por ejemplo en Zend podrias:
  1. Crear un action helper.
  2. Crear un plugin que intercepte el request e inyecte el grupo en el FrontController.
  3. Crear un plugin que intercepte el request y guarde el grupo en el Registry.

Saludos.

Última edición por masterpuppet; 04/01/2011 a las 16:05

Etiquetas: mvc
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 19:00.