tuxpuc | todos los usuarios gnu/linux de la pucp...
TRANSCRIPT
![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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/25.jpg)
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 26: 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](https://reader035.vdocuments.co/reader035/viewer/2022062506/5f08b0457e708231d4233d9c/html5/thumbnails/26.jpg)
26/27
Referencias
PHPit: 10 different PHP frameworks http://www.phpit.net/article/ten-different-php-
frameworks/
Manual CakePHP http://manual.cakephp.org
Cakebaker http://cakebaker.42dh.com/