SlideShare uma empresa Scribd logo
1 de 6
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Catalogo formacion Autentia 2007..
Catalogo formacion Autentia 2007..Catalogo formacion Autentia 2007..
Catalogo formacion Autentia 2007..Roberto Canales
 
Despliegue lamp
Despliegue lampDespliegue lamp
Despliegue lampBVela
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorJomicast
 
Migrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureMigrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureOSSE
 
FUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICFUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICBenny Jose
 
Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure
Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure
Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure SOFTENG
 
GEP2009 EQ4 L9 G&Ruth Trad Cap 7
GEP2009  EQ4  L9  G&Ruth Trad Cap 7GEP2009  EQ4  L9  G&Ruth Trad Cap 7
GEP2009 EQ4 L9 G&Ruth Trad Cap 7joaquin garcia
 

Mais procurados (10)

Symfony
SymfonySymfony
Symfony
 
Catalogo formacion Autentia 2007..
Catalogo formacion Autentia 2007..Catalogo formacion Autentia 2007..
Catalogo formacion Autentia 2007..
 
Despliegue lamp
Despliegue lampDespliegue lamp
Despliegue lamp
 
Tutorial hacer un crud con prado
Tutorial hacer un crud con pradoTutorial hacer un crud con prado
Tutorial hacer un crud con prado
 
Desarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidorDesarrollo de aplicaciones web en el entorno servidor
Desarrollo de aplicaciones web en el entorno servidor
 
Migrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows AzureMigrando Una Aplicación OnPremise existente a Windows Azure
Migrando Una Aplicación OnPremise existente a Windows Azure
 
FUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICFUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASIC
 
Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure
Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure
Como migrar una gran aplicacion a cloud, con Microsoft Windows Azure
 
Proyecto
ProyectoProyecto
Proyecto
 
GEP2009 EQ4 L9 G&Ruth Trad Cap 7
GEP2009  EQ4  L9  G&Ruth Trad Cap 7GEP2009  EQ4  L9  G&Ruth Trad Cap 7
GEP2009 EQ4 L9 G&Ruth Trad Cap 7
 

Destaque

Introducción a la Historia y a los métodos históricos
Introducción a la Historia y a los métodos históricosIntroducción a la Historia y a los métodos históricos
Introducción a la Historia y a los métodos históricossmerino
 
PHP Entwicklung mit VMware Images
PHP Entwicklung mit VMware ImagesPHP Entwicklung mit VMware Images
PHP Entwicklung mit VMware ImagesAlexander Meindl
 
Carnaval Centro de Adultos
Carnaval Centro de AdultosCarnaval Centro de Adultos
Carnaval Centro de Adultoscarmela2008
 
Samsung MP3 YP-S5 Bilder
Samsung MP3 YP-S5 BilderSamsung MP3 YP-S5 Bilder
Samsung MP3 YP-S5 Bildermarco678
 
Samsung YP-P2 bilder
Samsung YP-P2 bilderSamsung YP-P2 bilder
Samsung YP-P2 bildermarco678
 
Partizipative Bildungsformate
Partizipative BildungsformatePartizipative Bildungsformate
Partizipative Bildungsformatedavidroethler
 
Textos y cuestiones 2010-2011
Textos y cuestiones 2010-2011Textos y cuestiones 2010-2011
Textos y cuestiones 2010-2011smerino
 
Digitale Universität und medienkultureller Wandel
Digitale Universität und medienkultureller WandelDigitale Universität und medienkultureller Wandel
Digitale Universität und medienkultureller WandelTorsten Meyer
 
2. Bases de datos Curso Lexico en inglés en ByD
2. Bases de datos Curso Lexico en inglés en ByD2. Bases de datos Curso Lexico en inglés en ByD
2. Bases de datos Curso Lexico en inglés en ByDNicolas Robinson-Garcia
 
EU-Finanzierung für Kultur
EU-Finanzierung für KulturEU-Finanzierung für Kultur
EU-Finanzierung für Kulturdavidroethler
 
Interactivo en multimedia
Interactivo en multimediaInteractivo en multimedia
Interactivo en multimediaMtz Rey
 
Distintos formatos estándar de imágenes utilizables entre diversos
Distintos formatos estándar de imágenes utilizables entre diversosDistintos formatos estándar de imágenes utilizables entre diversos
Distintos formatos estándar de imágenes utilizables entre diversosMtz Rey
 
Wunder des quran [german]
Wunder des quran [german]Wunder des quran [german]
Wunder des quran [german]obl97
 
Web-Relooking der Kosmetikmarke Claire Fisher
Web-Relooking der Kosmetikmarke Claire FisherWeb-Relooking der Kosmetikmarke Claire Fisher
Web-Relooking der Kosmetikmarke Claire FisherMOONDA
 
Casos sospechosos sarampion_argentina
Casos sospechosos sarampion_argentinaCasos sospechosos sarampion_argentina
Casos sospechosos sarampion_argentinausapuka
 
MOOCs & regionale Bildung
MOOCs & regionale BildungMOOCs & regionale Bildung
MOOCs & regionale Bildungdavidroethler
 

Destaque (20)

Twitter für KMU
Twitter für KMUTwitter für KMU
Twitter für KMU
 
Introducción a la Historia y a los métodos históricos
Introducción a la Historia y a los métodos históricosIntroducción a la Historia y a los métodos históricos
Introducción a la Historia y a los métodos históricos
 
PHP Entwicklung mit VMware Images
PHP Entwicklung mit VMware ImagesPHP Entwicklung mit VMware Images
PHP Entwicklung mit VMware Images
 
Carnaval Centro de Adultos
Carnaval Centro de AdultosCarnaval Centro de Adultos
Carnaval Centro de Adultos
 
Samsung MP3 YP-S5 Bilder
Samsung MP3 YP-S5 BilderSamsung MP3 YP-S5 Bilder
Samsung MP3 YP-S5 Bilder
 
Samsung YP-P2 bilder
Samsung YP-P2 bilderSamsung YP-P2 bilder
Samsung YP-P2 bilder
 
Partizipative Bildungsformate
Partizipative BildungsformatePartizipative Bildungsformate
Partizipative Bildungsformate
 
Album de fotografías
Album de fotografíasAlbum de fotografías
Album de fotografías
 
Textos y cuestiones 2010-2011
Textos y cuestiones 2010-2011Textos y cuestiones 2010-2011
Textos y cuestiones 2010-2011
 
Social entre talk final
Social entre talk finalSocial entre talk final
Social entre talk final
 
Digitale Universität und medienkultureller Wandel
Digitale Universität und medienkultureller WandelDigitale Universität und medienkultureller Wandel
Digitale Universität und medienkultureller Wandel
 
2. Bases de datos Curso Lexico en inglés en ByD
2. Bases de datos Curso Lexico en inglés en ByD2. Bases de datos Curso Lexico en inglés en ByD
2. Bases de datos Curso Lexico en inglés en ByD
 
EU-Finanzierung für Kultur
EU-Finanzierung für KulturEU-Finanzierung für Kultur
EU-Finanzierung für Kultur
 
Interactivo en multimedia
Interactivo en multimediaInteractivo en multimedia
Interactivo en multimedia
 
Distintos formatos estándar de imágenes utilizables entre diversos
Distintos formatos estándar de imágenes utilizables entre diversosDistintos formatos estándar de imágenes utilizables entre diversos
Distintos formatos estándar de imágenes utilizables entre diversos
 
Wunder des quran [german]
Wunder des quran [german]Wunder des quran [german]
Wunder des quran [german]
 
Trabajo museo elder
Trabajo museo elderTrabajo museo elder
Trabajo museo elder
 
Web-Relooking der Kosmetikmarke Claire Fisher
Web-Relooking der Kosmetikmarke Claire FisherWeb-Relooking der Kosmetikmarke Claire Fisher
Web-Relooking der Kosmetikmarke Claire Fisher
 
Casos sospechosos sarampion_argentina
Casos sospechosos sarampion_argentinaCasos sospechosos sarampion_argentina
Casos sospechosos sarampion_argentina
 
MOOCs & regionale Bildung
MOOCs & regionale BildungMOOCs & regionale Bildung
MOOCs & regionale Bildung
 

Semelhante a Symfony Framework para el desarrollo de aplicaciones web

Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebEsteban Saavedra
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingINSIGNIA4U
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx22040086
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 
Ecosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónEcosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónManuel Jesús Recena Soto
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBUNIV DE CIENCIAS Y ARTES
 
Trac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de SoftwareTrac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de SoftwareEsteban Saavedra
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroBBVA API Market
 
Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)Young Suk Ahn Park
 
Programa de lenguajes laura garcia marin
Programa de lenguajes   laura garcia marinPrograma de lenguajes   laura garcia marin
Programa de lenguajes laura garcia marinOnce Redes
 
Actividad nº 4
Actividad nº 4Actividad nº 4
Actividad nº 4marcos_77
 

Semelhante a Symfony Framework para el desarrollo de aplicaciones web (20)

Catalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones WebCatalyst: Framework para el desarrollo de aplicaciones Web
Catalyst: Framework para el desarrollo de aplicaciones Web
 
Symfony
SymfonySymfony
Symfony
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile Prototyping
 
APPSWEBI4.0.pptx
APPSWEBI4.0.pptxAPPSWEBI4.0.pptx
APPSWEBI4.0.pptx
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Ecosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - AutomatizaciónEcosistemas de Desarrollo Software - Automatización
Ecosistemas de Desarrollo Software - Automatización
 
ATIX20
ATIX20ATIX20
ATIX20
 
Framework
FrameworkFramework
Framework
 
LARAVEL-01-INTRODUCCION.pptx
LARAVEL-01-INTRODUCCION.pptxLARAVEL-01-INTRODUCCION.pptx
LARAVEL-01-INTRODUCCION.pptx
 
Tarea 6
Tarea 6Tarea 6
Tarea 6
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
Trac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de SoftwareTrac: Gestión de proyectos de desarrollo de Software
Trac: Gestión de proyectos de desarrollo de Software
 
Frameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuroFrameworks y herramientas para la web del futuro
Frameworks y herramientas para la web del futuro
 
EQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILASEQUIPO 2,2A PARTE DE LAS AGUILAS
EQUIPO 2,2A PARTE DE LAS AGUILAS
 
Grails
GrailsGrails
Grails
 
Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)
 
Dreamweaver
DreamweaverDreamweaver
Dreamweaver
 
Programa de lenguajes laura garcia marin
Programa de lenguajes   laura garcia marinPrograma de lenguajes   laura garcia marin
Programa de lenguajes laura garcia marin
 
Actividad nº 4
Actividad nº 4Actividad nº 4
Actividad nº 4
 

Mais de Esteban Saavedra (20)

Atix30
Atix30Atix30
Atix30
 
Atix29
Atix29Atix29
Atix29
 
Atix28
Atix28Atix28
Atix28
 
Atix27
Atix27Atix27
Atix27
 
Atix26
Atix26Atix26
Atix26
 
Atix25
Atix25Atix25
Atix25
 
Rabbitmq
RabbitmqRabbitmq
Rabbitmq
 
Ansible
AnsibleAnsible
Ansible
 
Perl
PerlPerl
Perl
 
Atix24
Atix24Atix24
Atix24
 
Atix23
Atix23Atix23
Atix23
 
Lineas Base Migracion a Software Libre
Lineas Base Migracion a Software LibreLineas Base Migracion a Software Libre
Lineas Base Migracion a Software Libre
 
Seguridad Sistemas de Gobierno
Seguridad Sistemas de GobiernoSeguridad Sistemas de Gobierno
Seguridad Sistemas de Gobierno
 
Tunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y FirewallsTunneling: Esquivando Restricciones de Proxies y Firewalls
Tunneling: Esquivando Restricciones de Proxies y Firewalls
 
Bi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar EmpresasBi Un Modelo Eficiente para Gerenciar Empresas
Bi Un Modelo Eficiente para Gerenciar Empresas
 
Clouds privadas
Clouds privadasClouds privadas
Clouds privadas
 
Introduccion Computacion Ubicua
Introduccion Computacion UbicuaIntroduccion Computacion Ubicua
Introduccion Computacion Ubicua
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Avances Tecnologicos
Avances TecnologicosAvances Tecnologicos
Avances Tecnologicos
 
Dni Electronico Bolivia
Dni Electronico BoliviaDni Electronico Bolivia
Dni Electronico Bolivia
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 

Último (13)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 

Symfony Framework para el desarrollo de aplicaciones web

  • 1. 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.
  • 2. 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. ✔
  • 3. 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
  • 4. 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
  • 5. 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:
  • 6. 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