Navegación

DydPhp Framework - Vistas

Publicado por Gastón el 13/03/2012 en PHP - Nivel Básico

Tabla de contenidos

Logo de PHP

La tabla de contenidos pertenece al artículo completo y no al contenido parcial de cada página del mismo si fuese el caso.

Leer los comentarios.

Resúmen

La implementación nativa de DydPhp para vistas es muy versatil, aquí se explican sus componentes y como utilizarlas.

Sobre el autor

Avatar de Gastón

Gastón tiene 32 años, vive en Argentina / Santa Fe / Santa Fe y su ocupación es Desarrollador de aplicaciones web.

Forma parte del club desde 19/10/2009 a las 20:52 habiendo estado en linea 25/03/2013 a las 18:54 por última vez.

Ha publicado 54 artículos en clubdesarrolladores con un promedio de valoración de 7.97 puntos. Puedes visitar su sitio web en http://devstudios.clubdesarrolladores.com

Estadísticas

  • Leido 1005 veces
  • Valorado 0.00 puntos

Vistas

Una vista en DydPhp es una clase, un motor que se encarga de renderizar la respuesta generando usualmente Html.

Por defecto DydPhp utiliza vistas de tipo \Dyd\Mvc\Views\Html

Las vistas son las encargadas de renderizar salida, proporcionando herramientas para su generación. Su uso no es directo desde controladores, sino desde templates.

Templates o plantillas

Los templates son archivos que contienen la renderización de una acción. Son archivos Php que pueden tener Html.

El contenido de un template puede ser por ejemplo, una tabla, un formulario, lo que sea... simplemente es la respuesta particular de una acción.

Layouts

Los layouts decoran templates. Lo mejor es verlo con un ejemplo:
Podemos tener un template que genera una tabla de usuarios. El layout tomará esta tabla y la insertará en su interior.

template:

<table>...</table>



layout:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>dyd php framework</title>
</head>
<body>
<h1>Mi sitio</h1>
<?php echo $this->getTemplateContent(); ?>
<hr/>
<p>Gracias por visitarnos</p>
</body>
</html>



Aqui el metodo getTemplateContent retorna el contenido renderizado del template (<table>...</table>) y lo incluye.

Esto permite que la misma tabla pueda ser decorada de diferente maneras.

Helpers

Los helpers son clases que simplifican la renderización de templates, aportando esa lógica que muchas veces los templates necesitan, pero sin implementarla directamente en templates, sino en metodos del helper que pueden ser reutilizados.

El ejemplo más comun de un helper es el de imprimir un enlace html.

echo $this->helper('html')->link('Listar usuarios', '/users');



La línea anterior genera un enlace html escondiendo la lógica necesaria de generar correctamente el href del enlace.

La mayoría de los helpers retornan strings dejando al programador/maquetador la responsabilidad de imprimirlos.

Temas

Los temas son basicamente asociaciones de layouts, templates y helpers. Son directorios.

Estos elementos de vistas estan organizados por temas ubicados en:

/application/mvc/views/{theme}/

Dentro de cada directorio theme se tiene una estructura base:

layouts/{layout}.php
{controller}/{action}.php
helpers/{helper}.php

Esto permite cambiar facilmente de theme (desde el controlador).

Nota: Si un template por ejemplo, no existe en el theme seleccionado, se intenta levantar el template desde el theme base.

Partial

Un partial es un template que puede ser reutilizado dentro de otros templates, partials y layouts.

Por ejemplo supongamos que tenemos un banner que queremos utilizar en varios templates. Lo mejor es colocarlo en un partial e incluirlo en estos templates. Si necesitamos hacer un cambio en el banner, solo debemos cambiar el partial y el cambio se propagará en todos los templates que lo incluyan.

Los partial aceptan variables que pueden ser proporcionadas desde el template que lo invoca.

<?php echo $this->getPartial('banner') ?>



Los partial van dentro del directorio partials y deben tener extensión php.

Slots

Los slots son porciones renderizadas de templates que se mantienen en memoria. Se utilizan usualmente para modificar secciones del layout desde un template.

Por ejemplo, si un template necesita cambiar el title de la página, debería modificar el html head que está en el layout. Es imposible hacerlo sin slots de una manera limpia.
Con el slot podemos hacer lo siguiente:

template:

<?php $this->openSlot('metatitle') ?>
Nuevo título
<?php $this->closeSlot() ?>

layout:

<head>
<title><?php echo $this->getSlot('metatitle', 'Titulo por defecto'); ?></title>
...
<?php echo $this->getTemplateContent(); ?>
...



De esta forma el nuevo titulo se aplica o se toma por defecto un valor.

Decoradores

Los decoradores son clases que permiten decorar diferentes objetos de vistas. Se invocan automáticamente según eventos.
Es un tema que está poco desarrollado en DydPhp aún.

Si tiene alguna pregunta sobre éste artículo por favor deje un comentario y será respondido.

Descargas

El artículo no tiene descargas asociadas

Listado de comentarios

Sus comentarios son importantes.

No hay comentarios para listar, si desea puede crear el primer comentario para este artículo.

Agregar un comentario

Debe estar identificado para agregar un comentario