SlideShare una empresa de Scribd logo
Introducción a Symfony
      Framework
  Ejemplo práctico, project setup,
     MVC, routing y doctrine.



                           Disertante:
presentación
                                                           comunidad
¿Quiénes somos?



Colaboradores:                   Objetivo del seminario:
  •   Excedesoft S.A.
  •   Lic. Fabian Castillo         Demostrar los conceptos involucrados en
  •   Ing. Emiliano Viada           la creación de una aplicación symfony
                                                    inicial.
Destinatarios:
  •   Estudiantes
  •   Profesionales
  •   Empresas - Instituciones
                                             Disertante:
•   Introducción a Symfony                                        Contenido
    •   Definición oficial de Framework.
    •   Alguna razones para la elección de symfony.                       (temario)
    •   Features importantes


•   Alcance del ejemplo
    •   Entorno de trabajo, componentes y funcionamiento


•   Instalación y configuración de una applicación
    •   Entorno de trabajo, componentes y funcionamiento
    •   Configuración
    •   Arranque de la aplicación


•   Conceptos y estructura del framework
    •   Capas y organización de física
    •   Concepto Aplicación, Modulo, Template, Layout, ..


•   Arquitectura MVC
•   Routing
•   Layout..
•   ORM – Doctrine
•   Personalización - Estilos
                                                            Disertante:
¿Qué es symfony framework?

Definición del sitio oficial:

              “Symfony is a web application
                framework for PHP projects.It
                aims to speed up the creation
                and maintenance of web
                applications, and to replace the
                repetitive coding tasks by
                power, control and pleasure”

                                Disertante:
Beneficios del framework
• Librerías, componentes y herramientas
  reutilizables.
• Proveer una arquitectura madura, experiencias
  y conocimiento.
• Provee dirección y límites al programador.
• Paradigma de convención
Objetivo:
• Construcción de aplicaciones complejas,
  rápidamente
• Prepararnos para el futuro, escalabilidad y
  mantenabilidad.
                                Disertante:
Algunas razones para elegir
Symfony
1.   “Escalable”                                     excelente esfuerzo.
     Yahoo lo usa con aplicaciones de 200       7.   “Nivel de madures”
     millones de usuarios.                           En 5 lenguajes, multiples libros gratis,
2.   “LTS”                                           excelente esfuerzo.
     (Long term support) 3 años.                8.   “Compromiso”.
3.   “Seguro”.                                       SensioLab lo usa, prueba y extiende en
                                                     base a casos reales.
     (xss, csrf, sql injection, etc)
4.   “Licencia MIT”
     permite desarrollar aplicaciones
     comerciales, gratuitas y/o libre.
5.   “Calidad”.
     9000 unidades de testeo.
6.   “Documentación”
     En 5 lenguajes, multiples libros gratis,



                                                               Disertante:
Features de un framework web
Arquitecturalmente:                • Web-services
• Application controller, Filter   • Ajax Integration
• Enrutamiento                     • Unit-testing
• MVC
• Doctrine ORM                     Cualidades:
                                   • Configurable
Componentes:                       • Performante
                                     •
• App.Setting                            Caching
                                     •   Gestión de session
• Forms
                                   • Seguro
• Swift mailer
                                   • Productivo
• Tasks                              •   Comandos generadores
• I18n y l10n                      • Gestión de entornos

                                              Disertante:
• Generate-admin
Aplicación
                                          Alcance




Definición del alcance del ejemplo




                            Disertante:
Alcance del ejemplo
                    Casos de uso:

                •   Landing page
Actor
                •   Consulta datos de contacto
                •   Consulta quienes somos
                •   Consulta los post recientes
VISITANTE
                •   Comenta un post
                •   Publica su post
Dominio
            1
                *
     Post            Comentario



                                             Disertante:
Sf Setup
                                    Paso a Paso




Explicación de los componentes,
 funcionamiento y configuración




                          Disertante:
Entorno de desarrollo
 Componentes             Funcionamiento

          Apache               local.myblog.com
                                                              127.0.0.1

                                                    request
                                    Browser                   Apache
                                                              Server

                                     Editor
                   Developer         PHP
                                                              CARPETA


                                       /var/www/myBlog/project/web
                                       Index.php


   Instaladores           Elementos:
                          • Host (ip)                • Virtual host
                          • URL                      • Aplicación
                                              Disertante:
Configuración
1.   Bajar el Sandbox 1.4.x del sitio
     oficial
2.   Descomprimir Sandbox
3.   Renombro sandbox a myblog                            Local host
4.   Configurar el local & virtual hosts                  /etc/hosts
5.   Reiniciar el servidor apache                         127.0.0.1 local.myblog.com
6.   Crear base de datos y usuario
7.   Configurar db creds en symfony
                                       Virtual Host
                                       /apache/extra/conf/httpd-vhosts.conf
Base de Datos
http://localhost/phpmyadmin            <VirtualHost *:80>
                                         ServerName local.myblog.com
                                         DocumentRoot "/var/www/myBlog/project/web"
 -   Base de datos myblog_dev            <Directory "/var/www/myBlog/project/web">
                                           Options Indexes FollowSymLinks Includes ExecCGI
 -   Usuario myblog_dev                    AllowOverride All
                                           Order allow,deny
 -   Edicion de credenciales en:           Allow from all
                                         </Directory>
 -   project/config/database.yml       </VirtualHost>
                                        Alias /sf /var/www/myblog/lib/vendor/symfony/data/web/sf
                                        <Directory "/var/www/myblog/lib/vendor/symfony/data/web/sf">
                                            AllowOverride All
                                            Allow from All Disertante:
                                         </Directory>
Disertante:
Bienvenidos
                                         a Symfony




Explicación de las convenciones y
  organización de la aplicación




                           Disertante:
Estructura del framework
• Estructura del proyecto symfony
 •   Convenciones
 •   Organización de capas y archivos.
• Arquitectura MVC
 •   Application, Module, Actions, Templates
 •   Layouts
• Scarfolding y comandos symfony



                                               Disertante:
Capas y organización física
Arquitectura
                                                                                         CCS, JS,
                        Frontend Front Controller          Mob. FC         BE F.C
                                                                                         Images,



                           Layout                Layout

               Templ       Templ     Templ       Tempo               API
               Action      Action    Action      Action
                                                                Web Services
                           Modulo                Modulo

                          Frontend Application              Mobile         Backend


                                      Form
                   Model                         Vendors   Widgets         Task
                                        s
                                                    Lib

                                                                                     -

                                                 core

               OS +Apache + MySql                                     Disertante:
Coding
                                     inicial




Demostración paso a paso.




                      Disertante:
Ejemplo
•   Crear modulo “content”
    ./symfony generate:module frontend content

•   Crear action “home”
    •   Setear una variable
        $this->fecha = date('d/m/Y');

•   Imprimir mensaje de bienvenida en vista
    <h1>Symfony-Community Blog</h1>
    <hr/>
    <h2>Bienvenido al blog de la comunidad</h2>
    Ultima Actualización: <?php echo $fecha; ?>


    (Demostración en IDE – browser)

    http://local.myblog.com/frontend_dev.php/content/home



                                                            Disertante:
Arquitectura MVC
                    en symfony
 frontend_dev.php/content/home      Apache
                          request   Server
                Browser
                                                Front Controller
                           result



        Usuario                              Action          Layout


                                             Model          Template



• Controller                     = Front Controller + Action
• Model                          = Clases de Dominio (Lib/Model)
• View                           = Template + Layout
                                                  Disertante:
Routing
• Concepto
  •   Mapear un requerimiento (url)
      a una acción. (Caso de Uso)
                                                Front Controller
• Definición                                 routing
  •   /config/route.yml
                                          Action             Layout
• Utilización desde la vista
  •   url_for() helper
                                          Model             Template
• Rutas por defecto
  •   Homepage


  (Creamos las páginas de Contáctenos y Quienes
  Somos para demostrar en IDE – browser )
                                      Disertante:
Layout
• Concepto y demostración
• Partes del layout




• Two step view (Pattern) – vista en dos pasos




                                            Disertante:
Schema – Dominio - Doctrine
• Concepto
  •   Entidad, Relación.
• Definición
  •   /config/doctrine/schema.yml
• Scaffolding
  •   Clases autogeneradas
• Utilización del dominio desde la acción.
  •   Doctrine::getTable(“xx”)->findAll(); ->findBy*(); etc.
• Behaviours populares
  •   Timestampable, Slugable, vertinable


  (Creamos el módulo Post para demostrar en IDE
  – browser )                    Disertante:
Web – Recursos estáticos
• Explicación de la carpeta web
 • CSS
 • Imágenes
 • Javascripts
• Maquetación
 • Personalizar estilo de blog.




                                  Disertante:
Gracias




Disertante:
Descargas
- www.symfony-community.com
- https://github.com/Symfony-Community/myblog.git




                                    Disertante:
Colaboración
Muchas Gracias
www.symfony-community.com




                        Disertante:

Más contenido relacionado

KEY
Spring on Flash Platform
PDF
Code Igniter
PDF
Frameworks JAVA EE 5 de marzo de 2.012
PDF
Netbeans Osum
PDF
Java desde cero maven
PDF
Symfony 1 y 2
PDF
PPTX
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks
Spring on Flash Platform
Code Igniter
Frameworks JAVA EE 5 de marzo de 2.012
Netbeans Osum
Java desde cero maven
Symfony 1 y 2
Symfony-Community: Introducción a arquitecturas de aplicaciones web y frameworks

Similar a Symfony-Community: Introducción a Symfony Framework (20)

PPTX
Herramientas y Tecnologías para la Web
PDF
¿Cómo elegir servidor web?
PDF
Cómo elegir un servidor Web
PDF
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
PDF
Automatización del despliegue de aplicaciones multi cloud
PPTX
Buenas Prácticas para la Construcción de Aplicaciones de Software
PDF
Introducción al desarrollo web moderno
PDF
Symfony2 Introducción
PPTX
ASP.NET MVC
PPT
Programación web
PDF
Kubernetes para developers
PPTX
PDF
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
PPTX
Software en la actualidad
PPTX
Introducción a microservicios
DOCX
Instalacion dreamviewer
PDF
Frameworks de Desarrollo Web Grails
PDF
Springboot Overview
PDF
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
PPTX
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y ....
Herramientas y Tecnologías para la Web
¿Cómo elegir servidor web?
Cómo elegir un servidor Web
Despliegue de aplicaciones OS en entornos Cloud Computing con Bitnami- OpenEx...
Automatización del despliegue de aplicaciones multi cloud
Buenas Prácticas para la Construcción de Aplicaciones de Software
Introducción al desarrollo web moderno
Symfony2 Introducción
ASP.NET MVC
Programación web
Kubernetes para developers
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
Software en la actualidad
Introducción a microservicios
Instalacion dreamviewer
Frameworks de Desarrollo Web Grails
Springboot Overview
Sistemas de publicación de noticias y contenidos multimedia Web para Medios d...
Desarrollando aplicaciones empresariales con Xamarin.Forms, Docker, MVVM y ....
Publicidad

Último (20)

PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPT
Que son las redes de computadores y sus partes
PDF
Estrategia de apoyo tecnología miguel angel solis
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
DOCX
Las nuevas tecnologías en la salud - enfermería técnica.
PDF
Temas y subtemas de las fichas 1 y 2.pdf
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
DOCX
Trabajo colaborativo Grupo #2.docxmmuhhlk
PDF
taller de informática - LEY DE OHM
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
diagrama de pareto.pdf valerie giraldo diaz
PPTX
Administración se srevidores de apliaciones
PDF
clase auditoria informatica 2025.........
PDF
Maste clas de estructura metálica y arquitectura
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Que son las redes de computadores y sus partes
Estrategia de apoyo tecnología miguel angel solis
Calidad desde el Docente y la mejora continua .pdf
historia_web de la creacion de un navegador_presentacion.pptx
Las nuevas tecnologías en la salud - enfermería técnica.
Temas y subtemas de las fichas 1 y 2.pdf
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Trabajo colaborativo Grupo #2.docxmmuhhlk
taller de informática - LEY DE OHM
Estrategia de apoyo tecnología grado 9-3
Plantilla para Diseño de Narrativas Transmedia.pdf
diagrama de pareto.pdf valerie giraldo diaz
Administración se srevidores de apliaciones
clase auditoria informatica 2025.........
Maste clas de estructura metálica y arquitectura
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
introduccion a las_web en el 2025_mejoras.ppt
Presentación PASANTIAS AuditorioOO..pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Publicidad

Symfony-Community: Introducción a Symfony Framework

  • 1. Introducción a Symfony Framework Ejemplo práctico, project setup, MVC, routing y doctrine. Disertante:
  • 2. presentación comunidad ¿Quiénes somos? Colaboradores: Objetivo del seminario: • Excedesoft S.A. • Lic. Fabian Castillo Demostrar los conceptos involucrados en • Ing. Emiliano Viada la creación de una aplicación symfony inicial. Destinatarios: • Estudiantes • Profesionales • Empresas - Instituciones Disertante:
  • 3. Introducción a Symfony Contenido • Definición oficial de Framework. • Alguna razones para la elección de symfony. (temario) • Features importantes • Alcance del ejemplo • Entorno de trabajo, componentes y funcionamiento • Instalación y configuración de una applicación • Entorno de trabajo, componentes y funcionamiento • Configuración • Arranque de la aplicación • Conceptos y estructura del framework • Capas y organización de física • Concepto Aplicación, Modulo, Template, Layout, .. • Arquitectura MVC • Routing • Layout.. • ORM – Doctrine • Personalización - Estilos Disertante:
  • 4. ¿Qué es symfony framework? Definición del sitio oficial: “Symfony is a web application framework for PHP projects.It aims to speed up the creation and maintenance of web applications, and to replace the repetitive coding tasks by power, control and pleasure” Disertante:
  • 5. Beneficios del framework • Librerías, componentes y herramientas reutilizables. • Proveer una arquitectura madura, experiencias y conocimiento. • Provee dirección y límites al programador. • Paradigma de convención Objetivo: • Construcción de aplicaciones complejas, rápidamente • Prepararnos para el futuro, escalabilidad y mantenabilidad. Disertante:
  • 6. Algunas razones para elegir Symfony 1. “Escalable” excelente esfuerzo. Yahoo lo usa con aplicaciones de 200 7. “Nivel de madures” millones de usuarios. En 5 lenguajes, multiples libros gratis, 2. “LTS” excelente esfuerzo. (Long term support) 3 años. 8. “Compromiso”. 3. “Seguro”. SensioLab lo usa, prueba y extiende en base a casos reales. (xss, csrf, sql injection, etc) 4. “Licencia MIT” permite desarrollar aplicaciones comerciales, gratuitas y/o libre. 5. “Calidad”. 9000 unidades de testeo. 6. “Documentación” En 5 lenguajes, multiples libros gratis, Disertante:
  • 7. Features de un framework web Arquitecturalmente: • Web-services • Application controller, Filter • Ajax Integration • Enrutamiento • Unit-testing • MVC • Doctrine ORM Cualidades: • Configurable Componentes: • Performante • • App.Setting Caching • Gestión de session • Forms • Seguro • Swift mailer • Productivo • Tasks • Comandos generadores • I18n y l10n • Gestión de entornos Disertante: • Generate-admin
  • 8. Aplicación Alcance Definición del alcance del ejemplo Disertante:
  • 9. Alcance del ejemplo Casos de uso: • Landing page Actor • Consulta datos de contacto • Consulta quienes somos • Consulta los post recientes VISITANTE • Comenta un post • Publica su post Dominio 1 * Post Comentario Disertante:
  • 10. Sf Setup Paso a Paso Explicación de los componentes, funcionamiento y configuración Disertante:
  • 11. Entorno de desarrollo Componentes Funcionamiento Apache local.myblog.com 127.0.0.1 request Browser Apache Server Editor Developer PHP CARPETA /var/www/myBlog/project/web Index.php Instaladores Elementos: • Host (ip) • Virtual host • URL • Aplicación Disertante:
  • 12. Configuración 1. Bajar el Sandbox 1.4.x del sitio oficial 2. Descomprimir Sandbox 3. Renombro sandbox a myblog Local host 4. Configurar el local & virtual hosts /etc/hosts 5. Reiniciar el servidor apache 127.0.0.1 local.myblog.com 6. Crear base de datos y usuario 7. Configurar db creds en symfony Virtual Host /apache/extra/conf/httpd-vhosts.conf Base de Datos http://localhost/phpmyadmin <VirtualHost *:80> ServerName local.myblog.com DocumentRoot "/var/www/myBlog/project/web" - Base de datos myblog_dev <Directory "/var/www/myBlog/project/web"> Options Indexes FollowSymLinks Includes ExecCGI - Usuario myblog_dev AllowOverride All Order allow,deny - Edicion de credenciales en: Allow from all </Directory> - project/config/database.yml </VirtualHost> Alias /sf /var/www/myblog/lib/vendor/symfony/data/web/sf <Directory "/var/www/myblog/lib/vendor/symfony/data/web/sf"> AllowOverride All Allow from All Disertante: </Directory>
  • 14. Bienvenidos a Symfony Explicación de las convenciones y organización de la aplicación Disertante:
  • 15. Estructura del framework • Estructura del proyecto symfony • Convenciones • Organización de capas y archivos. • Arquitectura MVC • Application, Module, Actions, Templates • Layouts • Scarfolding y comandos symfony Disertante:
  • 16. Capas y organización física Arquitectura CCS, JS, Frontend Front Controller Mob. FC BE F.C Images, Layout Layout Templ Templ Templ Tempo API Action Action Action Action Web Services Modulo Modulo Frontend Application Mobile Backend Form Model Vendors Widgets Task s Lib - core OS +Apache + MySql Disertante:
  • 17. Coding inicial Demostración paso a paso. Disertante:
  • 18. Ejemplo • Crear modulo “content” ./symfony generate:module frontend content • Crear action “home” • Setear una variable $this->fecha = date('d/m/Y'); • Imprimir mensaje de bienvenida en vista <h1>Symfony-Community Blog</h1> <hr/> <h2>Bienvenido al blog de la comunidad</h2> Ultima Actualización: <?php echo $fecha; ?> (Demostración en IDE – browser) http://local.myblog.com/frontend_dev.php/content/home Disertante:
  • 19. Arquitectura MVC en symfony frontend_dev.php/content/home Apache request Server Browser Front Controller result Usuario Action Layout Model Template • Controller = Front Controller + Action • Model = Clases de Dominio (Lib/Model) • View = Template + Layout Disertante:
  • 20. Routing • Concepto • Mapear un requerimiento (url) a una acción. (Caso de Uso) Front Controller • Definición routing • /config/route.yml Action Layout • Utilización desde la vista • url_for() helper Model Template • Rutas por defecto • Homepage (Creamos las páginas de Contáctenos y Quienes Somos para demostrar en IDE – browser ) Disertante:
  • 21. Layout • Concepto y demostración • Partes del layout • Two step view (Pattern) – vista en dos pasos Disertante:
  • 22. Schema – Dominio - Doctrine • Concepto • Entidad, Relación. • Definición • /config/doctrine/schema.yml • Scaffolding • Clases autogeneradas • Utilización del dominio desde la acción. • Doctrine::getTable(“xx”)->findAll(); ->findBy*(); etc. • Behaviours populares • Timestampable, Slugable, vertinable (Creamos el módulo Post para demostrar en IDE – browser ) Disertante:
  • 23. Web – Recursos estáticos • Explicación de la carpeta web • CSS • Imágenes • Javascripts • Maquetación • Personalizar estilo de blog. Disertante:

Notas del editor

  • #12: Curva de aprendizaje. El esfuerzo inicial
  • #19: Creamos el modulo “content” porlinea de comando, creamos la accion “home” y vista. Demostramos el contenidopormedio de la rutapordefecto.
  • #20: Explicacion del ejemplo y el funcionamiento de MVCDebemosidentificar y asociarlaspartes del MVC con el codigoescrito.
  • #26: Creamos modulo contactenos y post Agregamos la rutaAgregamos el links de navegacion del sitio.
  • #27: Creamos modulo contactenos y post Agregamos la rutaAgregamos el links de navegacion del sitio.