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.
Tutorial #1 Instalación yprimeros pasosJavier EguiluzJORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM
Patrocinadores   Patrocinadores   PatrocinadoresColaboradores      BRONCE            PLATA        PLATINO y ORO    JORNADA...
importanteAlgunas partes de esta presentaciónno se pueden entender bien sin verel vídeo de su impartición.Puedes acceder a...
La idea
« Desarrollar unaversión ficticia del sitio   desymfony.com »
portada
portada ponencias
detalle ponencia
portada ponentes
formulario registro
usuario conectado
administración
github.com/desymfony
El desarrollo
1. Instalación2. Modelo y Doctrine23. Vista y Twig4. Formularios y seguridad5. Backend6. Assetic y Tests
Instalando Symfony2
1symfony.com/download
2       CON vendors SIN vendors.ZIP     5.3 MB      0.1 MB.TGZ     2.7 MB      0.1 MB
2       CON vendors SIN vendors.ZIP    5.3 MB        DOWNLOAD     0.1 MB.TGZ     2.7 MB      0.1 MB
3descomprimir
http://localhost/symfony
1symfony.com/download
2       CON vendors SIN vendors.ZIP     5.3 MB      0.1 MB.TGZ     2.7 MB      0.1 MB
2       CON vendors SIN vendors.ZIP     5.3 MB      0.1 MB                     DOWNLOAD.TGZ     2.7 MB      0.1 MB
3descomprimir
4cd <directorio_symfony>php bin/vendors install
¿Usasy te sientes   SIcómodo con                    SIN vendors    Git?       NO   CON vendors
Configurador web
EN LA PRÁCTICA   Configurar el proyecto          vía web
Instalando el    proyecto  deSymfony
1mkdir proyecto
2git clonegit@github.com:desymfony/desymfony.gitproyecto
3proyecto/bin/vendors install
git checkout    !b tutorial1    origin/tutorial1
Bundles
1 Proyecto       1 Proyecto2 Aplicaciones   1 AplicaciónX Módulos        X BundlesY Plugins
bundle« Conjunto de archivosque implementan una única funcionalidad »
src/Desymfony     PonenciaBundle     PonenteBundle     UsuarioBundle     ComunBundle
src/Desymfony     DesymfonyBundle
src/Desymfony     DesymfonyBundle         Controller         Entity         Form         Resources
Desymfony / SitiosWeb / DesymfonyBundle
Desymfony / SitiosWeb / DesymfonyBundle VENDOR• Tu empresa• El proyecto• Tu cliente
Desymfony / SitiosWeb / DesymfonyBundle VENDOR CATEGORÍA• Tu empresa    (opcional)• El proyecto• Tu cliente
OBLIGATORIO                                {Desymfony / SitiosWeb / DesymfonyBundle VENDOR CATEGORÍA           NOMBRE• Tu ...
Desymfony / DesymfonyBundle
EN LA PRÁCTICA   Crear el bundle con el   generador interactivo
Creando laprimera página
desymfony / contacto
enrutamiento
enrutamientoControlador
enrutamiento                  BDControlador              Modelo
enrutamiento                  BDControlador              Modelo   Vista
EN LA PRÁCTICA      Crear la página de          contacto
EN LA PRÁCTICA Crear todas las páginas    estáticas del sitio
EN LA PRÁCTICAIntroducir el profiler y labarra de depuración web
Namespaces
Antes de<?php                     symfony 1include ./comun/db.php;require ./comun/utilidades.php;$articulo =Doctrine::getT...
Aplicaciones<?php                     symfony 1$articulo =Doctrine::getTable(Articulo)->...
Aplicaciones<?php                           Symfony2use DesymfonyDesymfonyBundleEntityArticulo;$articulo = new Articulo();
src/Desymfony/DesymfonyBundle     Entity          Ponencia          Ponente          Usuario
src/Desymfony/DesymfonyBundle/Entity/                            Ponencia.php<?phpnamespace DesymfonyDesymfonyBundleEntity...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phppublic function portadaAction() {  ...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity;...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity;...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity ...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity ...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phppublic function portadaAction() {  ...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntityP...
Inyección deDependencoas
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phppublic function portadaAction() {  ...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phppublic function portadaAction() {  ...
src/Desymfony/DesymfonyBundle/Controller/                    PortadaController.php<?phppublic function portadaAction() {  ...
Contenedor de        Inyección de Dependencias$this->get(mailer)->...$this->container->get(mailer)->...
<?phppublic function portadaAction() {    $this->get(mailer)->send($mensaje);    ...}
<?phppublic function portadaAction() {    $this->get(mailer)->send($mensaje);    ...   ¿Qué mailer utilizar?}           Cl...
<?phppublic function portadaAction() {    $this->get(mailer)->send($mensaje);    ...   ¿Qué mailer utilizar?   ¿Configurac...
app/config/                      config.ymlswiftmailer:    transport:   smtp    host:        localhost    username:    ~  ...
[...]/SwiftMailerBundle/[...]/schema/                         swiftmailer-1.0.xsd<xsd:complexType   name="config">  <xsd:a...
[...]/SwiftMailerBundle/[...]/config/                                  swiftmailer.xml<container xmlns="..." xmlns:xsi=".....
[...]/SwiftMailerBundle/[...]/config/                                   swiftmailer.xml<container xmlns="..." xmlns:xsi="....
¡Dame un mailer!   Contenedor de            Inyección de           Dependencias
¡Dame un               mailer!                    Contenedor de                                           Inyección de    ...
¡Dame un               mailer!                    Contenedor de                                           Inyección de    ...
1. Instalado Symfony22. Configurado Symfony23. Instalado deSymfony4. Creado el bundle5. Todas las páginas estáticas
contactojavier.eguiluz@gmail.comtwitter.com/javiereguiluzlinkedin.com/in/javiereguiluz
Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos
Upcoming SlideShare
Loading in …5
×

Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

35,789 views

Published on

Instalación y primeros pasos fue la primera ponencia impartida durante las Jornadas Symfony 2011. Se trata de la primera parte de las seis que forman el tutorial de desarrollo de la aplicación github.com/desymfony.

Durante la misma se explIca cómo instalar y configurar Symfony2, cómo instalar el proyecto deSymfony, cómo crear los bundles con el generador interactivo y también se introduce el funcionamiento de la arquitectura MVC en Symfony2 mediante la programación de la parte dedicada a mostrar las páginas estáticas de la aplicación.

Published in: Technology, Business

Desymfony 2011 - Tutorial #1: Instalacion y primeros pasos

  1. 1. Tutorial #1 Instalación yprimeros pasosJavier EguiluzJORNADAS SYMFONY 2011 1-3 JULIO, CASTELLÓN DESYMFONY.COM
  2. 2. Patrocinadores Patrocinadores PatrocinadoresColaboradores BRONCE PLATA PLATINO y ORO JORNADAS SYMFONY 2011 están patrocinadas por
  3. 3. importanteAlgunas partes de esta presentaciónno se pueden entender bien sin verel vídeo de su impartición.Puedes acceder al vídeo enhttp://bit.ly/sf-tutorial1
  4. 4. La idea
  5. 5. « Desarrollar unaversión ficticia del sitio desymfony.com »
  6. 6. portada
  7. 7. portada ponencias
  8. 8. detalle ponencia
  9. 9. portada ponentes
  10. 10. formulario registro
  11. 11. usuario conectado
  12. 12. administración
  13. 13. github.com/desymfony
  14. 14. El desarrollo
  15. 15. 1. Instalación2. Modelo y Doctrine23. Vista y Twig4. Formularios y seguridad5. Backend6. Assetic y Tests
  16. 16. Instalando Symfony2
  17. 17. 1symfony.com/download
  18. 18. 2 CON vendors SIN vendors.ZIP 5.3 MB 0.1 MB.TGZ 2.7 MB 0.1 MB
  19. 19. 2 CON vendors SIN vendors.ZIP 5.3 MB DOWNLOAD 0.1 MB.TGZ 2.7 MB 0.1 MB
  20. 20. 3descomprimir
  21. 21. http://localhost/symfony
  22. 22. 1symfony.com/download
  23. 23. 2 CON vendors SIN vendors.ZIP 5.3 MB 0.1 MB.TGZ 2.7 MB 0.1 MB
  24. 24. 2 CON vendors SIN vendors.ZIP 5.3 MB 0.1 MB DOWNLOAD.TGZ 2.7 MB 0.1 MB
  25. 25. 3descomprimir
  26. 26. 4cd <directorio_symfony>php bin/vendors install
  27. 27. ¿Usasy te sientes SIcómodo con SIN vendors Git? NO CON vendors
  28. 28. Configurador web
  29. 29. EN LA PRÁCTICA Configurar el proyecto vía web
  30. 30. Instalando el proyecto deSymfony
  31. 31. 1mkdir proyecto
  32. 32. 2git clonegit@github.com:desymfony/desymfony.gitproyecto
  33. 33. 3proyecto/bin/vendors install
  34. 34. git checkout !b tutorial1 origin/tutorial1
  35. 35. Bundles
  36. 36. 1 Proyecto 1 Proyecto2 Aplicaciones 1 AplicaciónX Módulos X BundlesY Plugins
  37. 37. bundle« Conjunto de archivosque implementan una única funcionalidad »
  38. 38. src/Desymfony PonenciaBundle PonenteBundle UsuarioBundle ComunBundle
  39. 39. src/Desymfony DesymfonyBundle
  40. 40. src/Desymfony DesymfonyBundle Controller Entity Form Resources
  41. 41. Desymfony / SitiosWeb / DesymfonyBundle
  42. 42. Desymfony / SitiosWeb / DesymfonyBundle VENDOR• Tu empresa• El proyecto• Tu cliente
  43. 43. Desymfony / SitiosWeb / DesymfonyBundle VENDOR CATEGORÍA• Tu empresa (opcional)• El proyecto• Tu cliente
  44. 44. OBLIGATORIO {Desymfony / SitiosWeb / DesymfonyBundle VENDOR CATEGORÍA NOMBRE• Tu empresa (opcional)• El proyecto• Tu cliente
  45. 45. Desymfony / DesymfonyBundle
  46. 46. EN LA PRÁCTICA Crear el bundle con el generador interactivo
  47. 47. Creando laprimera página
  48. 48. desymfony / contacto
  49. 49. enrutamiento
  50. 50. enrutamientoControlador
  51. 51. enrutamiento BDControlador Modelo
  52. 52. enrutamiento BDControlador Modelo Vista
  53. 53. EN LA PRÁCTICA Crear la página de contacto
  54. 54. EN LA PRÁCTICA Crear todas las páginas estáticas del sitio
  55. 55. EN LA PRÁCTICAIntroducir el profiler y labarra de depuración web
  56. 56. Namespaces
  57. 57. Antes de<?php symfony 1include ./comun/db.php;require ./comun/utilidades.php;$articulo =Doctrine::getTable(Articulo)->...
  58. 58. Aplicaciones<?php symfony 1$articulo =Doctrine::getTable(Articulo)->...
  59. 59. Aplicaciones<?php Symfony2use DesymfonyDesymfonyBundleEntityArticulo;$articulo = new Articulo();
  60. 60. src/Desymfony/DesymfonyBundle Entity Ponencia Ponente Usuario
  61. 61. src/Desymfony/DesymfonyBundle/Entity/ Ponencia.php<?phpnamespace DesymfonyDesymfonyBundleEntity;...
  62. 62. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phppublic function portadaAction() { $ponencia = new Ponencia(); ...}
  63. 63. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity;public function portadaAction() { ...}
  64. 64. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity;public function portadaAction() { $ponencia = new EntityPonencia(); ...}
  65. 65. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity as Entidad;public function portadaAction() { ...}
  66. 66. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntity as Entidad;public function portadaAction() { $ponencia = new EntidadPonencia(); ...}
  67. 67. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phppublic function portadaAction() { $ponencia = new Ponencia(); ...}
  68. 68. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phpuse DesymfonyDesymfonyBundleEntityPonencia;public function portadaAction() { $ponencia = new Ponencia(); ...}
  69. 69. Inyección deDependencoas
  70. 70. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phppublic function portadaAction() { $db = $this->get(doctrine)->... ...}
  71. 71. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phppublic function portadaAction() { $log = $this->get(logger)->... ...}
  72. 72. src/Desymfony/DesymfonyBundle/Controller/ PortadaController.php<?phppublic function portadaAction() { $mailer = $this->get(mailer)->... ...}
  73. 73. Contenedor de Inyección de Dependencias$this->get(mailer)->...$this->container->get(mailer)->...
  74. 74. <?phppublic function portadaAction() { $this->get(mailer)->send($mensaje); ...}
  75. 75. <?phppublic function portadaAction() { $this->get(mailer)->send($mensaje); ... ¿Qué mailer utilizar?} Clase, métodos
  76. 76. <?phppublic function portadaAction() { $this->get(mailer)->send($mensaje); ... ¿Qué mailer utilizar? ¿Configuración?} Clase, métodos Servidor, puerto
  77. 77. app/config/ config.ymlswiftmailer: transport: smtp host: localhost username: ~ password: ~
  78. 78. [...]/SwiftMailerBundle/[...]/schema/ swiftmailer-1.0.xsd<xsd:complexType name="config"> <xsd:attribute name="username" type="xsd:string" /> <xsd:attribute name="password" type="xsd:string" /> <xsd:attribute name="host" type="xsd:string" /> <xsd:attribute name="port" type="xsd:string" /> <xsd:attribute name="type" type="xsd:string" /> ...</xsd:complexType>
  79. 79. [...]/SwiftMailerBundle/[...]/config/ swiftmailer.xml<container xmlns="..." xmlns:xsi="..." xsi:schemaLocation="..."> <parameters> <parameter key="swiftmailer.class"> Swift_Mailer </parameter> ...
  80. 80. [...]/SwiftMailerBundle/[...]/config/ swiftmailer.xml<container xmlns="..." xmlns:xsi="..." xsi:schemaLocation="..."> <parameter key="swiftmailer.transport.smtp.class"> Swift_Transport_EsmtpTransport </parameter> <call method="setHost"> <argument>%swiftmailer.transport.smtp.host%</argument> </call> <call method="setPort"> <argument>%swiftmailer.transport.smtp.port%</argument> </call>
  81. 81. ¡Dame un mailer! Contenedor de Inyección de Dependencias
  82. 82. ¡Dame un mailer! Contenedor de Inyección de Dependenciasinstrucciones para instrucciones para instrucciones para crear mailers crear Doctrine crear loggers
  83. 83. ¡Dame un mailer! Contenedor de Inyección de Dependenciasinstrucciones para instrucciones para instrucciones para crear mailers crear Doctrine crear loggers
  84. 84. 1. Instalado Symfony22. Configurado Symfony23. Instalado deSymfony4. Creado el bundle5. Todas las páginas estáticas
  85. 85. contactojavier.eguiluz@gmail.comtwitter.com/javiereguiluzlinkedin.com/in/javiereguiluz

×