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

Aplicaciones anidadas (Padre - Hijo)

Estas en el tema de Aplicaciones anidadas (Padre - Hijo) en el foro de Zend en Foros del Web. Buenas de nuevo foreros. No he encontrado referencias al tema por el que ahora les voy a preguntar, a ver si pueden ayudarme. Soy nuevo ...
  #1 (permalink)  
Antiguo 18/11/2010, 02:34
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Pregunta Aplicaciones anidadas (Padre - Hijo)

Buenas de nuevo foreros.

No he encontrado referencias al tema por el que ahora les voy a preguntar, a ver si pueden ayudarme. Soy nuevo en Zend, pero tengo experiencia desde hace años de trabajar con Fusebox y me gustaria leer sobre como anidar aplicaciones en Zend.

Con Fusebox una práctica habitual era anidar aplicaciones de forma que una app1 (padre) pueda albergar apps hijas. Por ejemplo:

App1 es un Panel con Login y usuarios, y toda su funcionalidad. Tiene los layouts que montan toda la estructura. El interior se deja para que se muestre el proceso de aplicaciones hijas como puedan ser una galeria multimedia para subir archivos, un gestor artículos de noticias etc. Es una representación bastante buena, ya que una plicación hija hereda variables y ejecuta comportamientos (sessiones por ejemplo) de la aplicación padre que la precede.

Espero me entiendan. Bueno, pues no sé exactamente si esto es habitual en Zend Framework y si hay documentación para abordarlo.

Gracias por la atención y un saludo.
  #2 (permalink)  
Antiguo 18/11/2010, 03:34
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: Aplicaciones anidadas (Padre - Hijo)

Zend tiene el concepto de modulos, cada modulo tiene sus controladores, modelos, vistas, etc..., un modulo podria ser "login" que manipulara toda la logica de login(login, logout, password recovery, etc...), otro podria ser "profile" que manipulara todo lo relacionado a la cuenta del usuario.
Te invito a que googles sobre el tema hay mucha info.

Salu2.
  #3 (permalink)  
Antiguo 19/11/2010, 02:26
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Masterpuppet, gracias por tu ayuda.
He googleado, y he visto artículos sobre el concepto de módulos en Zend. Esto me viene bien, se pueden tener apps a modo de librerias para acoplar a proyectos futuros cuando haga falta.

Pero creo que no he visto nada sobre compartamiento anidado tipo Padre-Hijo, como antes comentaba. Es decir, la funcionalidad del ModuloPadre es el resultado de su funcionalidad más la funcionalidad de ModuloHijo. Donde además ModuloHijo tiene visibilidad de propiedades del padre.

Para verlo de manera grafica imagina una web donde la funcionalidad de layout principal (cabecera, menus, sesiones etc) sea procesado ModuloPadre y todo lo que se muestre en el centro de la web sea procesado por ModulosHijos.

Al realizar cualquier llamada en la web, el controlador del padre la procesa siempre.
Si hay una llamada a un hijo, realiza la funcionalidad preparada en el padre como procesar el layout del principal y pasar el control (el flujo de ejecución) al controlador del ModuloHijo indicado. Donde finalmente este volcaría su funcionalidad.

Algo así es a lo que yo me refiero y no se alguien conoce un artículo donde expliquen sobre este tema, o simplemente si esto es habitual o no en Zend.
Mi interés se debe porque seguramente tendré que migrar aplicaciones Fusebox con este esquema de organización a Zend...

Gracias de nuevo porla ayuda y un saludo.
  #4 (permalink)  
Antiguo 19/11/2010, 03:53
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: Aplicaciones anidadas (Padre - Hijo)

bauhaus1975 zend no tiene el concepto de aplicaciones anidadas, tendrias que currartelo tu.
Si tuvieras alguna aplicación de demo o base para mostrar capaz te puedo dar una mano.

Salu2.
  #5 (permalink)  
Antiguo 19/11/2010, 07:40
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Entiendo (malas noticias pues).
Para conseguirlo entonces lo malo es que habría que tocar dentro del núcleo del propio Framework. ¿no?

Quizá lo mejor es que te prepare un par de ejemplos. Estarán en Fusebox-PHP, pero serán lo suficientemente explícitos.

Gracias y un saludo.
  #6 (permalink)  
Antiguo 19/11/2010, 09:28
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: Aplicaciones anidadas (Padre - Hijo)

No, no tendrias que tocar el core, seria extender para agregar tu funcionalidad.

Salu2.
  #7 (permalink)  
Antiguo 22/11/2010, 02:56
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Buenas de nuevo, compañero Masterpuppet,

He preparado dos apps anidadas en Fusebox para que veas el ejemplo de primera mano como solicitaste. También he incluido los archivos 'del core' de Fusebox3 para PHP. Y lo pongo para descargar a todo el que quiera echar un vistazo.

He usado una versión antigua (FSB3), para mayor sencillez. Desde luego la misión del ejemplo es ver el concepto de lo que yo buscaba (Anidación) y si está soportado en Zend de alguna manera, y no aprender Fusebox. Aunque quien quiera aprender, este código puede servirle como buen ejemplo de ayuda.

En este enlace se puede descargar el paquete comprimido.

Para aumentar la rapidez de aprendizaje te resumo como funciona.

En el paquete hay dos aplicaciones Una padre y otra hijo, la segunda contiene sus archivos dentro de la primera. FSB3 es antiguo, y repite los archivos del core en ambas.

Toda ejecución, es decir, todo enlace pasa por /index. y debe contener la acción de la manera ?fuseaction=Aplicacion.Accion.

El controlador es el fbx_Switch donde está cada acción de cada App.
fbx_Settings es donde van las variables y partes de ejecución común.
fbx_Layout contiene la decisión del Layout. En nuestro caso siempre será 'DefaultLayout'.
fbx_Circuits es donde se especifican las aplicaciones y rutas a cada aplicación (dentro de cada alpicación)

Creo que con el ejemplo que he creado, se ve claro el concepto: La Aplicación padre monta la estructura principal, cabecera, menú, y el contenido, se procesa en la app hija. El Layout del padre pone el resultado de lo que se procesó en el hijo. Es sencillo y está bastante bien para hacer pruebas.

Espero pueda servirte, y a mí para que me eches una mano.
Gracias de nuevo y un saludo.
  #8 (permalink)  
Antiguo 22/11/2010, 06:25
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: Aplicaciones anidadas (Padre - Hijo)

Que tal bauhaus1975, despues de mirar el ejemplo, no veo inconveniente en usar modulos para lograr lo mismo, podriamos intentar pasar el ejemplo a Zend y ver que tal va.

Salu2.

PD: Go For It!!!
  #9 (permalink)  
Antiguo 23/11/2010, 01:52
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Entonces... ¿Me vas a dar alguna lectura recomendada sobre Zend y Módulos para que lo vaya intentando?.
No tengo experiencia en Zend, y menos en módulos, así que necesitaré una ayuda.
Gracias.
  #10 (permalink)  
Antiguo 23/11/2010, 10:05
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: Aplicaciones anidadas (Padre - Hijo)

El Manual es un buen lugar para empezar: http://framework.zend.com/manual/en/...r.modular.html

Saludos.
  #11 (permalink)  
Antiguo 23/11/2010, 10:11
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: Aplicaciones anidadas (Padre - Hijo)

Si no tenes nada de experiencia en Zend deberias empezar por el QuickStart y la consola, crea un proyecto basico y despues vemos los modulos.

Salu2.
  #12 (permalink)  
Antiguo 24/11/2010, 02:26
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Gracias a los dos... Voy a ponerme a estudiar esa info y ver si consigo el mismo ejemplo que tenía en FSB con Módulos en Zend.

Espero ponerlo aquí también para descargar y que lo evaluemos entre todos.
Saludos.
  #13 (permalink)  
Antiguo 10/12/2010, 07:05
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años, 8 meses
Puntos: 37
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Lo que mas me gusta de ZF es que todo es muy simple nunca hace nada muy complicado las implementaciones son simples.

Tu respuesta esta en tu pregunta.

Vos tenes una app1, que queres que herede comportamiento a tu app2

HERENCIA!!


No necesitas nada mas

Por default vos tus modelos los extendes de Zend_Db_Table_Abstract, tus controllers de Zend_Controller_Action.

Pero tranquilamente puden extender de una clase que hayas creado, donde compartan algunas cosas como las sesiones, conexiones de base de datos. Pero la verdad es que habria que estudiar como funciona tu app.


Si tenes un Frontend y un Backend, la opcion mas normal en ZF es crear modulos. Hay otras formas pero esta es la mas logica.

Podes compartir modelos, especificando que tus modelos estan en X carpeta, y las llamadas son siempre a Application_X_Models. Lo mismo con las vistas

Vos tenes directorios posibles donde pueden estar tus views scripts, agregas los lugares donde tienen que buscar la vista y listo.

No tenes que pensar nada raro con ZF, es bastante natural, no como esos framework hechos por aficionados como CodeIgniter, aca hay gente capaz que esta de tras de ZF.
__________________
blog
  #14 (permalink)  
Antiguo 10/12/2010, 09:42
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 21 años, 4 meses
Puntos: 1
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Hola Pablo y gracias por tu respuesta.

Estaba dando vueltas al tema porque no tengo experiencia con ZEnd, y porque quería representar un modelo modular donde cada módulo ofrece su Layout...

De todas maneras creo que lo mejor es que trate de implementar el problema usando Zend y haga pruebas, lo malo que tiene esto de aprender un Framework es que uno, por si mismo es dificil que sepa sacarle el potencial si no ve ejemplos.

Reitero las gracias y espero tener algo terminado en breve para poder compartir o evaluar con ustedes.
  #15 (permalink)  
Antiguo 10/12/2010, 10:06
Avatar de pablofmorales  
Fecha de Ingreso: abril-2008
Ubicación: Buenos Aires, Argentina, Argentina
Mensajes: 222
Antigüedad: 16 años, 8 meses
Puntos: 37
Respuesta: Aplicaciones anidadas (Padre - Hijo)

Cita:
Iniciado por bauhaus1975 Ver Mensaje
Hola Pablo y gracias por tu respuesta.

Estaba dando vueltas al tema porque no tengo experiencia con ZEnd, y porque quería representar un modelo modular donde cada módulo ofrece su Layout...

De todas maneras creo que lo mejor es que trate de implementar el problema usando Zend y haga pruebas, lo malo que tiene esto de aprender un Framework es que uno, por si mismo es dificil que sepa sacarle el potencial si no ve ejemplos.

Reitero las gracias y espero tener algo terminado en breve para poder compartir o evaluar con ustedes.
POdes configurar que cada modulo tenga su archivo de configuracion, y ahi especificarle que layout cargar, es realmente simple una vez que entendes como funciona
__________________
blog

Etiquetas: anidadas, aplicaciones, padre
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 21:56.