Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Construcción de Frameworks a partir de Smarty y PEAR

1,976 views

Published on

Presentación a cargo de Laboratorio 40 de Escuela Superior de Ingeniería Informáctica de Ourense (España),

Published in: Technology
  • Be the first to comment

Construcción de Frameworks a partir de Smarty y PEAR

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

×