Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Symfony

2,052 views

Published on

Published in: Technology, Business
  • Be the first to comment

Symfony

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 33. Referencias Agradecimientos Gracias... Esteban Saavedra L´pez (Opentelematics) Frameworks MVC para el Desarrollo Web - Symfony o Nov. 2007 33 / 33

×