Symfony

  • 1,686 views
Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,686
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
4

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Frameworks MVC para el Desarrollo Web - Symfony Esteban Saavedra L´pez o CEO Opentelematics Internacional Bolivia jesaavedra@opentelematics.org http://jesaavedra.opentelematics.org http://esteban.profesionales.org Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 1 / 33
  • 2. Tabla de Contenidos 1 Introducci´n a los Frameworks o 2 Patron MVC 3 Symfony 4 Caracter´ ısticas de un Proyecto Symfony 5 Creaci´n de un proyecto o 6 Demostraci´n o 7 Conclusiones 8 Referencias Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 2 / 33
  • 3. Introducci´n a los Frameworks o Que es un Framework? Es una estructura de soporte definida en la cual otro proyecto de software puede ser organizado y desarrollado. Se han convertido en la piedra angular de la moderna ingenier´ ıa del software Es una estructura software compuesta de componentes personalizables e intercambiables para el desarrollo de una aplicaci´n. o En otras palabras, es una aplicaci´n gen´rica incompleta y o e configurable a la que podemos aadirle las ultimas piezas para ´ construir una aplicaci´n concreta. o Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 3 / 33
  • 4. Introducci´n a los Frameworks o Cual el objetivo de un framework? Desarrollo r´pido a Desarrollo estructurado Reutilizaci´n de c´digo o o Disminuir el esfuerzo en el desarrollo Aprovechamos las funcionalidades ya implementadas. No debemos reinventar la rueda Nos concetramos directamente en la soluci´n del problema o Tener como aliado a las metodolog´ de desarrollo Ag´ (XP, ıas ıles AD) Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 4 / 33
  • 5. Patron MVC Patr´n MVC o Modelo Controlador Vista Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 5 / 33
  • 6. Symfony Que es Symfony Es un framework para el desarrollo de aplicaciones web Es la respuesta de php para Ruby on Rails Permite el desarrollo de aplicaciones web de forma r´pida a Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 6 / 33
  • 7. Symfony Filosof´ de Symfony ıa Reutilizaci´n de c´digo o o Desarrollar aplicaciones web de forma r´pida, sencilla y divertida a Utilizar los mejores componentes actualmente disponibles Combinar todo en un paquete f´cil de usar a Symfony provee el pegamento, de tal forma que uds no haga el suyo. Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 7 / 33
  • 8. Symfony Por que Symfony Se basa en el patr´n MVC o Tiene todo lo necesario para desarrollar aplicaciones Web Soporta Ajax Posee buena documentaci´n o Es multiplataforma Posee una numerosa comunidad de desarrolladores y usuarios Inspirado en Ruby on Rails (Padrino de la mayor´ de los ıa Frameworks) Est´ en constante desarrollo a Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 8 / 33
  • 9. Symfony Componentes de Symfony Propel: ORM para el acceso a Base de datos Creole: Maneja la capa de abstracci´n de BD o Phing: Mapeador XML Pake: Gesti´n de ejecuci´n de o o Scripts Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 9 / 33
  • 10. Symfony Instalaci´n de Symfony o Utilizando Sandbox Obtener: http://www.symfony-project.com/get/sf_sandbox.tgz Basta con descomprimir y publicarlo en el servidr web Mediante PEAR pear channel-discover pear.symfony-project.com pear remote-list -c symfony pear install symfony/symfony Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 10 / 33
  • 11. Caracter´ ısticas de un Proyecto Symfony Estructura de un proyecto de Symfony Symfony proporciona una estructura jer´rquica: a Proyecto Aplicaci´n o M´dulo o Acci´n o Vista Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 11 / 33
  • 12. Caracter´ ısticas de un Proyecto Symfony Aplicaciones Todo proyecto contiene una o m´s aplicaciones a Dentro de un mismo proyecto, las aplicaciones: Comparten el mismo modelo de datos Poseen vistas independientes No comparten sesiones de usuario Limitaci´n en deducir URLs de las dem´s aplicaciones o a Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 12 / 33
  • 13. Caracter´ ısticas de un Proyecto Symfony M´dulos o Una aplicaci´n est´ compuesta por un conjunto de m´dulos o a o Un m´dulo agrupa a un conjunto de peticiones o Dentro de una misma aplicaci´n, los m´dulos: o o Pueden compartir la misma decoraci´n o Comparten la misma sesi´n o Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 13 / 33
  • 14. Caracter´ ısticas de un Proyecto Symfony Acciones Contienen l´gica de aplicaci´n o o Son implementadas como m´todos e Cada petici´n HTTP resulta en la invocaci´n de una acci´n o o o Dicha traducci´n se denomina routing, y se basa en la URL o Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 14 / 33
  • 15. Caracter´ ısticas de un Proyecto Symfony Vistas Contienen la l´gica de presentaci´n o o Se implementan como plantillas PHP/HTML El resultado de la acci´n determina qu´ vista se procesa o e Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 15 / 33
  • 16. Caracter´ ısticas de un Proyecto Symfony Entornos Por naturaleza Synfony, prevee la existencia de 3 entronos: DEV: Entorno de desarrollo TEST: Entorno de pruebas PROD: Entorno de Producci´n o Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 16 / 33
  • 17. Caracter´ ısticas de un Proyecto Symfony Creaci´n de un proyecto o Instrucci´n o symfony init-project libros Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 17 / 33
  • 18. Caracter´ ısticas de un Proyecto Symfony Que gener´ esto? o Una estructura jer´rquica de directorios: a Apps C´digo de las aplicaciones o Batch Scripts para la l´ ınea de comandos Cache Cach´ de la conguraci´n e o Cong Conguraci´n global del proyecto o Data Schema SQL, datos de prueba Lib El modelo y bibliotecas de terceros Log Registros de actividad de Symfony Plugins Plugins instalados para la el proyecto Test Pruebas de testeo Web Ra´ web: CSSs, JSs, etc. ız Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 18 / 33
  • 19. Creaci´n de un proyecto o Pasos para crear un proyecto 1 Crear el proyecto 2 Crear la aplicaci´n o 3 Crear el c´digo del modelo de datos o 4 Generar el modelo de datos 5 Crear la base de datos (SQL) 6 Generar los CRUDs 7 Adecuar los templates (CSS y/o JavaScript) 8 Publicar la Aplicaci´n o Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 19 / 33
  • 20. Creaci´n de un proyecto o 1. Creaci´n de un proyecto o Instrucci´n o symfony init-project libros Detalles del proyecto >> dir+ /home/jesaavedra/aplic_web/symfony/libros/batch >> dir+ /home/jesaavedra/aplic_web/symfony/libros/test >> dir+ /home/jesaavedra/aplic_web/symfony/libros/test/unit >> dir+ /home/jesaavedra/aplic_web/symfony/libros/test/functional ..... >> dir+ /home/jesaavedra/aplic_web/symfony/libros/web/images >> dir+ /home/jesaavedra/aplic_web/symfony/libros/web/js >> file+ /home/jesaavedra/aplic_web/symfony/libros/web/robots.txt >> dir+ /home/jesaavedra/aplic_web/symfony/libros/web/uploads .... >> dir+ /home/jesaavedra/aplic_web/symfony/libros/plugins >> dir+ /home/jesaavedra/aplic_web/symfony/libros/config >> file+ /home/jesaavedra/aplic_web/symfony/libros/config/schema.yml >> file+ /home/jesaavedra/aplic_web/symfony/libros/config/databases.yml .... >> tokens /home/jesaavedra/aplic_web/symfony/libros/config/propel.ini >> tokens /home/jesaavedra/aplic_web/symfony/libros/config/propel.ini >> tokens /home/jesaavedra/aplic_web/symfony/libros/config/config.php >> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/cache >> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/log ..... Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 20 / 33
  • 21. Creaci´n de un proyecto o 2. Creaci´n de la aplicaci´n o o Instrucci´n o symfony init-app libros Detalles de la aplicac’on >> dir+ /home/jesaavedra/aplic_web/symfony/libros/apps/libros/config >> file+ /home/jesaavedra/aplic_web/symf...apps/libros/config/security.yml >> file+ /home/jesaavedra/aplic_web/symf...bros/apps/libros/config/app.yml >> file+ /home/jesaavedra/aplic_web/symf...os/apps/libros/config/cache.yml >> file+ /home/jesaavedra/aplic_web/symf...ros/apps/libros/config/i18n.yml >> file+ /home/jesaavedra/aplic_web/symf...pps/libros/config/factories.yml >> file+ /home/jesaavedra/aplic_web/symf.../apps/libros/config/routing.yml >> file+ /home/jesaavedra/aplic_web/symf...s/apps/libros/config/config.php >> file+ /home/jesaavedra/aplic_web/symf...apps/libros/config/settings.yml ..... >> tokens /home/jesaavedra/aplic_web/symf...apps/libros/config/settings.yml >> file+ /home/jesaavedra/aplic_web/symfony/libros/web/index.php >> file+ /home/jesaavedra/aplic_web/symfony/libros/web/libros_dev.php >> tokens /home/jesaavedra/aplic_web/symfony/libros/web/index.php >> tokens /home/jesaavedra/aplic_web/symfony/libros/web/libros_dev.php >> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/cache >> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/log >> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/web/uploads >> chmod 777 /home/jesaavedra/aplic_web/symfony/libros/symfony >> chmod 777 web/uploads/assets >> dir+ /home/jesaavedra/aplic_web/symfony/libros/test/functional/libros Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 21 / 33
  • 22. Creaci´n de un proyecto o 3. Crear el c´digo del modelo de datos o Editar el archivo libros/config/schema.yml Detalles del modelo --- propel: cliente: _attributes: { phpName: Cliente } 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 ci: type: VARCHAR size: 10 direccion: type: VARCHAR size: 75 .......... Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 22 / 33
  • 23. Creaci´n de un proyecto o 4. Generar el modelo de datos Instrucci´n o symfony propel-build-model Detalles de la generaci´n del modelo o [propel-om] Target database type: mysql [propel-om] Target package: lib.model [propel-om] Using template path: /usr/share/php/symfony/vendor/propel-generator/templates [propel-om] Output directory: /home/jesaavedra/aplic_web/symfony/libros [propel-om] Processing: generated-schema.xml [propel-om] Processing Datamodel : JoinedDataModel [propel-om] - processing database : propel [propel-om] + cliente [propel-om] -> BaseClientePeer [builder: SfPeerBuilder] [propel-om] -> BaseCliente [builder: SfObjectBuilder] [propel-om] -> ClienteMapBuilder [builder: SfMapBuilderBuilder] [propel-om] -> ClientePeer [builder: SfExtensionPeerBuilder] [propel-om] -> Cliente [builder: SfExtensionObjectBuilder] [propel-om] + libro [propel-om] -> BaseLibroPeer [builder: SfPeerBuilder] [propel-om] -> BaseLibro [builder: SfObjectBuilder] [propel-om] -> LibroMapBuilder [builder: SfMapBuilderBuilder] [propel-om] -> LibroPeer [builder: SfExtensionPeerBuilder] [propel-om] -> Libro [builder: SfExtensionObjectBuilder] ..... Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 23 / 33
  • 24. Creaci´n de un proyecto o 5. Generando el SQL de creaci´n de la BD o Instrucci´n o symfony propel-build-sql Sal´ ıda ...... propel > sql: [echo] +------------------------------------------+ [echo] | | [echo] | Generating SQL for YOUR Propel project! | [echo] | | [echo] +------------------------------------------+ [phingcall] Calling Buildfile ’/usr/share/php/symfony/vendor/propel-generator/build-propel.xml’ with target ’sq [property] Loading /usr/share/php/symfony/vendor/propel-generator/./default.properties propel > sql-template: [propel-sql] Processing: generated-schema.xml [propel-sql] Writing to SQL file: /home/jesaavedra/aplic_web/symfony/libros/data/sql/lib.model.schema.sql [propel-sql] + cliente [builder: MysqlDDLBuilder] [propel-sql] + compra [builder: MysqlDDLBuilder] [propel-sql] + libro [builder: MysqlDDLBuilder] [propel-sql] + pago [builder: MysqlDDLBuilder] BUILD FINISHED Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 24 / 33
  • 25. Creaci´n de un proyecto o 6. Generando los CRUDs Instrucci´n o symfony propel-generate-crud libros cliente Cliente Sal´ ıda >> dir+ /home/jesaavedra/aplic_web/symf.../libros/modules/cliente/actions >> file+ /home/jesaavedra/aplic_web/symf...iente/actions/actions.class.php >> dir+ /home/jesaavedra/aplic_web/symf...ibros/modules/cliente/templates >> file+ /home/jesaavedra/aplic_web/symf...iente/templates/editSuccess.php >> file+ /home/jesaavedra/aplic_web/symf...iente/templates/listSuccess.php >> file+ /home/jesaavedra/aplic_web/symf...iente/templates/showSuccess.php >> tokens /home/jesaavedra/aplic_web/symf...iente/actions/actions.class.php >> tokens /home/jesaavedra/aplic_web/symf...iente/actions/actions.class.php >> tokens /home/jesaavedra/aplic_web/symf...iente/templates/editSuccess.php >> tokens /home/jesaavedra/aplic_web/symf...iente/templates/listSuccess.php >> tokens /home/jesaavedra/aplic_web/symf...iente/templates/showSuccess.php >> file+ /home/jesaavedra/aplic_web/symf...l/libros/clienteActionsTest.php >> tokens /home/jesaavedra/aplic_web/symf...l/libros/clienteActionsTest.php >> file- /home/jesaavedra/aplic_web/symf...iente/templates/showSuccess.php >> file- /home/jesaavedra/aplic_web/symf...iente/templates/listSuccess.php >> file- /home/jesaavedra/aplic_web/symf...iente/templates/editSuccess.php >> dir- /home/jesaavedra/aplic_web/symf...bfb75802c/autoCliente/templates >> file- /home/jesaavedra/aplic_web/symf...iente/actions/actions.class.php >> dir- /home/jesaavedra/aplic_web/symf...f1bfb75802c/autoCliente/actions >> dir- /home/jesaavedra/aplic_web/symf...eb341f72f1bfb75802c/autoCliente Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 25 / 33
  • 26. Creaci´n de un proyecto o Acceso al proyecto Instrucci´n o http://libros Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 26 / 33
  • 27. Creaci´n de un proyecto o Adecuaciones Una vez generada gran parte del proyecto (forma muy general), se puede proceder a realizar adecuaciones en: Controlador (actions) Vistas (templates) Formas de acceso en las URL (routing ) Validacion de formularios Efectos especiales Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 27 / 33
  • 28. Creaci´n de un proyecto o Proyecto desplegado Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 28 / 33
  • 29. Demostraci´n o Ejemplo de aplicacion desarrollada Demostraci´n o Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 29 / 33
  • 30. Conclusiones Conclusiones Symfony: Tiene todo lo necesario para desarrollar aplicaciones Web Soporta Ajax Posee buena documentaci´n o Es multiplataforma Esta en constante desarrollo (muchas funcionalidades en base plugins) Al tener como aliado a las metodolog´ de desarrollo Ag´ (XP, ıas ıles AD), se convierte en un fuerte candidatos para desarrollo de aplicaciones web. Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 30 / 33
  • 31. Referencias Referencias http://www.symfony-project.com http://www.symfony.es Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 31 / 33
  • 32. Referencias Preguntas Preguntas Preguntas, dudas, consultas, ... Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 32 / 33
  • 33. Referencias Agradecimientos Gracias... Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 33 / 33