symfony mónica acosta yeison ceballos carlos rodallega

21
Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Upload: martirio-la-sala

Post on 01-Jan-2015

17 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

SymfonyMónica AcostaYeison CeballosCarlos Rodallega

Page 2: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

¿Que es Symfony?

• Symfony es un completo framework diseñado para optimizar, gracias a sus características, el desarrollo de las aplicaciones web. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación.

Page 3: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Características de Symfony

• Fácil de instalar y configurar en la mayoría de plataformas (y con la garantía de que funciona correctamente en los sistemas Windows y *nix estándares)

• Independiente del sistema gestor de bases de datos

• Sencillo de usar en la mayoría de casos, pero lo suficientemente flexible como para adaptarse a los casos más complejos

• Sigue la mayoría de mejores prácticas y patrones de diseño para la web

Page 4: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

• Preparado para aplicaciones empresariales y adaptable a las políticas y arquitecturas propias de cada empresa, además de ser lo suficientemente estable como para desarrollar aplicaciones a largo plazo.

• Código fácil de leer que incluye comentarios de phpDocumentor y que permite un mantenimiento muy sencillo

• Fácil de extender, lo que permite su integración con librerías desarrolladas por terceros

Características de Symfony

Page 5: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Automatización de características de proyectos Web

• La capa de internacionalización que incluye Symfony permite la traducción de los datos y de la interfaz, así como la adaptación local de los contenidos.

• Los formularios incluyen validación automatizada y relleno automático de datos, lo que asegura la obtención de datos correctos y mejora la experiencia de usuario.

• Los datos incluyen mecanismos de escape que permiten una mejor protección contra los ataques producidos por datos corruptos.

Page 6: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Automatización de características de proyectos Web

• La autenticación y la gestión de credenciales simplifican la creación de secciones restringidas y la gestión de la seguridad de usuario.

• El sistema de enrutamiento y las URL limpias permiten considerar a las direcciones de las páginas como parte de la interfaz, además de estar optimizadas para los buscadores.

• Las interacciones con Ajax son muy fáciles de implementar mediante los helpers que permiten encapsular los efectos JavaScript compatibles con todos los navegadores en una única línea de código.

Page 7: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

PEAR (PHP Extension and Application Repository)

• PEAR es un "framework y sistema de distribución para componentes PHP reutilizables". PEAR permite descargar, instalar, actualizar y desinstalar scripts de PHP.

• PEAR es el método más profesional para instalar librerías externas en PHP. Symfony aconseja el uso de PEAR para disponer de una instalación única y centralizada que pueda ser utilizada en varios proyectos. Los plugins de Symfony son paquetes de PEAR con una configuración especial. El propio framework Symfony también está disponible como paquete de PEAR.

Page 8: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

YAML

• YAML es un lenguaje muy sencillo que permite describir los datos como en XML, pero con una sintaxis mucho más sencilla.

• YAML utiliza la tabulación para indicar su estructura, los elementos que forman una secuencia utilizan un guión medio y los pares clave/valor de los array asociativos se separan con dos puntos.

• YAML también dispone de una notación resumida para

describir la misma estructura con menos líneas: los arrays simples se definen con [] y los arrays asociativos se definen con {}.

Page 9: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

YAML

• casa:familia:

apellido: Garcíapadres:

- Antonio- María

hijos:- Jose- Manuel- Carmen

direccion:numero: 34calle: Gran Víaciudad: Cualquieracodigopostal: "12345"

• casa:familia: { apellido: García, padres: [Antonio, María], hijos: [Jose, Manuel, Carmen] }direccion: { numero: 34, direccion: Gran Vía, ciudad: Cualquiera, codigopostal: "12345" }

Page 10: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Mapeo de Objetos a Bases de datos (ORM)

• Un ORM consiste en una serie de objetos que permiten acceder a los datos y que contienen en su interior cierta lógica de negocio.

Page 11: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Mapeo de Objetos a Bases de datos (ORM)

• Una de las ventajas de utilizar estas capas de abstracción de objetos/relacional es que evita utilizar una sintaxis específica de un sistema de bases de datos concreto. Esta capa transforma automáticamente las llamadas a los objetos en consultas SQL optimizadas para el sistema gestor de bases de datos que se está utilizando en cada momento.

Page 12: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

El patrón MVC

• El modelo representa la información con la que trabaja la aplicación, es decir, su lógica de negocio.

• La vista transforma el modelo en una página web que permite al usuario interactuar con ella.

• El controlador se encarga de procesar las interacciones del usuario y realiza los cambios

• apropiados en el modelo o en la vista.

Page 13: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

La implementación del MVC que realiza Symfony

• Componentes se necesitarían para realizar una página sencilla:

• La capa del ModeloAbstracción de la base de datosAcceso a los datos

• La capa de la VistaVistaPlantillaLayout

• La capa del ControladorControlador frontalAcción

Page 14: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

La implementación del MVC que realiza Symfony

• Symfony toma lo mejor de la arquitectura MVC y la implementa de forma que el desarrollo de aplicaciones sea rápido y sencillo.

Page 15: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Sesiones de Usuario

• Symfony maneja automáticamente las sesiones del usuario y es capaz de almacenar datos de forma persistente entre peticiones. Utiliza el mecanismo de manejo de sesiones incluido en PHP y lo mejora para hacerlo mas configurable y más fácil de usar.

• El manejo de sesiones de Symfony se encarga de gestionar automáticamente el almacenamiento de los IDs de sesión tanto en el cliente como en el servidor.

• En el lado del cliente, las sesiones son manejadas por cookies. En el lado del servidor, Symfony guarda por defecto las sesiones de usuario en archivos.

Page 16: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Seguridad en la Acción

• Antes de ser ejecutada, cada acción pasa por un filtro especial que verifica si el usuario actual tiene privilegios de acceder a la acción requerida.

• En Symfony, los privilegios están compuestos por dos partes:

– Acciones Seguras– Credenciales

• Ejemplo de archivo security.yml

ver:is_secure: off # Todos los usuarios pueden ejecutar la acción "ver“

modificar:is_secure: on # Sólo para usuarios autenticadoscredentials: admin # Con credencial "admin"

Page 17: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Seguridad en la Acción

Page 18: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Sfplayground

• Es un IDE presentado a mediados de Marzo de 2008

• Su objetivo principal es “convertir la programación de las aplicaciones web en algo tan sencillo como jugar con piezas de LEGO ”

• Desafortunadamente casi todo sobre este IDE ha desaparecido incluyendo la pagina del proyecto

¿El futuro de symfony?

Page 19: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

SfplaygroundConfiguración del proyecto

Page 20: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

SfplaygroundEditor visual de aplicaciones

Page 21: Symfony Mónica Acosta Yeison Ceballos Carlos Rodallega

Referencias

• http://pear.php.net/• http://www.php.net/• http://www.symfony.es/