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

Zend framework - sub módulos

Estas en el tema de Zend framework - sub módulos en el foro de Zend en Foros del Web. Hola, estoy conociendo Zend framework, me preguntaba si existe la posibilidad de implementar una estructura con sub modulos/controllers y que en la url se vean ...
  #1 (permalink)  
Antiguo 24/05/2009, 19:55
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
Zend framework - sub módulos

Hola, estoy conociendo Zend framework, me preguntaba si existe la posibilidad de implementar una estructura con sub modulos/controllers y que en la url se vean varios niveles de profundidad.

algo como:
dominio.com/noticias/deportes/ver/id/3/,
dominio.com/noticias/politica/ver/id/6

agradezco si alguien tiene alguna orientación para el tema.
Saludos
  #2 (permalink)  
Antiguo 25/05/2009, 10:45
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 9 meses
Puntos: 45
Respuesta: Zend framework - sub módulos

Aqui Tienes una guía sobre eso
http://framework.zend.com/manual/en/...ar.directories

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #3 (permalink)  
Antiguo 25/05/2009, 14:11
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
Respuesta: Zend framework - sub módulos

Hola Genetix, gracias, estoy leyendo sobre el tema Router.

en el ejemplo en que estoy trabajando tengo una tabla Noticias y un módulo Noticias con un controlador Noticias_VerController,,

public function indexAction()
{
$id = (int) $this->getRequest()->getParam('id', 0);
.....
}
entonces tengo una página /public/noticias/ver/index/id/1/

existe alguna manera de que la url cambie por

/public/noticias/ver/id/1/

ahora si escribo esta ultima url tengo este error: Action "id" does not exist
  #4 (permalink)  
Antiguo 25/05/2009, 15:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend framework - sub módulos

En ese caso tu controller dentro del Modulo Noticias deberia de ser IndexController y ya una accion dentro que se llame verAction para que te quede el URL como quieres.

Saludos.
  #5 (permalink)  
Antiguo 25/05/2009, 15:36
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
Respuesta: Zend framework - sub módulos

Hola GatorV, gracias,,

de la manera que tu dices, el url quedaría asi

public/noticias/index/ver/id/1/

es mas o menos lo mismo que antes,,, si le quito el 'index' a la url, tengo el mismo mensaje ('Action "id" does not exist ')

saludos
  #6 (permalink)  
Antiguo 26/05/2009, 07:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend framework - sub módulos

Mmm en ese caso ya te tocaria "tocar" el router y agregar una ruta, en este caso esa de noticias/ver/id/1 para que te haga el route hacia tu module, controller y action.

Saludos.
  #7 (permalink)  
Antiguo 26/05/2009, 17:44
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
Respuesta: Zend framework - sub módulos

No logro entender el Router

agregué esto en Bootstrap.php pero no funciona

$router = $frontController->getRouter();
$router->addRoute(
'noticias',
new Zend_Controller_Router_Route('noticias/ver/:id',
array('controller' => 'Noticias_IndexController',
'action' => 'verAction'))
);

he buscado en google algun ejemplo pero sin exito...

Saludos
  #8 (permalink)  
Antiguo 26/05/2009, 20:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend framework - sub módulos

Código php:
Ver original
  1. $router = $frontController->getRouter();
  2. $router->addRoute(
  3.      'noticias',
  4.      new Zend_Controller_Router_Route('noticias/ver/:id',
  5.             array('controller' => 'index',
  6.                      'action' => 'verAction',
  7.                      'module' => 'news'
  8.              )
  9.       )
  10. );

Prueba así.

Saludos.
  #9 (permalink)  
Antiguo 27/05/2009, 08:38
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
Respuesta: Zend framework - sub módulos

no hay caso, debe estar en otro lado el error

bueno, muchas gracias Gator
saludos
  #10 (permalink)  
Antiguo 27/05/2009, 08:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend framework - sub módulos

Una disculpa debería ser así:
Código php:
Ver original
  1. $router = $frontController->getRouter();
  2. $router->addRoute(
  3.      'noticias',
  4.      new Zend_Controller_Router_Route('noticias/ver/:id',
  5.             array('controller' => 'index',
  6.                      'action' => 'ver',
  7.                      'module' => 'news'
  8.              )
  9.       )
  10. );

Saludos.
  #11 (permalink)  
Antiguo 27/05/2009, 08:53
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
Respuesta: Zend framework - sub módulos

cambié 'news' por 'noticias'

en la url /public/noticias/index/ver/id/1/

quito el index/ , pero da el mismo error...
  #12 (permalink)  
Antiguo 27/05/2009, 14:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend framework - sub módulos

Si ya tu ruta la agregaste asi, tu url es

http://localhost/noticias/ver/1

No:

http://localhost/noticias/ver/id/1

En tu ruta que agregaste no agregaste el id como parte de la ruta.

Saludos.
  #13 (permalink)  
Antiguo 27/05/2009, 14:09
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
Respuesta: Zend framework - sub módulos

tengo esto:

$router->addRoute(
'noticias',
new Zend_Controller_Router_Route('noticias/ver/:id',
array('controller' => 'index',
'action' => 'ver',
'module' => 'noticias'
)
)
);

pero no puedo ver la pagina de ninguna manera

http://localhost/proyecto/public/noticias/ver/1/ , asi tampoco

sera algun tema de configuracion?

en el htaccess tengo esto

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
  #14 (permalink)  
Antiguo 27/05/2009, 16:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend framework - sub módulos

Cuando lo haces con /proyecto/public te sirven las demás rutas?

Saludos.
  #15 (permalink)  
Antiguo 27/05/2009, 16:22
Avatar de punk567  
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 265
Antigüedad: 18 años, 1 mes
Puntos: 5
si esta ruta (que es la quiero configurar) funciona bien

http://localhost/proyecto/public/not...ndex/ver/id/1/

pero

http://localhost/proyecto/public/noticias/ver/id/1/
o
http://localhost/proyecto/public/noticias/ver/1/

dan el mismo mensaje : "Action 'id' does not exist" ó "Action '1' does not exist" and was not trapped in __call()

Saludos

Bueno con esta me recibo

tenía esta línea

$frontController->addModuleDirectory(self::getRootApp() . '/modules') ->throwExceptions(true)->dispatch();

antes del router, la moví para abajo y funciona bien

Saludos, muchas gracias Gator

Última edición por GatorV; 28/05/2009 a las 07:27
  #16 (permalink)  
Antiguo 28/05/2009, 07:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend framework - sub módulos

Ah pues, si, las rutas se tienen que agregar antes de hacer el dispatch del request, o de lo contrario el controller no las encuentra.

Saludos.
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 08:57.