Este documento describe el patrón de diseño MVC modificado en ZenPHP. Explica que un modelo de datos se establece como una variable hija de la aplicación, permitiendo que el modelo acceda a la aplicación y otros componentes a través del puntero al padre. También describe cómo, desde cualquier nivel de la aplicación, se puede acceder a los niveles superiores a través de la jerarquía de padres, permitiendo la navegación entre componentes.
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Patrón MVC Modificado | Modelo-Vista-Controlador
1. Patrón MVC (Modelo-Vista-
Controlador) Modificado
Introducción al Modelo – Visualizador :: Padres e Hijos
ZENPHP
Autor: juaxix
2. Patrón MVC (Modelo-Vista-Controlador)
Modificado
Introducción al Modelo – Visualizador :: Padres e Hijos
Padre
Un padre es una variable que establece el nivel superior en la jerarquía de clases. La parte
superior de una aplicación web,es ,precisamente una clase zen_aplicacion que extiende de la
clase zen, también puede ser zen_aplicacion_administrador o cualquier otra que extienda de
zen.
En zenphp se establecen desde la instanciación de una clase a través de un parámetro por
referencia en el constructor de la clase instanciada.
Ejemplo
//Cargar zenphp:
require_once('zenphp/zen.php');
//Ahora podemos crear una aplicación:
$zen = new zen_aplicacion();
Patrón MVC (Modelo-Vista-Controlador) Modificado | [Seleccionar fecha]
Ahora,si queremos añadir un modelo de datos "wiki" a la aplicación,podemos hacerlo de la
siguiente forma:
$zen->wiki =& new zen_modelo_datos($zen,"id,titulo,descripcion","wiki");
Explicación
Lo que se ha hecho al crear el nuevo modelo como variable de $zen es decirle al modelo que
el padre es la aplicación $zen y que vamos a usar los campos: id,titulo y descripción de la
tabla wiki para las operaciones que necesitemos realizar con dicho modelo.
A partir de este momento,además ,desde el modelo podemos acceder por medio del puntero
$this->padre a la aplicación $zen asi como a sus otras clases asociadas,como por ejemplo la
base de datos, especialmente esta clase tiene un puntero en el modelo de datos ya que es
imprescindible , en $this->bd.
Accediendo a los niveles superiores de una aplicación
El concepto entonces es sencillo, se trata de que, desde cualquier nivel de una aplicación
podamos "navegar" hacia los niveles superiores a través del sistema de padres de la jerarquía
del sistema, por ejemplo, desde el modelo wiki hay un visualizador llamado html, de forma
que podemos acceder al visualizador de la aplicación de la página web por medio de
1
3. $this->padre->padre->html->mostrar(
$this->padre->padre->contenido
);
donde
$this->padre es el modelo asociado al visualizador del modelo wiki
$this->padre->padre es la aplicación
$this->padre->padre->html es el visualizador de la aplicación
$this->padre->padre->contenido es el array que contiene la información a reemplazar
por la clase plantilla que se encuentra en:
$this->padre->padre->html->plantilla que es del tipo zen_plantilla y se inicializa en el
constructor de zen_html para cada zen_aplicacion.
Más información
Puedes seguir leyendo temas relacionados como:
Crear una aplicación
Usar scaffolding (zen_andamio)
Patrón MVC (Modelo-Vista-Controlador) Modificado | [Seleccionar fecha]
Crear un blog
Recomendación
Para no perder el hilo de la estructura, lo mejor es usar un editor como Eclipse que nos
recupere la información de la documentación escrita y rellene las "cajas" de ayuda al escribir
inteligente de forma que autocompleta nuestra navegación en tiempo de escritura.
El multiverso evolutivo
... La idea de Smolin, expuesta en La vida del Cosmos, depende
de la teoría de los universos hijo que han nacido de los universos
padre, no en un Big Crunch protegido por completo, sino más
localizadamente, en agujeros negros. Smolin añade una forma de
herencia: las constantes fundamentales de un universo hijo son
versiones ligeramente "mutadas" de las constantes de su padre.
...
2