Construcción de frameworks de desarrollo usando Smarty y Pear
Salón de Grados
3 de marzo de 2010
Marcos Martínez Muñiz
¿Qué es un framework?
• Concebimos framework como un conjunto estandarizado.
• Incluye programas, bibliotecas, lenguaje/s
• Incluye metodología (?)
• Facilitar el desarrollo de software
• No centrarse en detalles de bajo nivel
¿Para qué necesitamos un framework?
• El mercado es amplio: sobretodo en software libre.
• Existen múltiples herramientas en los lenguajes más utilizados:– Google, Kumbia, Ruby on Rails
• ¿qué necesidad tenemos de una nueva herramienta?
• ¿por qué NO?
Construiremos nuestro framework
• Basado en el modelo vista – controlador
• Lenguaje PHP
• Objetivos:– Crear comunidad de desarrollo SL
– Creación de interfaces
– Modular
– Múltiples aplicaciones
– Construcción de un IDE (largo plazo)
Modelo MVC
• La explicación teórica la podéis consultar en: http://es.wikipedia.org/wiki/Modelo_Vista_Controlador
• Para que nos entendamos…
Modelo MVC
Modelo Vista (interfaz usuario)
Controlador
¿Cómo lograr MVC?
• Para generar la vista independiente de la lógica: SMARTY
• Para independizar la persistencia de datos: PEAR -> DB_DataObject
• Otros paquetes de software ya existentes (software libre)
VISTA
Interfaces con SMARTY• Motor de plantillas basado en HTML y PHP
• Esto es lo que NO queremos:<body><b>Asi st ent es al act o de Graduaci &oacut e; n</ b><?php
/ / comprobamos si exi st e el usuar i o en l a graduaci oni ncl ude_once ( ' . / conf i gBD. php' ) ;Conect arBD( ) ;$sql = " SELECT * FROM asi st ent es_graduaci on“;$get = mysql _query($sql ) ;whi l e ($f i l a2 = mysql _f et ch_array($get ) ) {
?><t abl e><t r><t d><b><?php echo $f i l a2[ " NOMBRE" ] ; ?></ b><t d><t d><b><?php echo $f i l a2[ " APELLI DOS" ] ; ?></ b><t d><t d>
<?php i f ( $f i l a2[ " TI TULACI ON" ] ==1) echo " E. T. I . X. " ;El se echo " E. I . " ;?>
</ t d></ t r></ t abl e>
<?php } ?>
Interfaces con SMARTY
VS.
Creación de Interfaces
• Sencillez en su creación: es HTML
• Facilidad de modificación y mantenimiento: HTML y CSS
• No necesitamos programar
• Nosotros damos la herramienta para la creación…
Creación de Interfaces
• Os recomiendo este libro
NO ME HAGAS PENSAR: UNA APROXIMACION A LA USABILIDAD EN LA WEB (2 ª ED.)
Steve Krug
CONTROLADOR
PEAR
• PEAR: extensión de PHP
• Utilizaremos para independizar la lógica de la capa de persistencia de datos
• Ejemplo: no habría problema en cambiar de MySQL a Oracle
• Podremos utilizar muchos otros paquetes: autenticación, encriptado de datos, manejo XML, etc.
PEAR -> DB_DataObject
• Genera las clases de la BD automáticamente
• Su sintaxis se aproxima a la ya conocida en PHP
• Devuelve los datos de consulta en forma de objetos
• Estamos estudiando la posibilidad de utilizar MDB2
Construyendo nuestro framework
FRAMEWORK
CONTROLADOR VISTA
LIBRERIASPEAR SMARTYHTML
LIB JQuery
PHP JavaScriptSQL
IDE: Entorno de desarrollo integrado
Librerías propias
• Construimos nuestras propias librerías
• Re – Utilizamos librerías basadas en proyectos de software libre
• Lenguajes que utilizaremos: – PHP en la parte del servidor
– JAVASCRIPT en el cliente
• Otros lenguajes: python, XML, apletts java, etc…
Otros paquetes utilizados
• Editor HTML: FCKeditor, típico de gestores de contenido
• AJAX CALENDAR: para los selectores de fecha
• APERTIUM: traductor automático basado en software libre
• PHPMAILER: clase para envio de mail a través de SMTP o SendMail
• FPDF: para trabajar con archivos PDF
Otros paquetes utilizados
• JQuery: biblioteca de funciones basadas en JavaScript.– Eventos Asíncronos
– Validación de formularios
– Generación de menús
– Efectos en la interfaz
• API de aplicaciones web 2.0
• Según demanda de funcionalidad: integrable
RESUMEN
• Crear comunidad desarrollo
• Modular, integrable y escalable
• Aumentar la sencillez en el desarrollo de aplicaciones web orientadas por funcionalidad (no es un gestor de contenidos)
• Comunicación con otras herramientas existentes
• Futuro: un IDE completo
• Veamos ahora un pequeño ejemplo…
Ejemplo
Construyendo nuestro framework
FRAMEWORK
CONTROLADOR VISTA
LIBRERIASPEAR SMARTYHTML
LIB JQuery
PHP JavaScriptSQL
IDE: Entorno de desarrollo integrado
"No entiendes realmente algo a menos que seas capaz de explicárselo a tu abuela“
A. Einstein
DUDAS Y PREGUNTAS…
GRACIASConstrucción de frameworks de desarrollo usando Smarty y Pear
3 de marzo de 2010