tuxpuc | todos los usuarios gnu/linux de la pucp...
TRANSCRIPT
1/27
Frameworks en PHP
Conceptos de Entornos de Desarrollo y características del CakePHP
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)
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
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.
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.
6/27
Ejemplos
[ [ Web Application Component Toolkit ] ]
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)
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 ] ]
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
10/27
Ejemplo en CakePHP: MVC
Controllers….Function editar() {…}….
Views Models
videos
videos_controller.php
Class Video {…}
video.php
editar.thtml
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
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.
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.
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.
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.
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.
17/27
Ejemplo en CakePHP:
Cada cadena define los caracteres permitidos.En la vista elegimos los mensajes a mostrar.
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.
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.
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
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
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.
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
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.
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/
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/