La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Separación de la presentación: Plantillas CI-2413 Desarrollo de aplicaciones para Internet.

Presentaciones similares


Presentación del tema: "Separación de la presentación: Plantillas CI-2413 Desarrollo de aplicaciones para Internet."— Transcripción de la presentación:

1 Separación de la presentación: Plantillas CI-2413 Desarrollo de aplicaciones para Internet

2 Motores de plantillas Los motores de plantilla sirven para separar la presentación de la lógica. Es útil en la creación de aplicaciones en las cuales el diseñador gráfico y el programador de la aplicación juegan roles diferentes y muchas veces no son la misma persona. Además ayudan a hacer parte de la aplicación más mantenible. Son una parte importante de los administradores de contenido.

3 Motores de plantillas en PHP Los motores de plantilla entonces logran dos objetivos: –Separar la presentación de la lógica del negocio. –Separar código PHP complejo del código HTML. Sin embargo las plantillas han agregado ciertas complejidades: –Se crea una página de múltiples archivos. –Se agrega un nivel más de procesamiento.

4 Motores de plantillas en PHP Para PHP existen muchísimos motores de plantillas diferentes, al menos sesenta, y todos difieren en filosofía y técnica. Para algunos lo importante es separar el HTML de PHP y para otros lo importante es separar la lógica de presentación de la lógica del negocio. Además también se diferencia en cuanto a si utilizan expresiones regulares, str_replace, compilación, parseo léxico, etc.

5 Motores de plantillas en PHP Se recomienda leer el artículo: –Beyond The Template EngineBeyond The Template Engine Ejemplos de motores de plantillas: –Smarty –PHPlib –FastTemplate –Templeet

6 PHPlib: plantillas La clase template permite guardar el código HTML en archivos externos que están completamente libres de código PHP, pero que contienen campos de reemplazo. La clase provee funciones que pueden rellenar los campos con hileras arbitrarias. Estas hileras pueden ser muy grandes, v.b. tablas enteras.

7 Ejemplo de PHPlib PHPlib incluye la clase Template. Las sustituciones se definen con {}. Pequeño ejemplo: –<?php $t = new Template; $t->set_var("a", "definida como hugo"); $t->set_var("b", "el valor de a es {a}"); print $t->subst("b") ?>

8 Ejemplo de PHPlib 2 Ejemplo (pagina.ihtml): {TITULO_PAGINA} {TITULO_PAGINA} {SALIDA} Content {VARIABLE_INDEFINIDA}

9 Ejemplo de PHPlib 2 Ejemplo (caja.ihtml): {TITULO} {NUM} {NUM_GRANDE}

10 Ejemplo de PHPlib 2 Ejemplo PHP: <?php /* incluye la clase Template */ include("template.inc"); /* crea una clase */ $t = new Template(); /* $t->debug = 7; */ /* activa la depuración */ /* define dos archivos */ $t->set_file(array( "pagina" => "pagina.ihtml", caja" => caja.ihtml")); /* define una variable contenida en otra */ $t->set_block(caja", fila", filas"); /* define two variables manually */ $t->set_var(array("TITULO" => Prueba", TITULO_PAGINA" => PAGINA DE PRUEBA"));

11 Ejemplo de PHPlib 2 Ejemplo (continuación): for ($i=1; $i<=3; $i++) { $n = $i; $nn = $i*10; /* define valores para NUM y NUM_GRANDE */ $t->set_var(array("NUM" => $n, "NUM_GRANDE" => $nn)); /* reemplaza NUM y NUM_GRANDE en fila y * agrega el resultado a filas */ $t->parse(filas", fila", true); } /* reemplaza todas las variables en caja y pone el resultado en SALIDA * luego reemplaza todas las variables en pagina y pone el resultado en SALIDA */ $t->parse(SALIDA", array(caja", pagina")); /* imprime SALIDA */ $t->p(SALIDA"); ?> Variables indefinidas en SALIDA: <?php print @implode(", ", $t->get_undefined(SALIDA")); ?>

12 Ejemplo de PHPlib 3 Ejemplo más complejo: –Libro de visitas utilizando la clase Template de PHPlib.

13 Enlaces útiles de PHPlib http://www.sanisoft.com/phplib/manual/template. php http://www.phpbuilder.com/columns/david20000 512.php3 http://www.devshed.com/Server_Side/PHP/PHP Lib/

14 Ejemplo de Smarty Ejemplo pequeño de Smarty: –index.tpl {* Smarty *} Hola, {$name}! –index.php <?php // lee la biblioteca Smarty require('Smarty.class.php'); $smarty = new Smarty; $smarty->template_dir = '/home/bsolano/public_html/smarty/plantillas/'; $smarty->compile_dir = '/home/bsolano/public_html/smarty/plantillas_c/'; $smarty->config_dir = '/home/bsolano/public_html/smarty/config/'; $smarty->cache_dir = '/home/bsolano/public_html/smarty/cache/'; $smarty->assign('nombre','Braulio'); $smarty->display('index.tpl'); ?>

15 Ejemplo de Smarty Ejemplo con base de datos: –http://www.codeforsoup.com/edu/smarty.phphttp://www.codeforsoup.com/edu/smarty.php

16 Proyectos de Plantilla Existen muchos proyectos que tratan de realizar plantillas. Se puede encontrar una lista aquí: –A Complete List of PHP Template Engines?A Complete List of PHP Template Engines? Además el foro en el enlace anterior tiene una discusión interesante sobre XSLT como motor de plantillas.

17 Más allá de las plantillas y la abstracción de bases de datos Existen proyectos como: –http://wact.sourceforge.net/ Este proyecto desarrolla una utilería de componentes para aplicaciones web. Esta utilería pretende ser un marco de patrones modulares para la creación de aplicaciones web de alto rendimiento.


Descargar ppt "Separación de la presentación: Plantillas CI-2413 Desarrollo de aplicaciones para Internet."

Presentaciones similares


Anuncios Google