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

Como crear un objeto nuevo??

Estas en el tema de Como crear un objeto nuevo?? en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola. Estoy creando un proyecto en con zend framework en el que me llegara un xml, de el obtendré los datos y tendré que hacer ...
  #1 (permalink)  
Antiguo 07/06/2012, 08:32
 
Fecha de Ingreso: agosto-2007
Mensajes: 19
Antigüedad: 16 años, 8 meses
Puntos: 0
Como crear un objeto nuevo??

Hola.

Estoy creando un proyecto en con zend framework en el que me llegara un xml, de el obtendré los datos y tendré que hacer una búsqueda de unos parámetros dados y realizar unas operaciones con ellos.

Para ello tengo un controller en el que parseo el xml, creo un objeto donde voy introduciendo dichos datos y que luego introduzco en un array, por lo que finalmente tengo un array de objetos.

También tengo otro controller donde hago la búsqueda del objeto que se me especifique por los parámetros dados y aquí es donde tengo el problema. Cuando desde este controller intento crear un objeto del tipo parseXML(controller que parsea el xml) para poder acceder al método que me devuelve el array de objetos me da un error:

PHP Catchable fatal error: Argument 1 passed to Zend_Controller_Action::__construct() must be an instance of Zend_Controller_Request_Abstract, none given, called in /var/www/proyecto/application/controllers/BusquedaController.php on line 22 and defined in /var/www/proyecto/library/Zend/Controller/Action.php on line 127

Sin embargo cuando desde el controller parseoXML creo un objeto del tipo cuenta( que es una clase de php) no tengo ningún problema me lo crea correctamente, por lo que no se si es que no se puede instanciar un controller y tendría que ser una clase de php normal y corriente.

Soy nuevo en el tema y no tengo mucha experiencia, por lo que si alguien me ilustra un poco me vendría muy bien. Gracias
  #2 (permalink)  
Antiguo 07/06/2012, 09:49
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como crear un objeto nuevo??

Tienes que pensar más a fondo de lo que es MVC, todas esas tareas que expones no van en el controlador, van en el modelo, así puedes instanciar tu modelo desde cualquier controlador sin problemas.

El controlador recuerda solo afecta al modelo en base al input del usuario, más todas las reglas de negocio (parseo del xml, etc.) pertenecen al modelo.

Saludos.
  #3 (permalink)  
Antiguo 07/06/2012, 09:57
 
Fecha de Ingreso: agosto-2007
Mensajes: 19
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: Como crear un objeto nuevo??

Ok gracias por la respuesta.

¿Podrías aclararme que se debería de poner en controllers y que en models? No termino de entenderlo.

Se que los modelos van relacionado con los datos(conexión bd, clases para almacenar datos, etc) pero los controllers no los termino de entender. ¿Qué sería la parte donde tendría que hacer las operaciones con esos datos que recojo, por ejemplo?
  #4 (permalink)  
Antiguo 07/06/2012, 10:01
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Como crear un objeto nuevo??

En el modelo, el modelo no solamente es la base de datos, al contrario, el modelo se puede dividir en "n" capas, el modelo es donde esta toda la lógica del negocio, es donde haces todos los procesos.

En este caso justamente ya lo tienes dividido como lo explicaste, tienes un controller A que recoge (input) un XML, este lo manda al modelo para ser procesado y levanta X objetos y datos, los almacena en donde sea (un file, session, database, etc.).

Luego tienes un controller B, donde recoges parámetros de búsqueda (input) los mandas al modelo, y regresas un resultado que asignas a la vista.

Te recomiendo leas lo siguiente: http://weblog.jamisbuck.org/2006/10/...ller-fat-model

Te hace ver más claramente la separación, el controlador solo debe de recoger parámetros y afectar al modelo y renderar una vista, es todo lo el proceso, tu "grasa" de tu aplicación es el modelo y la vista.

Saludos.

Etiquetas: zend
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 23:11.