SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
Symfony

                                              David J.
                                              Brenes
                                              Martínez

Desarrollo rápido con PHP y Symfony         Introducing
                                            Symfony
     (I) Introducción a Symfony             MVC en
                                            Symfony

                                            Una
                                            aplicación
        David J. Brenes Martínez            Symfony

                                            Consola
                                            Symfony
         Curso de Extensión Universitaria
                                            Sistema de
            Desarrollo web avanzado         configuración
             Universidad de Oviedo
                                            Referencias,
                                            Créditos y
                                            Licencia
                 2010/03/22
Desarrollo habitual

                                                         Symfony

                                                         David J.
                                                         Brenes
                                                         Martínez

                                                       Introducing
                                                       Symfony

    Estructura ad-hoc de directorios                   MVC en
                                                       Symfony
    Directorios de código públicos (die, con suerte)   Una
                                                       aplicación
    La configuración es otro fichero PHP                 Symfony

                                                       Consola
    Código Spaguetti                                   Symfony

                                                       Sistema de
                                                       configuración

                                                       Referencias,
                                                       Créditos y
                                                       Licencia
Y llegan los detractores

                                                    Symfony

                                                    David J.
                                                    Brenes
                                                    Martínez

                                                  Introducing
                                                  Symfony

    PHP es un lenguaje pobre                      MVC en
                                                  Symfony
    PHP no es apto para proyectos a gran escala   Una
                                                  aplicación
    PHP no es mantenible                          Symfony

                                                  Consola
    PHP genera proyectos ‘basura’                 Symfony

                                                  Sistema de
                                                  configuración

                                                  Referencias,
                                                  Créditos y
                                                  Licencia
Y llegan los detractores

                                                    Symfony

                                                    David J.
                                                    Brenes
                                                    Martínez

                                                  Introducing
                                                  Symfony

    PHP es un lenguaje pobre                      MVC en
                                                  Symfony
    PHP no es apto para proyectos a gran escala   Una
                                                  aplicación
    PHP no es mantenible                          Symfony

                                                  Consola
    PHP genera proyectos ‘basura’                 Symfony

                                                  Sistema de
                                                  configuración

                                                  Referencias,
                                                  Créditos y
                                                  Licencia
Primera ley de la informática

                                                        Symfony

                                                        David J.
                                                        Brenes
                                                        Martínez

                                                      Introducing
                                                      Symfony

                                                      MVC en
                                                      Symfony

   Muéstrame a alguien que programe mal en PHP y te   Una
                                                      aplicación
         mostraré a alguien que programa mal.         Symfony

                                                      Consola
                                                      Symfony

                                                      Sistema de
                                                      configuración

                                                      Referencias,
                                                      Créditos y
                                                      Licencia
Segunda ley de la informática

                                             Symfony

                                             David J.
                                             Brenes
                                             Martínez

                     Todo escala           Introducing
                                           Symfony

                                           MVC en
                                           Symfony
    Facebook
                                           Una
    Tuenti                                 aplicación
                                           Symfony
    Yahoo!                                 Consola
                                           Symfony
    ...                                    Sistema de
                                           configuración

               Pero hay que hacerlo bien   Referencias,
                                           Créditos y
                                           Licencia
La llegada de los frameworks

                                                     Symfony

                                                     David J.
                                                     Brenes
                                                     Martínez

                                                   Introducing
                                                   Symfony
    Desarrollo web menos ad-hoc                    MVC en
                                                   Symfony
    Popularización de patrones de diseño, buenas
                                                   Una
    prácticas. . .                                 aplicación
                                                   Symfony
    Incremento de exigencia en desarrollo web      Consola
                                                   Symfony
    Aparición de soluciones avanzadas
                                                   Sistema de
                                                   configuración

                                                   Referencias,
                                                   Créditos y
                                                   Licencia
La llegada de los frameworks

                                 Symfony

                                 David J.
                                 Brenes
                                 Martínez

                               Introducing
                               Symfony
    Struts
                               MVC en
                               Symfony
    Zend
                               Una
    CakePHP                    aplicación
                               Symfony
    Spring                     Consola
                               Symfony
    Ruby on Rails              Sistema de
                               configuración

                               Referencias,
                               Créditos y
                               Licencia
La llegada de Symfony

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                         Introducing
                                                         Symfony

                                                         MVC en
   Proyecto comercial de SensioLabs (Sensio Framework)   Symfony

                                                         Una
   Liberación e inicio del proyecto Symfony en 2005      aplicación
                                                         Symfony
   1 año más tarde que Rails                             Consola
                                                         Symfony

                                                         Sistema de
                                                         configuración

                                                         Referencias,
                                                         Créditos y
                                                         Licencia
Inspiración

                                                        Symfony

                                                        David J.
                                                        Brenes
                                                        Martínez

                                                      Introducing
    Basado en conceptos de otros frameworks (Rails,   Symfony

                                                      MVC en
    Spring, Django. . . )                             Symfony

    Actualmente comparte características con otros    Una
                                                      aplicación
    frameworks (Rails)                                Symfony

                                                      Consola
    Uso de otros proyectos PHP (Propel, Doctrine,     Symfony

    PHPUnit. . . )                                    Sistema de
                                                      configuración

                                                      Referencias,
                                                      Créditos y
                                                      Licencia
Proyectos

                        Symfony

                        David J.
                        Brenes
                        Martínez

                      Introducing
                      Symfony

                      MVC en
   Yahoo! Bookmarks   Symfony

                      Una
   Delicious          aplicación
                      Symfony
   DailyMotion        Consola
                      Symfony

                      Sistema de
                      configuración

                      Referencias,
                      Créditos y
                      Licencia
Componentes

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

   Bibliotecas nacidas del core de Symfony               Introducing
                                                         Symfony
   Usables en cualquier otro proyecto de maner directa   MVC en
                                                         Symfony
   Parseador de YAML                                     Una
                                                         aplicación
   Manejador de eventos                                  Symfony

   Gestor de dependencias                                Consola
                                                         Symfony
   Sistema de plantillas                                 Sistema de
                                                         configuración
   Gestor de peticiones                                  Referencias,
                                                         Créditos y
                                                         Licencia
MVC en Symfony

                   Symfony

                   David J.
                   Brenes
                   Martínez

                 Introducing
                 Symfony

                 MVC en
                 Symfony

                 Una
                 aplicación
                 Symfony

                 Consola
                 Symfony

                 Sistema de
                 configuración

                 Referencias,
                 Créditos y
                 Licencia
MVC en Symfony

                   Symfony

                   David J.
                   Brenes
                   Martínez

                 Introducing
                 Symfony

                 MVC en
                 Symfony

                 Una
                 aplicación
                 Symfony

                 Consola
                 Symfony

                 Sistema de
                 configuración

                 Referencias,
                 Créditos y
                 Licencia
Controlador

                                                                 Symfony

                                                                 David J.
                                                                 Brenes
                                                                 Martínez

                                                               Introducing
                                                               Symfony
  1   Servidor Web captura la petición                         MVC en
                                                               Symfony
  2   La redirige al punto de entrada (index.php) con
                                                               Una
      parámetros                                               aplicación
                                                               Symfony
  3   index.php inicia el controlador                          Consola
                                                               Symfony
  4   El controlador decide a qué acción corresponde la ruta
                                                               Sistema de
                                                               configuración

                                                               Referencias,
                                                               Créditos y
                                                               Licencia
Modelo

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                             Introducing
                                                             Symfony
 1   La acción (controlador) solicita unos datos al modelo   MVC en
                                                             Symfony
 2   La acción realiza modificaciones al modelo
                                                             Una
 3   El modelo persiste esas modificaciones si la acción lo   aplicación
                                                             Symfony
     solicita                                                Consola
                                                             Symfony
 4   La acción pasa esos del modelo a la vista
                                                             Sistema de
                                                             configuración

                                                             Referencias,
                                                             Créditos y
                                                             Licencia
Vista

                                                                   Symfony

                                                                   David J.
                                                                   Brenes
                                                                   Martínez

                                                                 Introducing
  1   La vista no tiene lógica de proceso                        Symfony

                                                                 MVC en
  2   Solo genera HTML en base a los datos que recibe            Symfony

                                                                 Una
  3   La acción decide que vista se genera y con qué             aplicación
                                                                 Symfony
      parámetros
                                                                 Consola
  4   Una vez que la vista termina, el controlador le devuelve   Symfony

      el resultado                                               Sistema de
                                                                 configuración

                                                                 Referencias,
                                                                 Créditos y
                                                                 Licencia
Descarguemos Symfony

                                     Symfony

                                     David J.
                                     Brenes
                                     Martínez

                                   Introducing
                                   Symfony

                                   MVC en
                                   Symfony

                                   Una
         www.symfony-project.org   aplicación
                                   Symfony

                                   Consola
                                   Symfony

                                   Sistema de
                                   configuración

                                   Referencias,
                                   Créditos y
                                   Licencia
Directorios

                                                                Symfony

                                                                David J.
    apps: Un directorio para cada aplicación posible dentro     Brenes
                                                                Martínez
    de Symfony
                                                              Introducing
    cache: Ficheros para la caché                             Symfony

    config: Ficheros de configuración                           MVC en
                                                              Symfony

    data: Ficheros de datos variados como fixtures             Una
                                                              aplicación
    lib: Ficheros de código global a las aplicaciones (el     Symfony

                                                              Consola
    modelo, software ajeno a Symfony. . . )                   Symfony

    log: Ficheros de log                                      Sistema de
                                                              configuración
    plugins: Plugins añadidos a Symfony                       Referencias,
                                                              Créditos y
    tests: Suite de tests de la aplicación                    Licencia

    web: Carpeta pública
Aplicaciones

                                                              Symfony

                                                              David J.
                                                              Brenes
                                                              Martínez

                                                            Introducing
    Symfony permite tener conviviendo varias aplicaciones   Symfony
    en un proyecto                                          MVC en
                                                            Symfony
    Aplicaciones que comparten modelo, base de usuarios,    Una
    etc.                                                    aplicación
                                                            Symfony
    Ejemplo típico: Frontend / Backend / API                Consola
                                                            Symfony
    Aplicaciones independientes (incluso dominios           Sistema de
    distintos)                                              configuración

                                                            Referencias,
                                                            Créditos y
                                                            Licencia
Módulos

                                                      Symfony

                                                      David J.
                                                      Brenes
                                                      Martínez

                                                    Introducing
                                                    Symfony

   Cada aplicación tiene varios módulos             MVC en
                                                    Symfony
   Los módulos permiten separar aspectos de la      Una
                                                    aplicación
   aplicación                                       Symfony

   Cada módulo puede tener configuracion diferente   Consola
                                                    Symfony

                                                    Sistema de
                                                    configuración

                                                    Referencias,
                                                    Créditos y
                                                    Licencia
Lib

                                                         Symfony

                                                         David J.
                                                         Brenes
                                                         Martínez

                                                       Introducing
                                                       Symfony
      model: El código del modelo (VOs, DAOs y         MVC en
      Formularios)                                     Symfony

                                                       Una
      helpers: conjunto de funciones de ayuda          aplicación
                                                       Symfony
      vendor: Codigo ajeno al framework (o el propio   Consola
                                                       Symfony
      framework)
                                                       Sistema de
                                                       configuración

                                                       Referencias,
                                                       Créditos y
                                                       Licencia
Plugins

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                         Introducing
                                                         Symfony

    Miniaplicaciones autocontenidas.                     MVC en
                                                         Symfony
    Su propia configuración, sus propios modelos.         Una
                                                         aplicación
    Se mantienen en repositorios aparte (análogo a las   Symfony

    gemas de Rails)                                      Consola
                                                         Symfony

                                                         Sistema de
                                                         configuración

                                                         Referencias,
                                                         Créditos y
                                                         Licencia
Web

                                                            Symfony

                                                            David J.
                                                            Brenes
                                                            Martínez

                                                          Introducing
                                                          Symfony

  Única carpeta que debería tener acceso público.         MVC en
                                                          Symfony

  Contiene los entornos de las aplicaciones               Una
                                                          aplicación
  index.php: Entorno por defecto para la aplicación por   Symfony

                                                          Consola
  defecto                                                 Symfony

                                                          Sistema de
                                                          configuración

                                                          Referencias,
                                                          Créditos y
                                                          Licencia
Despliegue

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                         Introducing
                                                         Symfony
   Apuntar en Apache a la carpeta web                    MVC en
                                                         Symfony
   Copiar carpeta /lib/vendor/symfony/data/web/sf a la
                                                         Una
   carpeta web                                           aplicación
                                                         Symfony
   Visitar entorno de producción                         Consola
                                                         Symfony
   Visitar entorno de depuración
                                                         Sistema de
                                                         configuración

                                                         Referencias,
                                                         Créditos y
                                                         Licencia
Prueba rápida

                                                          Symfony

                                                          David J.
                                                          Brenes
                                                          Martínez

                                                        Introducing
                                                        Symfony

   Descargar schema.yml                                 MVC en
                                                        Symfony
   Descargar databases.yml                              Una
                                                        aplicación
   Activar driver MySQL (extension=php_pdo_mysql.dll)   Symfony

                                                        Consola
   Unas cuantas tareas                                  Symfony

                                                        Sistema de
                                                        configuración

                                                        Referencias,
                                                        Créditos y
                                                        Licencia
No solo una aplicación web

                                        Symfony

                                        David J.
                                        Brenes
                                        Martínez

                                      Introducing
                                      Symfony

                                      MVC en
    Symfony.bat en el raiz            Symfony

                                      Una
    Consola de órdenes para Symfony   aplicación
                                      Symfony
    Automatización de tareas          Consola
                                      Symfony

                                      Sistema de
                                      configuración

                                      Referencias,
                                      Créditos y
                                      Licencia
Tareas del proyecto

                              Symfony

                              David J.
                              Brenes
                              Martínez

                            Introducing
                            Symfony

                            MVC en
    Generar aplicaciones    Symfony

                            Una
    Generar módulos         aplicación
                            Symfony
    Generar otro proyecto   Consola
                            Symfony

                            Sistema de
                            configuración

                            Referencias,
                            Créditos y
                            Licencia
Tareas del modelo

                              Symfony

                              David J.
                              Brenes
                              Martínez

                            Introducing
                            Symfony

                            MVC en
   Gestionar BD             Symfony

                            Una
   Cargar datos de prueba   aplicación
                            Symfony
   Manejar el modelo        Consola
                            Symfony

                            Sistema de
                            configuración

                            Referencias,
                            Créditos y
                            Licencia
Tareas de plugins

                                Symfony

                                David J.
                                Brenes
                                Martínez

                              Introducing
                              Symfony

                              MVC en
    Listar                    Symfony

                              Una
    Instalar plugins nuevos   aplicación
                              Symfony
    Actualizar                Consola
                              Symfony

                              Sistema de
                              configuración

                              Referencias,
                              Créditos y
                              Licencia
Tarea de caché

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                         Introducing
   symfony cache:clear                                   Symfony

                                                         MVC en
   Symfony dispone de caché                              Symfony

   Se cachean cosas importantes (configuración, vistas,   Una
                                                         aplicación
   modelos. . . )                                        Symfony

                                                         Consola
   En entorno de producción la caché es más agresiva     Symfony

   Si algo nocambia, cache:clear                         Sistema de
                                                         configuración

                                                         Referencias,
                                                         Créditos y
                                                         Licencia
¿Configuration over convention?

                                                          Symfony

                                                          David J.
                                                          Brenes
                                                          Martínez

                                                        Introducing
                                                        Symfony
    Convention over configuration: Uso de convenciones   MVC en
    para evitar configuraciones explícitas               Symfony

                                                        Una
    Menos cantidad de trabajo                           aplicación
                                                        Symfony
    Más magia y potencia                                Consola
                                                        Symfony
    Más necesidad de memoria
                                                        Sistema de
                                                        configuración

                                                        Referencias,
                                                        Créditos y
                                                        Licencia
¿Configuration over convention?

                                                     Symfony

                                                     David J.
                                                     Brenes
                                                     Martínez

                                                   Introducing
                                                   Symfony

                                                   MVC en
    Symfony confia más en ficheros de configuración   Symfony

                                                   Una
    PHP es menos flexible que Ruby                  aplicación
                                                   Symfony
    PHP permite menos magia                        Consola
                                                   Symfony

                                                   Sistema de
                                                   configuración

                                                   Referencias,
                                                   Créditos y
                                                   Licencia
YAML: YAML Ain’t Markup Language

                                                            Symfony

                                                            David J.
                                                            Brenes
                                                            Martínez

                                                          Introducing
                                                          Symfony

   Formato de representación de datos alternativo a XML   MVC en
                                                          Symfony
   y JSON                                                 Una
                                                          aplicación
   Basado en espacios para indentar configuraciones        Symfony

   Formato muy legible y sencillo                         Consola
                                                          Symfony

                                                          Sistema de
                                                          configuración

                                                          Referencias,
                                                          Créditos y
                                                          Licencia
YAML en Symfony

                                                  Symfony

                                                  David J.
                                                  Brenes
                                                  Martínez

                                                Introducing
                                                Symfony

                                                MVC en
                                                Symfony
   Todos los ficheros de configuración son YAML   Una
                                                aplicación
   Componente de Symfony para parseo de YAML    Symfony

                                                Consola
                                                Symfony

                                                Sistema de
                                                configuración

                                                Referencias,
                                                Créditos y
                                                Licencia
Niveles de configuración

                                   Symfony

                                   David J.
                                   Brenes
                                   Martínez

                                 Introducing
                                 Symfony
    Configuración de Symfony
                                 MVC en
                                 Symfony
    Configuración de Plugins
                                 Una
    Configración de proyecto      aplicación
                                 Symfony
    Configuración de aplicación   Consola
                                 Symfony
    Configuracion de módulo       Sistema de
                                 configuración

                                 Referencias,
                                 Créditos y
                                 Licencia
Entornos de configuración

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                         Introducing
                                                         Symfony

                                                         MVC en
   Configuración específica para entornos de desarrollo,   Symfony

   producción y test                                     Una
                                                         aplicación
                                                         Symfony
   Permiten cambiar de entorno a placer
                                                         Consola
                                                         Symfony

                                                         Sistema de
                                                         configuración

                                                         Referencias,
                                                         Créditos y
                                                         Licencia
Settings.yml

                                                     Symfony

                                                     David J.
                                                     Brenes
                                                     Martínez

                                                   Introducing
                                                   Symfony
    Cuestiones generales sobre el proyecto y las   MVC en
    aplicaciones                                   Symfony

                                                   Una
    Codificación de caracteres                      aplicación
                                                   Symfony
    Cuestiones de seguridad                        Consola
                                                   Symfony
    Páginas de error
                                                   Sistema de
                                                   configuración

                                                   Referencias,
                                                   Créditos y
                                                   Licencia
Factories.yml

                                                            Symfony

                                                            David J.
                                                            Brenes
                                                            Martínez

                                                          Introducing
                                                          Symfony
    Configuración para objetos necesitados por el
                                                          MVC en
    framework (caché, i18n. . . )                         Symfony

    Permite cargar objetos en el core de Symfony          Una
                                                          aplicación
    cambiando el comportamiento                           Symfony

                                                          Consola
    Ejemplos: Nuevos sistemas de caché, i18n en Base de   Symfony

    Datos. . .                                            Sistema de
                                                          configuración

                                                          Referencias,
                                                          Créditos y
                                                          Licencia
Databases.yml

                                                      Symfony

                                                      David J.
                                                      Brenes
                                                      Martínez

                                                    Introducing
                                                    Symfony

                                                    MVC en
   Define la configuración de conexion a BD           Symfony

                                                    Una
   Permite definir conexiones diferentes para cada   aplicación
                                                    Symfony
   entorno
                                                    Consola
                                                    Symfony

                                                    Sistema de
                                                    configuración

                                                    Referencias,
                                                    Créditos y
                                                    Licencia
Security.yml

                                                  Symfony

                                                  David J.
                                                  Brenes
                                                  Martínez

                                                Introducing
                                                Symfony

                                                MVC en
                                                Symfony
    Define aspectos más concretos de seguridad   Una
                                                aplicación
    Permite asegurar acciones en concreto       Symfony

                                                Consola
                                                Symfony

                                                Sistema de
                                                configuración

                                                Referencias,
                                                Créditos y
                                                Licencia
Security.yml

                                                  Symfony

                                                  David J.
                                                  Brenes
                                                  Martínez

                                                Introducing
                                                Symfony

                                                MVC en
                                                Symfony
    Define aspectos más concretos de seguridad   Una
                                                aplicación
    Permite asegurar acciones en concreto       Symfony

                                                Consola
                                                Symfony

                                                Sistema de
                                                configuración

                                                Referencias,
                                                Créditos y
                                                Licencia
Routing.yml

                                                          Symfony

                                                          David J.
                                                          Brenes
                                                          Martínez

                                                        Introducing
                                                        Symfony

                                                        MVC en
   Configura el sistema de rutas                         Symfony

                                                        Una
   La configuración va en cascada. La primera ruta que   aplicación
                                                        Symfony
   coincide es la que se usa.
                                                        Consola
                                                        Symfony

                                                        Sistema de
                                                        configuración

                                                        Referencias,
                                                        Créditos y
                                                        Licencia
App.yml

                                                   Symfony

                                                   David J.
                                                   Brenes
                                                   Martínez

                                                 Introducing
                                                 Symfony

   Configuración específica de una aplicación      MVC en
                                                 Symfony
   Permite definir parámetros propios             Una
                                                 aplicación
   Usado por los plugins para definir su propia   Symfony

   configuración                                  Consola
                                                 Symfony

                                                 Sistema de
                                                 configuración

                                                 Referencias,
                                                 Créditos y
                                                 Licencia
filters.yml

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                         Introducing
                                                         Symfony

                                                         MVC en
    Define los filtros por los que debe pasar la Request   Symfony

    para ecutarse                                        Una
                                                         aplicación
                                                         Symfony
    Permite pasar parámetros a los filtros
                                                         Consola
                                                         Symfony

                                                         Sistema de
                                                         configuración

                                                         Referencias,
                                                         Créditos y
                                                         Licencia
view.yml

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                             Introducing
                                                             Symfony

                                                             MVC en
    Define la configuracion de las vistas                      Symfony

                                                             Una
    Permite cargar CSS, JS, definir elementos meta, títulos   aplicación
                                                             Symfony
    de página. . .
                                                             Consola
                                                             Symfony

                                                             Sistema de
                                                             configuración

                                                             Referencias,
                                                             Créditos y
                                                             Licencia
Referencias

                                                Symfony

                                                David J.
                                                Brenes
                                                Martínez

   Symfony Project: www.symfony-project.org   Introducing
                                              Symfony
   The Symfony Reference Book: http://www.    MVC en
   symfony-project.org/reference/1_4/en/      Symfony

                                              Una
   Practical Symfony:                         aplicación
                                              Symfony
   http://www.symfony-project.org/jobeet/1_
                                              Consola
   4/Doctrine/en/                             Symfony

                                              Sistema de
   The Definitive Guide to symfony:            configuración
   http://www.symfony-project.org/book/1_2/   Referencias,
                                              Créditos y
                                              Licencia
Créditos

                                                          Symfony

                                                          David J.
                                                          Brenes
                                                          Martínez

                                                        Introducing
                                                        Symfony

                                                        MVC en
                                                        Symfony

    La imagen de MVC está sacada de Practical Symfony   Una
                                                        aplicación
                                                        Symfony

                                                        Consola
                                                        Symfony

                                                        Sistema de
                                                        configuración

                                                        Referencias,
                                                        Créditos y
                                                        Licencia
Licencia

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

Estas transparencias se publican bajo licencia Creative      Introducing
Commons y se pueden redistribuir o modificar bajo las         Symfony

                                                             MVC en
siguientes condiciones:                                      Symfony

    Se dé reconocimiento al autor de estas transparencias.   Una
                                                             aplicación
                                                             Symfony
    No se use con propósitos comerciales.
                                                             Consola
    Se distribuya con la misma licencia.                     Symfony

                                                             Sistema de
Texto de la licencia: http:                                  configuración
//creativecommons.org/licenses/by-nc-sa/3.0/                 Referencias,
                                                             Créditos y
                                                             Licencia

Contenu connexe

Plus de David J. Brenes

Desarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formulariosDesarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formulariosDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutasDesarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutasDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El ModeloDesarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El ModeloDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vistaDesarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vistaDavid J. Brenes
 
Desarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controladorDesarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controladorDavid J. Brenes
 
Introducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open StrategyIntroducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open StrategyDavid J. Brenes
 
Introduccion a los Servicios Web Rest
Introduccion a los Servicios Web RestIntroduccion a los Servicios Web Rest
Introduccion a los Servicios Web RestDavid J. Brenes
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPDavid J. Brenes
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaDavid J. Brenes
 
Cloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeCloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeDavid J. Brenes
 
Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0David J. Brenes
 
Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...David J. Brenes
 
Programación de Yahoo! Pipes
Programación de Yahoo! PipesProgramación de Yahoo! Pipes
Programación de Yahoo! PipesDavid J. Brenes
 
Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0David J. Brenes
 
Presentación Lectura TFMI
Presentación Lectura TFMIPresentación Lectura TFMI
Presentación Lectura TFMIDavid J. Brenes
 

Plus de David J. Brenes (17)

Desarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formulariosDesarrollo rápido con PHP y Symfony (VI): Los formularios
Desarrollo rápido con PHP y Symfony (VI): Los formularios
 
Desarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutasDesarrollo rápido con PHP y Symfony (V): Las rutas
Desarrollo rápido con PHP y Symfony (V): Las rutas
 
Desarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El ModeloDesarrollo rápido con PHP y Symfony (IV): El Modelo
Desarrollo rápido con PHP y Symfony (IV): El Modelo
 
Desarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vistaDesarrollo rápido con PHP y Symfony (III): La vista
Desarrollo rápido con PHP y Symfony (III): La vista
 
Desarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controladorDesarrollo rápido con PHP y Symfony (II): El controlador
Desarrollo rápido con PHP y Symfony (II): El controlador
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Introducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open StrategyIntroducción a la Yahoo! Open Strategy
Introducción a la Yahoo! Open Strategy
 
Yahoo! Query Language
Yahoo! Query LanguageYahoo! Query Language
Yahoo! Query Language
 
Introduccion a los Servicios Web Rest
Introduccion a los Servicios Web RestIntroduccion a los Servicios Web Rest
Introduccion a los Servicios Web Rest
 
Servicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHPServicio y Consumo de Servicios REST en PHP
Servicio y Consumo de Servicios REST en PHP
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
 
Cloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la NubeCloud Computing: Algoritmos en la Nube
Cloud Computing: Algoritmos en la Nube
 
Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0Cloud Computing: Recursos de la Web 2.0
Cloud Computing: Recursos de la Web 2.0
 
Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...Automatic detection of navigational queries according to Behavioural Characte...
Automatic detection of navigational queries according to Behavioural Characte...
 
Programación de Yahoo! Pipes
Programación de Yahoo! PipesProgramación de Yahoo! Pipes
Programación de Yahoo! Pipes
 
Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0Yahoo! Pipes y la Web 2.0
Yahoo! Pipes y la Web 2.0
 
Presentación Lectura TFMI
Presentación Lectura TFMIPresentación Lectura TFMI
Presentación Lectura TFMI
 

Dernier

Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 

Dernier (20)

Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 

Desarrollo rápido con PHP y Symfony (I): Introducción a Symfony

  • 1. Symfony David J. Brenes Martínez Desarrollo rápido con PHP y Symfony Introducing Symfony (I) Introducción a Symfony MVC en Symfony Una aplicación David J. Brenes Martínez Symfony Consola Symfony Curso de Extensión Universitaria Sistema de Desarrollo web avanzado configuración Universidad de Oviedo Referencias, Créditos y Licencia 2010/03/22
  • 2. Desarrollo habitual Symfony David J. Brenes Martínez Introducing Symfony Estructura ad-hoc de directorios MVC en Symfony Directorios de código públicos (die, con suerte) Una aplicación La configuración es otro fichero PHP Symfony Consola Código Spaguetti Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 3. Y llegan los detractores Symfony David J. Brenes Martínez Introducing Symfony PHP es un lenguaje pobre MVC en Symfony PHP no es apto para proyectos a gran escala Una aplicación PHP no es mantenible Symfony Consola PHP genera proyectos ‘basura’ Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 4. Y llegan los detractores Symfony David J. Brenes Martínez Introducing Symfony PHP es un lenguaje pobre MVC en Symfony PHP no es apto para proyectos a gran escala Una aplicación PHP no es mantenible Symfony Consola PHP genera proyectos ‘basura’ Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 5. Primera ley de la informática Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Muéstrame a alguien que programe mal en PHP y te Una aplicación mostraré a alguien que programa mal. Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 6. Segunda ley de la informática Symfony David J. Brenes Martínez Todo escala Introducing Symfony MVC en Symfony Facebook Una Tuenti aplicación Symfony Yahoo! Consola Symfony ... Sistema de configuración Pero hay que hacerlo bien Referencias, Créditos y Licencia
  • 7. La llegada de los frameworks Symfony David J. Brenes Martínez Introducing Symfony Desarrollo web menos ad-hoc MVC en Symfony Popularización de patrones de diseño, buenas Una prácticas. . . aplicación Symfony Incremento de exigencia en desarrollo web Consola Symfony Aparición de soluciones avanzadas Sistema de configuración Referencias, Créditos y Licencia
  • 8. La llegada de los frameworks Symfony David J. Brenes Martínez Introducing Symfony Struts MVC en Symfony Zend Una CakePHP aplicación Symfony Spring Consola Symfony Ruby on Rails Sistema de configuración Referencias, Créditos y Licencia
  • 9. La llegada de Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Proyecto comercial de SensioLabs (Sensio Framework) Symfony Una Liberación e inicio del proyecto Symfony en 2005 aplicación Symfony 1 año más tarde que Rails Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 10. Inspiración Symfony David J. Brenes Martínez Introducing Basado en conceptos de otros frameworks (Rails, Symfony MVC en Spring, Django. . . ) Symfony Actualmente comparte características con otros Una aplicación frameworks (Rails) Symfony Consola Uso de otros proyectos PHP (Propel, Doctrine, Symfony PHPUnit. . . ) Sistema de configuración Referencias, Créditos y Licencia
  • 11. Proyectos Symfony David J. Brenes Martínez Introducing Symfony MVC en Yahoo! Bookmarks Symfony Una Delicious aplicación Symfony DailyMotion Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 12. Componentes Symfony David J. Brenes Martínez Bibliotecas nacidas del core de Symfony Introducing Symfony Usables en cualquier otro proyecto de maner directa MVC en Symfony Parseador de YAML Una aplicación Manejador de eventos Symfony Gestor de dependencias Consola Symfony Sistema de plantillas Sistema de configuración Gestor de peticiones Referencias, Créditos y Licencia
  • 13. MVC en Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Una aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 14. MVC en Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Una aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 15. Controlador Symfony David J. Brenes Martínez Introducing Symfony 1 Servidor Web captura la petición MVC en Symfony 2 La redirige al punto de entrada (index.php) con Una parámetros aplicación Symfony 3 index.php inicia el controlador Consola Symfony 4 El controlador decide a qué acción corresponde la ruta Sistema de configuración Referencias, Créditos y Licencia
  • 16. Modelo Symfony David J. Brenes Martínez Introducing Symfony 1 La acción (controlador) solicita unos datos al modelo MVC en Symfony 2 La acción realiza modificaciones al modelo Una 3 El modelo persiste esas modificaciones si la acción lo aplicación Symfony solicita Consola Symfony 4 La acción pasa esos del modelo a la vista Sistema de configuración Referencias, Créditos y Licencia
  • 17. Vista Symfony David J. Brenes Martínez Introducing 1 La vista no tiene lógica de proceso Symfony MVC en 2 Solo genera HTML en base a los datos que recibe Symfony Una 3 La acción decide que vista se genera y con qué aplicación Symfony parámetros Consola 4 Una vez que la vista termina, el controlador le devuelve Symfony el resultado Sistema de configuración Referencias, Créditos y Licencia
  • 18. Descarguemos Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Una www.symfony-project.org aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 19. Directorios Symfony David J. apps: Un directorio para cada aplicación posible dentro Brenes Martínez de Symfony Introducing cache: Ficheros para la caché Symfony config: Ficheros de configuración MVC en Symfony data: Ficheros de datos variados como fixtures Una aplicación lib: Ficheros de código global a las aplicaciones (el Symfony Consola modelo, software ajeno a Symfony. . . ) Symfony log: Ficheros de log Sistema de configuración plugins: Plugins añadidos a Symfony Referencias, Créditos y tests: Suite de tests de la aplicación Licencia web: Carpeta pública
  • 20. Aplicaciones Symfony David J. Brenes Martínez Introducing Symfony permite tener conviviendo varias aplicaciones Symfony en un proyecto MVC en Symfony Aplicaciones que comparten modelo, base de usuarios, Una etc. aplicación Symfony Ejemplo típico: Frontend / Backend / API Consola Symfony Aplicaciones independientes (incluso dominios Sistema de distintos) configuración Referencias, Créditos y Licencia
  • 21. Módulos Symfony David J. Brenes Martínez Introducing Symfony Cada aplicación tiene varios módulos MVC en Symfony Los módulos permiten separar aspectos de la Una aplicación aplicación Symfony Cada módulo puede tener configuracion diferente Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 22. Lib Symfony David J. Brenes Martínez Introducing Symfony model: El código del modelo (VOs, DAOs y MVC en Formularios) Symfony Una helpers: conjunto de funciones de ayuda aplicación Symfony vendor: Codigo ajeno al framework (o el propio Consola Symfony framework) Sistema de configuración Referencias, Créditos y Licencia
  • 23. Plugins Symfony David J. Brenes Martínez Introducing Symfony Miniaplicaciones autocontenidas. MVC en Symfony Su propia configuración, sus propios modelos. Una aplicación Se mantienen en repositorios aparte (análogo a las Symfony gemas de Rails) Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 24. Web Symfony David J. Brenes Martínez Introducing Symfony Única carpeta que debería tener acceso público. MVC en Symfony Contiene los entornos de las aplicaciones Una aplicación index.php: Entorno por defecto para la aplicación por Symfony Consola defecto Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 25. Despliegue Symfony David J. Brenes Martínez Introducing Symfony Apuntar en Apache a la carpeta web MVC en Symfony Copiar carpeta /lib/vendor/symfony/data/web/sf a la Una carpeta web aplicación Symfony Visitar entorno de producción Consola Symfony Visitar entorno de depuración Sistema de configuración Referencias, Créditos y Licencia
  • 26. Prueba rápida Symfony David J. Brenes Martínez Introducing Symfony Descargar schema.yml MVC en Symfony Descargar databases.yml Una aplicación Activar driver MySQL (extension=php_pdo_mysql.dll) Symfony Consola Unas cuantas tareas Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 27. No solo una aplicación web Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony.bat en el raiz Symfony Una Consola de órdenes para Symfony aplicación Symfony Automatización de tareas Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 28. Tareas del proyecto Symfony David J. Brenes Martínez Introducing Symfony MVC en Generar aplicaciones Symfony Una Generar módulos aplicación Symfony Generar otro proyecto Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 29. Tareas del modelo Symfony David J. Brenes Martínez Introducing Symfony MVC en Gestionar BD Symfony Una Cargar datos de prueba aplicación Symfony Manejar el modelo Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 30. Tareas de plugins Symfony David J. Brenes Martínez Introducing Symfony MVC en Listar Symfony Una Instalar plugins nuevos aplicación Symfony Actualizar Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 31. Tarea de caché Symfony David J. Brenes Martínez Introducing symfony cache:clear Symfony MVC en Symfony dispone de caché Symfony Se cachean cosas importantes (configuración, vistas, Una aplicación modelos. . . ) Symfony Consola En entorno de producción la caché es más agresiva Symfony Si algo nocambia, cache:clear Sistema de configuración Referencias, Créditos y Licencia
  • 32. ¿Configuration over convention? Symfony David J. Brenes Martínez Introducing Symfony Convention over configuration: Uso de convenciones MVC en para evitar configuraciones explícitas Symfony Una Menos cantidad de trabajo aplicación Symfony Más magia y potencia Consola Symfony Más necesidad de memoria Sistema de configuración Referencias, Créditos y Licencia
  • 33. ¿Configuration over convention? Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony confia más en ficheros de configuración Symfony Una PHP es menos flexible que Ruby aplicación Symfony PHP permite menos magia Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 34. YAML: YAML Ain’t Markup Language Symfony David J. Brenes Martínez Introducing Symfony Formato de representación de datos alternativo a XML MVC en Symfony y JSON Una aplicación Basado en espacios para indentar configuraciones Symfony Formato muy legible y sencillo Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 35. YAML en Symfony Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Todos los ficheros de configuración son YAML Una aplicación Componente de Symfony para parseo de YAML Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 36. Niveles de configuración Symfony David J. Brenes Martínez Introducing Symfony Configuración de Symfony MVC en Symfony Configuración de Plugins Una Configración de proyecto aplicación Symfony Configuración de aplicación Consola Symfony Configuracion de módulo Sistema de configuración Referencias, Créditos y Licencia
  • 37. Entornos de configuración Symfony David J. Brenes Martínez Introducing Symfony MVC en Configuración específica para entornos de desarrollo, Symfony producción y test Una aplicación Symfony Permiten cambiar de entorno a placer Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 38. Settings.yml Symfony David J. Brenes Martínez Introducing Symfony Cuestiones generales sobre el proyecto y las MVC en aplicaciones Symfony Una Codificación de caracteres aplicación Symfony Cuestiones de seguridad Consola Symfony Páginas de error Sistema de configuración Referencias, Créditos y Licencia
  • 39. Factories.yml Symfony David J. Brenes Martínez Introducing Symfony Configuración para objetos necesitados por el MVC en framework (caché, i18n. . . ) Symfony Permite cargar objetos en el core de Symfony Una aplicación cambiando el comportamiento Symfony Consola Ejemplos: Nuevos sistemas de caché, i18n en Base de Symfony Datos. . . Sistema de configuración Referencias, Créditos y Licencia
  • 40. Databases.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Define la configuración de conexion a BD Symfony Una Permite definir conexiones diferentes para cada aplicación Symfony entorno Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 41. Security.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Define aspectos más concretos de seguridad Una aplicación Permite asegurar acciones en concreto Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 42. Security.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony Define aspectos más concretos de seguridad Una aplicación Permite asegurar acciones en concreto Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 43. Routing.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Configura el sistema de rutas Symfony Una La configuración va en cascada. La primera ruta que aplicación Symfony coincide es la que se usa. Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 44. App.yml Symfony David J. Brenes Martínez Introducing Symfony Configuración específica de una aplicación MVC en Symfony Permite definir parámetros propios Una aplicación Usado por los plugins para definir su propia Symfony configuración Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 45. filters.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Define los filtros por los que debe pasar la Request Symfony para ecutarse Una aplicación Symfony Permite pasar parámetros a los filtros Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 46. view.yml Symfony David J. Brenes Martínez Introducing Symfony MVC en Define la configuracion de las vistas Symfony Una Permite cargar CSS, JS, definir elementos meta, títulos aplicación Symfony de página. . . Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 47. Referencias Symfony David J. Brenes Martínez Symfony Project: www.symfony-project.org Introducing Symfony The Symfony Reference Book: http://www. MVC en symfony-project.org/reference/1_4/en/ Symfony Una Practical Symfony: aplicación Symfony http://www.symfony-project.org/jobeet/1_ Consola 4/Doctrine/en/ Symfony Sistema de The Definitive Guide to symfony: configuración http://www.symfony-project.org/book/1_2/ Referencias, Créditos y Licencia
  • 48. Créditos Symfony David J. Brenes Martínez Introducing Symfony MVC en Symfony La imagen de MVC está sacada de Practical Symfony Una aplicación Symfony Consola Symfony Sistema de configuración Referencias, Créditos y Licencia
  • 49. Licencia Symfony David J. Brenes Martínez Estas transparencias se publican bajo licencia Creative Introducing Commons y se pueden redistribuir o modificar bajo las Symfony MVC en siguientes condiciones: Symfony Se dé reconocimiento al autor de estas transparencias. Una aplicación Symfony No se use con propósitos comerciales. Consola Se distribuya con la misma licencia. Symfony Sistema de Texto de la licencia: http: configuración //creativecommons.org/licenses/by-nc-sa/3.0/ Referencias, Créditos y Licencia