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/
27/27
Gracias por la atención
Natalí Flores Lafosse
natali.flores@pucp.edu.pe
|