Symfony Framework para el desarrollo de aplicaciones web
Upcoming SlideShare
Loading in...5
×
 

Symfony Framework para el desarrollo de aplicaciones web

on

  • 2,708 views

Symfony

Symfony
Framework para el
desarrollo de
aplicaciones web

Statistics

Views

Total Views
2,708
Views on SlideShare
2,705
Embed Views
3

Actions

Likes
1
Downloads
59
Comments
0

1 Embed 3

http://www.sfexception.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Symfony Framework para el desarrollo de aplicaciones web Symfony Framework para el desarrollo de aplicaciones web Document Transcript

  • Symfony Framework para el desarrollo de aplicaciones web Symfony es un framework orientado al desarrollo de aplicaciones web de forma sencilla, rápida y divertida. En otras palabras, es una aplicación Introducción ✔ genérica incompleta y configurable a Hoy en día, con la aparición de nuevas la que podemos añadirle las últimas metodologías y herramientas en el ámbito de piezas para construir una aplicación la ingeniería de software, el desarrollo de concreta. aplicaciones web ha tomado un cause un tanto distinto a lo que se tenía hace unos años atrás, ésto representa que, si antes con Objetivos de un framework el desarrollo y herramientas tradicionales Desarrollo rápido. demorábamos semanas y/o meses en ✔ Desarrollo estructurado. prototipiarlas, meses o hasta años en ✔ Reutilización de código. desarrollarlas completamente; hoy en día con ✔ Disminuir el esfuerzo en el desarrollo. la aparición de los frameworks éste tiempo se ✔ Aprovechar las funcionalidades ya ha reducido considerablemente, ✔ implementadas, no debemos representando que ahora con la ayuda de reinventar la rueda. estas nuevas herramientas como son los Nos concentramos directamente en la frameworks y teniendo como aliado a las ✔ solución del problema. metodologías ágiles de desarrollo, podemos Tener como aliado a las metodologías prototipear nuestras aplicaciones en cuestión ✔ de desarrollo ágiles (XP, AD). de minutos u horas, y terminar su desarrollo en una par de semanas. Patrón MVC Desde la aparición de RoR (Ruby on Rails) el Que es un framework padrino de todos los frameworks de desarrollo de aplicaciones web, el patrón Es una estructura de soporte definida ✔ MCV ha cobrado una notable importancia, en la cual otro proyecto de software sobre todo por su cualidad de dividir en puede ser organizado y desarrollado. capas el desarrollo de un proyecto o Se han convertido en la piedra ✔ aplicación web. angular de la moderna ingeniería del ✔ Modelo: Encargado de modelar y software. contener la lógica del dominio de la Es una estructura software compuesta ✔ aplicación. de componentes personalizables e ✔ Vista: Encargada de contener la intercambiables para el desarrollo de lógica de presentación. una aplicación.
  • Controlador: Encargado de ser el Posee buena documentación. ✔ ✔ engranaje entre el modelo y la vista, y Es multiplataforma. ✔ también contener la lógica del Posee una numerosa comunidad de ✔ negocio. desarrolladores y usuarios. Inspirado en Ruby on Rails (Padrino ✔ de la mayoría de los frameworks). Está en constante desarrollo. ✔ Componentes de Symfony Propel: ORM para el acceso a Base ✔ de datos Creole: Maneja la capa de ✔ abstracción de BD Phing: Mapeador XML ✔ Pake: Gestión de ejecución de Scripts ✔ Preparando nuestro entorno de trabajo. Para empezar a trabajar y desarrollar aplicaciones web en Symfony, precisamos Gráfico 1: Patrón MVC cumplir algunos requisitos como ser: Que es Symfony Tener instalado y configurado Apache ✔ o cualquier servidor de aplicaciones con soporte PHP. Es un framework para el desarrollo de ✔ Tener instalado y configurado PHP 5o aplicaciones web. ✔ superior. Es la respuesta de php para Ruby on ✔ Tener instalado algún gestor de base Rails. ✔ de datos (Sqlite, MySQl, PostgreSQL, Permite el desarrollo de aplicaciones ✔ MS-SQL, entre otros). web de forma rápida. Instalación de Symfony Filosofía de Symfony Utilizando Sandbox Reutilización de código. ✔ ✔ Obtener: http://www.symfony- Desarrollar aplicaciones web de forma ✔ project.com/get/sf_sandbox.tgz rápida, sencilla y divertida. ✔ Basta con descomprimir y publicarlo Utilizar los mejores componentes ✔ en el servidor web actualmente disponibles. Mediante PEAR Combinar todo en un paquete fácil de ✔ usar. pear channel-discover ✔ pear.symfony-project.com Symfony provee el pegamento, de tal ✔ pear remote-list -c symfony ✔ forma que uds. no haga el suyo. pear install symfony/symfony ✔ Para confirmar que nuestra instalación es Características de Symfony correcta, introducimos el comando Symfony -V, en la línea de comando. Se basa en el patrón MVC. ✔ Tiene todo lo necesario para ✔ desarrollar aplicaciones Web. Soporta Ajax. ✔
  • Creación de una aplicación La creación de un proyecto en symfony se la realiza mediante la instrucción: symfony init-project aplicacion Esta instrucción creará una estructura de directorios y dentro de ellos archivos que Gráfico 2: Uso del comando Symfony servirán para configuración, implementación y depuración de la aplicación Nuestra primera aplicación Estructura de directorios Para una mejor comprensión del potencial de Symfony en el desarrollo de aplicaciones Al igual que la mayoría de los frameworks web, realizaremos una aplicación paso a orientados al desarrollo de aplicaciones web, paso. Symfony cuando crea los proyectos y aplicaciones, por defecto crea una estructura Nuestra pequeña aplicación se enmarca en de directorios definida, estructura que nos un entorno donde se mantiene el registro de permite mantener un orden y conocer eventos (congresos jornadas, etc), a los exactamente donde se encuentran todos y cuales concurren varios expositores de cada uno de los componentes de nuestra diferentes nacionalidades y donde cada uno aplicación. de estos tiene una o más conferencias que impartir. Estructura de un Proyecto Hoy en día, los frameworks mantienen una forma similar de estructurar sus proyectos, imaginemos como si se tratase de un organigrama donde se consideran las siguientes partes: Un proyecto contiene una o varias ✔ aplicaciones Una aplicación tiene uno o varios ✔ módulos Un módulo tiene una o varias ✔ acciones Una acción puede o no estar asociada ✔ a una vista Creación de un proyecto La creación de un proyecto en symfony se la realiza mediante la instrucción: symfony init-project aplicacion Gráfico 3: Estructura de la aplicación Esta instrucción creará una estructura de directorios y dentro de ellos archivos que servirán para configuración, implementación y depuración del proyecto
  • manual. Ejecutando nuestra Crear el esquema del dominio de forma aplicación automática desde una base de datos ya existente. Hasta este momento nuestra aplicación no En este tutorial haremos uso de la primera realiza ninguna tarea especifica, pero alternativa; esta descripción debe ir incluida podemos observarla ejecutándose en en el fichero config/schema.yml, así: algunos de sus entornos, por medio del browser, como muestra la siguiente figura: --- propel: evento: _attributes: { phpName: Evento } idMethod: native id: {type: INTEGER, required: true, autoIncrement: true, primaryKey: true} nombre: {type: varchar, size: 50} ciudad: {type: varchar, size: 50} inicia: {type: date} finaliza: {type: date} sitioweb: {type: varchar, size: 50} expositor: _attributes: { phpName: Expositor } idMethod: native id: {type: INTEGER, required: true, autoIncrement: true, primaryKey: true} paterno: {type: varchar, size: 25} materno: {type: varchar, size: 25} nombre: {type: varchar, size: 25} nacionalidad: {type: varchar, size: 25} email: {type: varchar, size: 50} conferencia: _attributes: { phpName: Conferencia } id: {type: INTEGER, required: true, autoIncrement: true, primaryKey: true} evento_id: Gráfico 4a: Entorno de Producción expositor_id: fecha: {type: date} titulo: {type: varchar, size: 50} resumen:{type: longvarchar} Generación del modelo orientado a objetos Symfony permite generar el modelo orientado a objetos en base al esquema (config/schema.yml), modelo que nos permitirá hacer uso de los conceptos y facilidades brindadas por el paradigma orientado a objeto. Esta generación se la realiza mediante la instrucción: symfony propel-build-model Generación del script SQL Como en nuestra aplicación creamos de Gráfico 4b: Entorno de desarrollo forma manual el esquema correspondiente al dominio de nuestra aplicación, debemos Modelado del dominio generar el script SQL para la creación de las tablas correspondientes en la base de datos Para describir el dominio de nuestra utilizada en nuestra aplicación, en nuestro aplicación, symfony provee 2 alternativas: caso ejecutaremos este script en un servidor Crear el esquema del dominio de forma
  • mysql. Esta generación se la realiza Rails, para representar la generación de los mediante la instrucción: artefactos que permiten un uso mas sencillo y symfony propel-build-sql rápido de las interfaces que permiten operaciones básicas, denominados de forma El archivo resultante esta almacenado en genérica CRUDs (Create, Read, Update y data/sql/lib.model.schema.sql Delete) o ABMs (Altas Bajas y Modificaciones). El scaffolding aparte de Acceso a la base de datos crear las interfaces también crea los métodos que permiten acceder a los atributos de las Para que nuestra aplicación pueda acceder a distintas clases, con la posibilidad de la base de datos que contiene las tablas y ampliarlos y permitir mayor interacción y datos, se deberá configurar el archvio funcionalidad que la provista inicialmente. config/databases.yml, de la siguiente forma: all: Symfony permite 2 tipos de scaffolding: propel: class: sfPropelDatabase param: Orientadas a los usuarios del sistema. ✔ dsn: Orientadas a la administración de la ✔ mysql://usuario:clave@localhost/basededatos aplicación Scaffolding Scaffolding es un término introducido por En este tutorial, haremos uso del scaffolding orientados a los usuarios del sistema, así como se muestra en la figura. Gráfico 5: Scaffolding De forma análoga se debe proceder a generar los scaffolds para todas clases de nuestro dominio, siempre que sean necesarias. podemos empezar a probar todas y cada una Ejecución y pruebas de las características provistas por los Una vez corriendo nuestra aplicación scaffolds generados:
  • Formularios ✔ Ventanas de dialogo ✔ Relaciones ✔ Efectos JavaScript en ciertos campos ✔ .... ✔ Gráfico 9: Ventanas de dialogo Referencias [1] http://www.symfony-project.org [2] http://symfony.es [3] The Definitive Guide to Symfony Gráfico 6: Listados Autor Gráfico 7: Formulario de entradas Esteban Saavedra López Líder de la Comunidad Atix (Oruro – Bolivia) Activista de Software Libre en Bolivia Email: jesaavedra@opentelematics.org Website: http://jesaavedra.opentelematics.org Gráfico 8: Efecto campo date