TUXPUC | Todos los usuarios GNU/Linux de la PUCP...

27
1/27 Frameworks en PHP Conceptos de Entornos de Desarrollo y características del CakePHP

Transcript of TUXPUC | Todos los usuarios GNU/Linux de la PUCP...

Page 1: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

1/27

Frameworks en PHP

Conceptos de Entornos de Desarrollo y características del CakePHP

Page 2: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

2/27

PHP: Hypertext Preprocessor El lenguaje PHP surge en 1994 como un conjunto de

binarios en C usados para una página personal de Rasmus Lerdorf (PHP: Personal HomePage)

En 1997 Zeev Suraski & Andi Gutmans reescriben el parser y lo renombran.

En el 2000 aparece PHP 4, siendo al última versión la 4.4.6 disponible desde este mes. Aún se le brinda soporte.

PHP 5 aparece en el 2004, con un nuevo motor (Zend Engine II)

Page 3: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

3/27

PHP: Hypertext Preprocessor Es libre Cuenta con gran cantidad de documentación. Múltiples extensiones para funciones

específicas. Curva de aprendizaje mínima para personas

con conocimiento en C o PERL. Múltiples Proyectos OS disponibles

Page 4: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

4/27

Frameworks

Estructura de soporte en la cual un proyecto de software puede ser organizado y desarrollado.

Puede incluir soporte de programas, bibliotecas, lenguaje de scripting y otras herramientas para ayudar a desarrollar y unir los diferentes componentes de un proyecto.

Page 5: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

5/27

PHP & Frameworks

Uso Principal de PHP: Programación de páginas web dinámicas (usando MySQL mayormente)

Al ser competencia directa con otros frameworks como ASP .Net, JavaServerPages y otros se requería un entorno de desarrollo más completo.

Han aparecido múltiples proyectos de frameworks para PHP, la mayoría basados en Ruby in Rails.

Page 6: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

6/27

Ejemplos

[ [ Web Application Component Toolkit ] ]

Page 7: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

7/27

Puntos a Considerar al elegir un Framework PHP 4 VS PHP 5 Utilización del M-V-C Múltiples Bases de Datos Uso de plantillas Object Record Mapper (Active Record) La Caché & La Sesión Validación Asistentes para HTML, Ajax, etc. Herramientas específicas (RSS, PDF, etc)

Page 8: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

8/27

Frameworks: PHP 4 Vs PHP 5

Muchos de los servidores ya incluían PHP 4 cuando salió el 5. Como aún hay soporte, se sigue usando. Algunos Frameworks soportan ambos, aunque la mayoría sólo soporta PHP 5 con sus nuevas funciones.

[ [ Web Application Component Toolkit ] ]

Page 9: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

9/27

Frameworks: M-V-C

Separación en capas: Modelo - Vista Controlador

La gran mayoría de frameworks lo usan.

Obtenido de alzado.org

Page 10: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

10/27

Ejemplo en CakePHP: MVC

Controllers….Function editar() {…}….

Views Models

videos

videos_controller.php

Class Video {…}

video.php

editar.thtml

Page 11: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

11/27

Frameworks: Múltiples Bases de Datos Se debe dar soporte para que sin cambios

en la programación (sólo en un archivo de configuración) se pueda pasar de una base de datos a otra.

Por ejemplo en CakePHP se pueden usar: MySQL Postgres sqlite pear-driver (ej: pear-mysql) adodb-driver

Page 12: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

12/27

Frameworks: Uso de plantillas

Las plantillas se utilizan para agilizar la creación de páginas que tienen elementos repetitivos.

En CakePHP Se pueden definir diferentes “layouts” de

acuerdo a las funciones del controlador. Se pueden definir “elements”, que son pedazos

de código que recibiendo parámetros cambian su forma de mostrarse y que pueden colocarse en distintas páginas.

Page 13: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

13/27

Ejemplo en CakePHP: Layouts & Elements

Element Menu que recibe el ID de Usuario de la sesión.

{

{

{

{

Layout Default, que llama a la cabecera, menú, buscar y pie de página.

Page 14: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

14/27

Frameworks: Object Record Mapper

Se refiere a empaquetar en una instancia de una clase a una fila de una tabla.

Leyendo de la tabla, el objeto establece sus atributos y relaciones automáticamente y adquiere la lógica que contenga.

En el caso de CakePHP, el modelo es el que define a la clase y sólo con el nombre de la Tabla adquiere todos sus atributos.

Page 15: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

15/27

Frameworks: La Caché & La Sesión

La Caché permite almacenar las peticiones más frecuentes para que solamente se genere html la primera vez (mejora el rendimiento)

La Sesión se hace transparente para el usuario, sólo leyendo y escribiendo en ella.

En CakePHP ambos manejos son automáticos, teniendo a su vez tres niveles de manejo de Sesiones según se requiera.

Page 16: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

16/27

Frameworks: Validación

La Validación se refiere a filtros de datos que evitan el ingreso de datos incorrectos a la base de datos. Este manejo puede hacerse en el cliente o en el servidor.

En CakePHP: La validación por servidor se incluye en el

modelo, definiendo reglas como expresiones regulares.

Se pueden personalizar los errores de validación.

Page 17: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

17/27

Ejemplo en CakePHP:

Cada cadena define los caracteres permitidos.En la vista elegimos los mensajes a mostrar.

Page 18: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

18/27

Frameworks: Asistentes Librerías que ayudan a formatear

adecuadamente elementos de control comunes, como son elementos de formularios, scripts e hipervínculos.

En CakePHP: Este concepto se conoce como “helpers”. Los

más usados son HTML (para formularios y elementos de navegación), Javascript y Ajax.

Ayudan a conectar más fácilmente la información transmitida desde la vista al controlador.

Page 19: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

19/27

Ejemplo en CakePHP:

$html->image() Imprime una imagen, sin importar la página donde nos encontremos.

$html->input() & $html->tagErrorMsg()Manejan información de un formulario y su validación.

Page 20: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

20/27

Frameworks: Asistente de Ajax La tecnología Ajax brinda un valor agregado a

las aplicaciones web, ya que permite comunicarse con el servidor sin tener que recargar la página en la que nos encontramos.

Se debe buscar frameworks que integren de forma transparente el Ajax a las aplicaciones.

En CakePHP: Se usa el prototype.js y las librerías de

Script.aculo.us

Page 21: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

21/27

Ejemplo en CakePHP

$ajax->link()Permite con sólo definir un arreglo realizar diversas acciones sin recargas.El código generado se basa en prototype.js

Page 22: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

22/27

Frameworks: Otras herramientas También se debe tener en cuenta otras herramientas

como: Generadores de RSS Generadores de PDF Paginación Scaffolding XML, etc.

En CakePHP: Los “vendors” y “components” brindan funciones extra.

El feedcreator por ejemplo maneja la creación de RSS.

Page 23: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

23/27

Frameworks: A tener en cuenta

Además de los puntos técnicos mencionados hay que resaltar otros puntos que deben considerarse al elegir un framework Curva de Aprendizaje suave Buena Documentación Una comunidad Activa Instalación sencilla Velocidad de Codificación

Page 24: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

24/27

CakePHP

Cumple con los requisitos técnicos Es sencillo de aprender para programadores

que conozcan PHP, especialmente para los que saben programación orientada a objetos.

Documentación (API & Manuales) muy completa

Comunidad activa que desarrolla nuevos componentes regularmente.

Page 25: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

25/27

Ejemplos de Aplicaciones en CakePHP DIA-PUCP: Videos PUCP

http://videos.pucp.edu.pe DIA-PUCP: Repositorio de OARS

http://ceos.pucp.edu.pe/~galleta

FileShifter http://engdemo.fileshifter.se/efs/

Lov.Li http://lov.li/

Cheesecake Photoblog http://cheesecake-photoblog.org/demo/

Page 27: TUXPUC | Todos los usuarios GNU/Linux de la PUCP ...downloads.tuxpuc.pucp.edu.pe/linuxweek2007/lunes/LW2007...las aplicaciones web, ya que permite comunicarse con el servidor sin tener

27/27

Gracias por la atención

Natalí Flores [email protected]