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

como llamar a distintos modules

Estas en el tema de como llamar a distintos modules en el foro de Zend en Foros del Web. Alguien me ayuda con esta parte, es la parte de los modules que trato de acceder a los datos de clienets, pero no puedo. En ...

  #1 (permalink)  
Antiguo 13/07/2011, 12:45
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
como llamar a distintos modules

Alguien me ayuda con esta parte, es la parte de los modules que trato de acceder a los datos de clienets, pero no puedo.

En cuanto a los controladores, es importante aclarar un pequeño cambio, usando esta estructura de directorios llevan como prefijo el nombre del módulo al que pertenecen. Así, el controlador Usuarios del modulo Alta se llamara Alta_UsuariosController. Esto no cuenta para el modulo default, los controladores allí ubicados no llevan ningún prefijo especial.

Desde ya muchas gracias!!
  #2 (permalink)  
Antiguo 13/07/2011, 13:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como llamar a distintos modules

No entiendo tu duda, para llamar a los distintos controladores lo haces por la URL:

http://app/<nombre controller>/<action controller>/
ó
http://app/<nombre modulo>/<nombre controller>/<action controller>/

Saludos.
  #3 (permalink)  
Antiguo 13/07/2011, 18:39
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años
Puntos: 37
Respuesta: como llamar a distintos modules

Cita:
Iniciado por sergiop21 Ver Mensaje
Alguien me ayuda con esta parte, es la parte de los modules que trato de acceder a los datos de clienets, pero no puedo.

En cuanto a los controladores, es importante aclarar un pequeño cambio, usando esta estructura de directorios llevan como prefijo el nombre del módulo al que pertenecen. Así, el controlador Usuarios del modulo Alta se llamara Alta_UsuariosController. Esto no cuenta para el modulo default, los controladores allí ubicados no llevan ningún prefijo especial.

Desde ya muchas gracias!!

Creo que la estas complicando un poco

No hace falta tener un modulo Alta. POdes tener en el modulo default un controller UsuariosController con el metodo altaAction()

Código PHP:
<?php
class UsuariosController extends Zend_Controller_Action 
{
     public function 
agregarAction()
    { }
}
__________________
blog
  #4 (permalink)  
Antiguo 14/07/2011, 06:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

Bien, yo antes lo tenia así pero ahora yo quiero tener todo por modulos separados o sea en modules. como hago para llamar desde las vistas a los modulos?? se entiende???
lo que me confunde es esto Así, el controlador Usuarios del modulo Alta se llamara Alta_UsuariosController.
No el guion bajo.

Muchas gracias
  #5 (permalink)  
Antiguo 14/07/2011, 07:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como llamar a distintos modules

Pues cuando usas modulos en Zend necesitas poner el nombre del modulo antes del nombre del controller:

http://app/<nombre modulo>/<nombre controller>/<action controller>/

Zend lo que busca es un modulo así:
<nombre modulo>_<nombre controller>Controller y ejecuta la <action controller>Action()

y el modulo debe de estar en:
/application/modules/<nombre modulo>/controllers/<nombre controller>Controller.php

Saludos.
  #6 (permalink)  
Antiguo 14/07/2011, 07:47
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

Bien, entendí y me salio, muchas gracias, y otra pregunta que me surgio ahora, para el models es igual???
  #7 (permalink)  
Antiguo 14/07/2011, 07:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como llamar a distintos modules

Sí, puedes tener tus modelos en la carpeta modules/models, así como tus forms también.

Saludos.
  #8 (permalink)  
Antiguo 14/07/2011, 08:09
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

o sea a lo que me refiero es que si tengo que colocar el nombre del modulo antes??

Muchas gracias por la ayuda!!!1
  #9 (permalink)  
Antiguo 14/07/2011, 08:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como llamar a distintos modules

Sí, tal como en los Forms y Controllers todos deben de tener el nombre del modulo antes.

Saludos.
  #10 (permalink)  
Antiguo 14/07/2011, 08:43
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

me esta constando un poco esto.

me sale el siguiente error
Fatal error: Class 'Clientes_Application_Model_ClientesMapper' not found in /var/www/qaz/application/modules/Clientes/controllers/ClientesController.php on line 46

y el codigo ese es :

Código PHP:
  public function find($idClientes_Application_Model_Clientes $clientes) {
        
$result $this->getDbTable()->find($id);
        if (
== count($result)) {
            return;
        } 
  #11 (permalink)  
Antiguo 14/07/2011, 10:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como llamar a distintos modules

La clase se debería llamar "Clientes_Model_ClientesMapper", "Application" es el nombre del modulo por defecto.

Saludos.
  #12 (permalink)  
Antiguo 15/07/2011, 07:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
No puedo crear un db-table en module

Buenas a todos, no puedo crear un db-table dentro de un module,
yo coloco zf create db-table clientes clientes
o sea clientes de db y en el module clientes.

esta bien eso o como es???? desde ya muchas gracias.
  #13 (permalink)  
Antiguo 15/07/2011, 08:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No puedo crear un db-table en module

¿Que error te da?
  #14 (permalink)  
Antiguo 15/07/2011, 08:07
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: No puedo crear un db-table en module

Estas seguro que no te lo creo ?, mira dentro de application/models, si haces zf create db-table ? vas a ver los parametros que espera y el orden en el que los espera.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #15 (permalink)  
Antiguo 15/07/2011, 08:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No puedo crear un db-table en module

También viendo la documentación, no dice que pueda crear db-tables en modulos.

Saludos.
  #16 (permalink)  
Antiguo 15/07/2011, 08:13
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: No puedo crear un db-table en module

Es algo relativamente normal que omitan data en la doc..., poder se puede, algo así:

Código Shell:
Ver original
  1. zf create db-table name actual-table-name module force-overwrite
  2. zf create db-table.from-database module force-overwrite
__________________
http://es.phptherightway.com/
thats us riders :)
  #17 (permalink)  
Antiguo 15/07/2011, 08:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: No puedo crear un db-table en module

Cierto, yo me acuerdo que había usado algo así el otro día pero vengo un poco dormido hoy
  #18 (permalink)  
Antiguo 15/07/2011, 08:59
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: No puedo crear un db-table en module

con coloco zf me muestra como crear db-table, dentro de los modulos, pero no me lo crea, me los coloca dentro de models.

tiene algo que ver el archivo zfproject.xml????
  #19 (permalink)  
Antiguo 15/07/2011, 09:07
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
modules

Una consulta cuando se trabaja con modules hay que declarar en las application cada module????, Disculpen las molestias, lo que pasas es que soy novato en este tema y leo pero algunas cosas no me quedan claro. Muchas gracias
  #20 (permalink)  
Antiguo 15/07/2011, 09:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: modules

¿A que te refieres con declarar en las application?
  #21 (permalink)  
Antiguo 15/07/2011, 09:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: modules

con esto ya es suficiente para que funcione los modules

resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
  #22 (permalink)  
Antiguo 15/07/2011, 09:29
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

Me sigue saliendo el mismo error como que no lo encuentra ese archivo, hay algo mal configurado, lo hice tal cual??. una consula se puede cerrar un tema, que yo hice por que seguramente voy a terminar haciendo la misma pregunta en los 2 temas. desde ya muchas gracias.
  #23 (permalink)  
Antiguo 15/07/2011, 10:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: modules

También tienes que activarlos en el Bootstrap usando la directiva:
Código:
resources.modules[] =
En tu application.ini.

Saludos.
  #24 (permalink)  
Antiguo 15/07/2011, 10:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como llamar a distintos modules

¿Creaste el Module Bootstrap para crear el autoloader?.

Saludos.
  #25 (permalink)  
Antiguo 15/07/2011, 18:32
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

mmmn no, me podrias ayudar como se hace???
Desde ya muchas gracias.
  #26 (permalink)  
Antiguo 15/07/2011, 19:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: como llamar a distintos modules

Debes crear un Bootstrap en la carpeta base de cada Module para cargar los recursos basicos del modulo, un ejemplo para un modulo 'admin':
Código PHP:
Ver original
  1. class Admin_Bootstrap extends Zend_Application_Module_Bootstrap
  2. {
  3. }

y así por cada modulo para crear los Autoloaders necesarios.

Saludos.
  #27 (permalink)  
Antiguo 16/07/2011, 07:12
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

Buenos días, Ya pude Resolver un error, cree es Bootstrap en el modulo
Código PHP:
class Qclientes_Bootstrap extends Zend_Application_Module_Bootstrap
{
    protected function 
_initAutoload()
{
      
$modelLoader = new Zend_Application_Module_Autoloader(array(
                                          
'namespace' => 'Qclientes',
                                          
'basePath'  => APPLICATION_PATH '/modules/Qclientes',
                                         )
              );
    } 
eso esta bien???

pero ahora me sale el siguiente error:

Código HTML:
Fatal error: Class 'Qclientes_Model_DbTable_Clientes' not found in /var/www/qaz/application/modules/Qclientes/models/QclientesMapper.php on line 9
y en esa linea tengo esto:
Código PHP:
   $dbTable =  new $dbTable(); 
Muchas gracias
  #28 (permalink)  
Antiguo 16/07/2011, 07:22
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: como llamar a distintos modules

El método _initAutoload no es necesario, eso es lo que hace justamente el Module Bootstrap, si te sigue dando error al quitar el método, comprueba que los ficheros existan en el path y que el nombre de las clases sea correcto.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #29 (permalink)  
Antiguo 16/07/2011, 07:24
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años
Puntos: 37
Respuesta: como llamar a distintos modules

Cita:
Iniciado por sergiop21 Ver Mensaje
Buenos días, Ya pude Resolver un error, cree es Bootstrap en el modulo
Código PHP:
class Qclientes_Bootstrap extends Zend_Application_Module_Bootstrap
{
    protected function 
_initAutoload()
{
      
$modelLoader = new Zend_Application_Module_Autoloader(array(
                                          
'namespace' => 'Qclientes',
                                          
'basePath'  => APPLICATION_PATH '/modules/Qclientes',
                                         )
              );
    } 
eso esta bien???

pero ahora me sale el siguiente error:

Código HTML:
Fatal error: Class 'Qclientes_Model_DbTable_Clientes' not found in /var/www/qaz/application/modules/Qclientes/models/QclientesMapper.php on line 9
y en esa linea tengo esto:
Código PHP:
   $dbTable =  new $dbTable(); 
Muchas gracias
Si te tira errores de not found cunado queres instanciar un modelo o una vista es porque no agregaste ese directorio a los directorios posibles donde buscarlo, o escribiste mal el nombre de la clase


Proba cambiando el nombre de la clase a Qclientes_Models_DbTable_Clientes y proba instanciarlo con new Qclientes_Models_DbTable_Clientes()
__________________
blog
  #30 (permalink)  
Antiguo 16/07/2011, 07:29
 
Fecha de Ingreso: diciembre-2008
Mensajes: 805
Antigüedad: 15 años, 4 meses
Puntos: 20
Respuesta: como llamar a distintos modules

que dejo dentro del Bootstrap, por que lo quito todo el metodo y me sigue saliendo el error, que debe ser que no se puede conectar con la db??

Etiquetas: controller, distintos, frameworks-y-php-orientado-a-objetos, module
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 07:49.