zenphp Framework(introducción)
Juan Belón
Programa
18:30 - 18:40 : Entrega de documentación , presentación e introducción.18:40 - 18:50: Ejemplos18:50 - 19:00: Preguntas
Presentación
ETSIIT - UGR
http://etsiit.ugr.es
Asociación de Webmasters de Granada
http://www.webmastergranada.es
3 de 29
Objetivos
Dar una visión global de cómo se crea una aplicación web con zenphp.Adquirir aptitudes para evaluar la calidad de un framework.Conocer las herramientas de edición y generación.Justificar la necesidad de usar estándares de accesibilidad.Aprender mediante la práctica a crear una aplicación web básica: un listado de productos.Un repaso a algunas herramientas de depuración.Dudas , preguntas…
4 de 29
Qué no vamos a ver
Al tener tan poco tiempo hay cosas que no podremos ver:No estudiaremos en profundidad XHTML ni CSS.No estudiaremos usabilidad ni posicionamiento.No aprenderemos a publicar una página web. No aprenderemos a evaluar la eficiencia de un framework.
5 de 29
Introducción Histórica
6 de 29
¿Qué es ZENPHP y para qué se usa?
ZEN Lenguaje del alma de inmensa profundidad
PHPP HP H ypertext P re-processor[P ersonal H ome P age Tools]
Lenguaje para crear páginas web dinámicas.
Se usa para dinamizar los contenidos de los documentos de hipertexto de forma equilibrada y sin coste de licencias.
7 de 29
Introdución histórica
Zenphp surgió en un principio como un método para encontrarun equilibrio entre el uso del cerebro profundo y el superficial,como dijo el Maestro Taisen Deshimaru: “la verdadera evolución nace cuando el cerebro interno y el hipotálamo se fortalecen, hace falta una verdadera educación ”.Versión 0.1 – 2004-05
Finalista CUSL – 2007-08
Mención –PIE – 2008-09
Proyectos – 2004 al 2009
PHP ó ZENPHP
PHPclass miAplicacion {function miAplicacion() {//inicialización }
}
ZENPHPclass miAplicacion extends zen_aplicacion {function miAplicacion() {parent:: zen_aplicacion();}
}
9 de 29
El Framework zenphp
Hay 3 conceptos fundamentales al usar el framework:Modelo:Separa completamente el contenido de la presentación. Se asocian a tablas de una base de datos.Vista:Permite el control del flujo del contenido asociado a un Modelo.Presenta dicho contenido a través de una plantilla.Conjuntos: Funciones, Librerías y Plantillas:Las funciones se usan para formatear contenido, las librerías para realizar funcionalidades extra y las plantillas son el diseño XHTML que sirve como base para rellenarlas con el contenido.
Intro. - ¿Cómo funciona?No es más que una serie de pautas y recomendaciones que han sido creadas para garantizar el procesamiento de la información de una manera flexible.Estas facilitan la creación y mantenimiento a:
Programadores: código organizado, estructura sólidaDiseñadores: plantillas editables, multimedia accesible
Al mismo tiempo mejora la experiencia relacionada con:
Navegadores: optimización de visualizaciónBuscadores: al estar bien estructurado facilita la búsqueda de información.
11 de 29
Intro.- ¿Cómo funciona?
12 de 29
Intro. - ¿Cómo funciona?
13 de 29
Intro. - ¿Cómo funciona?
Intro.- ¿Cómo funciona?
15 de 29
Intro. - ¿Por qué funciona?
En la informática se pretende encontrar un equilibrio entre procesos que automatizan las tareas y el mantenimiento de los sistemas. Funciona porque nos permite centrarnos en la solución del problema.
Es rápido y se puede modificar fácilmente. Sin cambios en el núcleo.
16 de 59
Ejemplos
Pautas. Plantillas. Modelos. Vistas.
17 de 29
Ejemplos - Pautas
1. Diseñe el contenido visual y auditivo. (XHTML+CSS+FLASH)2. Disponga el contenido en los directorios dentro de /media/
Tenga en cuenta que cada plantilla irá en un idioma /media/plantillas/es/base_web.html
3. Cree el directorio /aplicaciones/ y dentro la aplicación y su configuración/aplicaciones/prueba.config.php/aplicaciones/prueba.php
4. Cree la instanciación de la clase principal en /index.php5. Por defecto se asocia la plantilla XHTML base a la llamada
principal de la vista de la aplicación principal: base_web.htmlprueba.php -> clase prueba_html -> función index()Esto se hace para el idioma principal.
6. Cree la lógica de programación usando modelos y vistas asociados como hijos en la estructura de la aplicación principal
7. Haga a Padres e hijos son accesibles
Crear una aplicación que contenga los elementos
Página por defecto: una base XHTMLListado de productos
Modelo asociado a una tabla de productosVista asociada a una plantilla2 ficheros de plantilla, para enlaces y para el listado en sí
Enlaces a cada productoDirecciones URL amigables con Google
Ejercicio: listado productos
19 de 29
Ejemplos: plantillas I
La estructura básica de un documento XHTML con información de plantilla es la siguiente: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <title>#titulo#</title> <!-- Información relevante para buscadores y navegadores -->#scripts# #css# </head> <body #onloads#>#contenido# </body> </html>
20 de 29
Ejemplos: plantillas II
Contenido de un listado.html : <ul id="listado_productos">#elementos#</ul> Contenido de los elementos.html : <li><ahref="/producto/#idp#/#titulo_formateado#/">#titulo#</a></ul>
21 de 29
Ejemplos: modelos
Contenido de modelos/productos.php class productos extends zen_html_modelo_datos {//La vista: html_productosvar $html; //herenciavar $campos; function productos () {parent::zen_modelo_datos($padre,"","productos");}}
22 de 29
Ejemplos: vistas
Contenido de una función de vistas/ html_producto.php :class html_productos extends zen_html_modelo_datos { function index() {$this->padre->campos = "idp,titulo";return $this->listado("elementos.html", //las plantillas"productos.html", "elementos");}} 23 de 29
Ejercicio avanzado:
URL amigables con Google (SEO)
Ejemplos: vistasclass html_productos extends zen_html_modelo_datos {function index() {$this->padre->campos = "idp,titulo,titulo as titulo_formateado";$this->filtros_postprocesamiento = array("titulo_formateado"=>"zen_codifica_nombre_para_url ");return $this->listado("elementos.html", "productos.html", "elementos");}} 25 de 29
Casos reales (I)
26 de 29
Casos reales (II)
27 de 29
El modelo de caja
Esto ha sido todo...
¡¡PRACTICAR MUCHO!!
Top Related