Foros del Web » Programando para Internet » PHP »

Como crear clase View en MVC

Estas en el tema de Como crear clase View en MVC en el foro de PHP en Foros del Web. Hola quisiera su opinión y ayuda respecto de como debo crear la clase para la vista en un MVC, tengo varias lineas de razonamiento pero ...
  #1 (permalink)  
Antiguo 24/08/2012, 22:24
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 9 años, 9 meses
Puntos: 2
Como crear clase View en MVC

Hola quisiera su opinión y ayuda respecto de como debo crear la clase para la vista en un MVC, tengo varias lineas de razonamiento
pero no se si voy bien encaminado o de frenton mi planteamiento es incorrecto.

Cual de las siguientes metodologías me conviene mas.

1- Cada vez que cargue una vista hacer directamente un require a la vista para capturar el contenido html generado con ob_get_contents()
y guardarlo en una variable a la espera de un metodo output();

les dejo el codigo lo mas simplificado posible...

Código PHP:
class View
{
   private 
$_buffer;

   public function 
load($file$data){
      
// aca hago el require, uso las funciones ob_start(), ob_get_contents(), etc. 
      // capturo el retorno y lo asigno a la variable $html;
      
$this->_buffer.= $html;// almaceno el contenido de las vistas en el atributo _buffer 
   
}

   
// imprime la salida del buffer
   
public function output(){
      echo 
$this->_buffer    
   
}

2- Cada vez que agregue una vista guardar en un array los nombres de las vistas y sus variables para tenerlos disponibles
en el método output que sera invocado justo antes de terminar todos los scripts.

Código PHP:
class View
{
   private 
$_views = array();

   public function 
add($file$data){    
      
$this->_views[] = array('file' => $file'data' => $data);
   }

   public function 
output(){    
      foreach(
$this->_views as $view => $data){
         require(
$view['file']);// Aca voy cargando las vistas
      
}
   }

3- seria una combinación de ambos.

Bueno a mi entender y siendo novato en php la opcion 2 es mas limpia y rápida llama a todas las vistas juntas.
Pero he visto que es común en los frameworks pasar un tercer parámetro al método que carga la vista, un boleano
si es TRUE retorna la vista por lo que se ajustaría al ejemplo uno.

La verdad quiero hacer mis desarrollos siguiendo standares y convenciones por eso pido su consejo.
tambien pretendo implementar layouts.

Saludos!!
  #2 (permalink)  
Antiguo 25/08/2012, 05:45
 
Fecha de Ingreso: agosto-2010
Mensajes: 128
Antigüedad: 9 años, 3 meses
Puntos: 2
Respuesta: Como crear clase View en MVC

Mi consejo es que utilices algún framework, te libera de hacer toda esa gestión y es mucho más sencillo. Yo he usado Yii, ahí puedes hacer lo que tu dices, volcar la vista a la salida estándar o guardar el resultado en una variable.
  #3 (permalink)  
Antiguo 25/08/2012, 21:31
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Respuesta: Como crear clase View en MVC

Puedes usar Mustache, es bastante simple y respeta muy bien como debería de ser un View.
  #4 (permalink)  
Antiguo 25/08/2012, 23:05
Avatar de asdmaster  
Fecha de Ingreso: marzo-2010
Mensajes: 98
Antigüedad: 9 años, 9 meses
Puntos: 2
Respuesta: Como crear clase View en MVC

Cita:
Iniciado por GROGUI2 Ver Mensaje
Mi consejo es que utilices algún framework, te libera de hacer toda esa gestión y es mucho más sencillo. Yo he usado Yii, ahí puedes hacer lo que tu dices, volcar la vista a la salida estándar o guardar el resultado en una variable.
Para esto en especifico no usare ningún framework solo me interesa el proceso interno de generar las vistas.
Voy a echar un vistazo al código de YII para ver como trabaja la clase encargada de las vistas,

Saludos!!

Cita:
Iniciado por GatorV Ver Mensaje
Puedes usar Mustache, es bastante simple y respeta muy bien como debería de ser un View.
no conocía Mustache voy a ver de que se trata, aunque me parece que es un motor de plantillas como smarty.
la idea es usar solo php nativo.

Saludos!!

Etiquetas: clase, html, mvc, view, variables
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 18:50.