Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/12/2012, 07:10
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Mejor forma de implementar las vistas y las plantillas

sé que estás cansado de que te lo digan pero : el agua tibia ya se inventó

bueno, el tema es que veo que tratas de crear una clase para las vistas, cuando lo común en MVC es que la parte de la vista sea delegado a los famosos "template engines".

Una vista no tiene que ser necesariamente Orientada a Objetos (bueno en TWIG se logra de una manera brillante) porque básicamente se representan en archivos HTML y como tal deben de tener código HTML, es allí donde entra el template engine, el cual sólo toma la plantilla (template con html) y los arrays construidos por el controlador o modelo y lo cambia, algo como un str_replace aunque suele ser más complejo.

es por ello que no le veo sentido a tu clase de vistas, lo ideal es implementar un modelo realmente probado y que funciona como los template engines, tienes a twig, smarty y muchos otros.

si ves el ejemplo de como se implementan las vistas en Codeigniter, notarás que NO existen clases para las vistas, sólo las plantillas, y en controlador lo genera así:

Código PHP:
Ver original
  1. //dentro del controlador
  2. $this->load->view('miplantilla.php', array(
  3.      'links' => $array_de_links
  4. ));

y la vista (plantilla):

Código PHP:
Ver original
  1. <ul class="links">
  2. <?php foreach ($links as $label => $link): ?>
  3.     <li><a href="<?=$link?>"><?=$label?></a></li>
  4. <?php endforeach; ?>
  5. </ul>

si usaras un motor como twig o smarty, tendrías algo como esto:

Código twig:
Ver original
  1. <ul class="links">
  2. {% for link in links %}
  3.     <li><a href="{link.link}">{link.label}</a></li>
  4. {% endfor %}
  5. </ul>

vistas o plantillas pulidas libres de los bloques de <?PHP?>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 18/12/2012 a las 07:16