SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Symfony

                                               David J.
                                               Brenes
                                               Martínez

Desarrollo rápido con PHP y Symfony         Layouts

             (III) La Vista                 Configuración

                                            Helpers

                                            Parámetros

                                            Reutilización
        David J. Brenes Martínez            Partials
                                            Components


                                            Referencias,
         Curso de Extensión Universitaria   Créditos y
            Desarrollo web avanzado         Licencia
             Universidad de Oviedo


                 2010/03/22
Sin un sistema de plantillas

                                                                Symfony

                                                                David J.
                                                                Brenes
                                                                Martínez

                                                             Layouts

                                                             Configuración
    Dentro del PHP concreto de la vista se usaban includes
                                                             Helpers
    Los elementos comunes se definían en ficheros              Parámetros
    exernos                                                  Reutilización
                                                             Partials
    La inclusión de los elementos se hace en la vista        Components


    concreta                                                 Referencias,
                                                             Créditos y
                                                             Licencia
Estructura de una vista old school

                                                      Symfony

                                                      David J.
                                                      Brenes
                                                      Martínez

                                                   Layouts
 include ( " header . php " ) ;                    Configuración

                                                   Helpers
 / / Todo e l c o n t e n i d o de l a v i s t a   Parámetros
 // ...                                            Reutilización
                                                   Partials
                                                   Components

 include ( " s i d e b a r . php " )               Referencias,
                                                   Créditos y
                                                   Licencia

 include ( " f o o t e r . php " )
Con un sistema de plantillas

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                            Layouts

                                                            Configuración
    En el PHP concreto de la vista no se incluyen           Helpers
    elementos globales                                      Parámetros

    La vista concreta no sabe nada de dónde está incluida   Reutilización
                                                            Partials

    Es la plantlla la que incluye a la vista                Components


                                                            Referencias,
                                                            Créditos y
                                                            Licencia
Vista de una acción

                                                              Symfony

                                                              David J.
                                                              Brenes
                                                              Martínez


    Es la vista que el controlador decide que se muestre   Layouts

                                                           Configuración
    Fichero PHP simple
                                                           Helpers
    Hace uso de los parámetros almacenados por el          Parámetros

    controlador                                            Reutilización
                                                           Partials

    Sólo debe preocuparse de la vista (sin lógica de       Components


                                                           Referencias,
    negocio)                                               Créditos y
                                                           Licencia
    Se situan en la carpeta templates del módulo
Layout

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

   Define los elementos comunes: Menús, cabecera,            Layouts
   pie. . .                                                 Configuración

   No recibe parámetros del controlador                     Helpers

                                                            Parámetros
   Hace uso de datos de la respuesta (javascripts, título
                                                            Reutilización
   de la página, etiquetas meta. . . )                      Partials
                                                            Components

   Sólo debe preocuparse de la vista (sin lógica de         Referencias,
                                                            Créditos y
   negocio)                                                 Licencia

   Se situan en la carpeta templates de la aplicación
Layout de ejemplo

                                                                Symfony

                                                                David J.
                                                                Brenes
                                                                Martínez

<html >                                                      Layouts
   <head>                                                    Configuración
      <?php   include_metas ( ) ?>                           Helpers

      <?php   i n c l u d e _ t i t l e ( ) ?>               Parámetros

      <?php   i n c l u d e _ s t y l e s h e e t s ( ) ?>   Reutilización
                                                             Partials
   </ head>                                                  Components


   <body>                                                    Referencias,
                                                             Créditos y
      <?php   echo $ s f _ c o n t e n t ?>                  Licencia

   </ body>
</ html >
Slots

                                                                  Symfony

                                                                  David J.
                                                                  Brenes
                                                                  Martínez

                                                               Layouts

                                                               Configuración
En ocasiones la vista debe introducir elementos en el layout   Helpers

                                                               Parámetros
    Submenús
                                                               Reutilización
    Sidebar contextuales                                       Partials
                                                               Components


                                                               Referencias,
                                                               Créditos y
                                                               Licencia
Slots

                                                                   Symfony

                                                                   David J.
                                                                   Brenes
                                                                   Martínez

                                                                Layouts

                                                                Configuración
    Zonas del layout donde podemos introducir contenido         Helpers

    Se declaran en el layout                                    Parámetros

                                                                Reutilización
    En la vista se indica que parte el contenido va a parar a   Partials
                                                                Components
    un slot
                                                                Referencias,
                                                                Créditos y
                                                                Licencia
Ejemplo de slots

                                                                        Symfony

                                                                        David J.
                                                                        Brenes
                                                                        Martínez

                                                                     Layouts

                                                                     Configuración

<?php i f ( ! i n c l u d e _ s l o t ( ’ s i d e b a r ’ ) ) : ?>   Helpers

  <!−− código por d e f e c t o −−>                                  Parámetros

<?php e n d i f ; ?>                                                 Reutilización
                                                                     Partials
                                                                     Components


                                                                     Referencias,
                                                                     Créditos y
                              En el layout                           Licencia
Ejemplo de slots

                                                                  Symfony

                                                                  David J.
                                                                  Brenes
                                                                  Martínez

                                                               Layouts

                                                               Configuración

<?php s l o t ( ’ s i d e b a r ’ ) ?>                         Helpers

  <!−− Código d e l s i d e b a r para e s t a v i s t a −−>   Parámetros

<?php e n d _ s l o t ( ) ?>                                   Reutilización
                                                               Partials
                                                               Components


                                                               Referencias,
                                                               Créditos y
                        En la vista                            Licencia
View.yml

                                                             Symfony

                                                             David J.
                                                             Brenes
                                                             Martínez

                                                          Layouts
   Fichero de configuración de las vistas
                                                          Configuración
   En la configuración de la aplicación define aspectos     Helpers
   comunes a toda la aplicación                           Parámetros

   En la configuración del módulo nos define aspectos del   Reutilización
                                                          Partials

   módulo o de una vista                                  Components


                                                          Referencias,
   La configuración del módulo o vista puede               Créditos y
                                                          Licencia
   sobreescribir los niveles anteriores
View.yml

                                                      Symfony

                                                      David J.
                                                      Brenes
                                                      Martínez

Configuramos:                                       Layouts

                                                   Configuración
   El layout que debe tener una vista
                                                   Helpers
   Las hojas de estilo                             Parámetros

   Los javascripts a incluir                       Reutilización
                                                   Partials

   Metas y HTTP Metas, aunque está desaconsejado   Components


                                                   Referencias,
                                                   Créditos y
Referencia: http://www.symfony-project.org/        Licencia
reference/1_4/en/13-View
Configuración en tiempo de ejecución

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                            Layouts
    Puede interesar cambiar el título de la web en tiempo   Configuración
    de ejecución                                            Helpers

    Se dispone de un objeto Response desde el que           Parámetros

    modificar la respuesta                                   Reutilización
                                                            Partials
                                                            Components
    En el controlador $this->getResponse()
                                                            Referencias,
    Desde la vista $sf_response                             Créditos y
                                                            Licencia
Funciones complejas

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                        Layouts

   En ocasiones las vistas tienen comportamientos       Configuración

   complejos                                            Helpers

                                                        Parámetros
   Esos comportamientos se repiten en otras vistas      Reutilización
   Las vistas crecen y se hacen menos legibles          Partials
                                                        Components


   Necesidad de declarar ese código fuera de la vista   Referencias,
                                                        Créditos y
                                                        Licencia
Helpers

                                                            Symfony

                                                            David J.
                                                            Brenes
                                                            Martínez

                                                         Layouts

                                                         Configuración

   Ficheros con funciones (no necesariamente clases)     Helpers

                                                         Parámetros
   Se declara su uso y las funciones estan disponibles
                                                         Reutilización
   Normalmente son funciones muy abstractas              Partials
                                                         Components


                                                         Referencias,
                                                         Créditos y
                                                         Licencia
Declaración de Helpers

                                                             Symfony

                                                             David J.
                                                             Brenes
                                                             Martínez

                                                          Layouts
    En la vista: funcion use_helper
                                                          Configuración
    En el controlador o el modelo:                        Helpers
    sfApplicationConfiguration::getActive()->loadHelpers   Parámetros

    En la configuración (settings.yml), añadiendolo a      Reutilización
                                                          Partials
    standard_helpers                                      Components


                                                          Referencias,
    Si los helpers se cargan siempre, incluirlo en la     Créditos y
                                                          Licencia
    configuración
Creación de Helpers

                                                         Symfony

                                                         David J.
                                                         Brenes
                                                         Martínez

                                                      Layouts

   Las funciones van en un fichero                     Configuración

                                                      Helpers
   nombre_del_helper+Helper.php
                                                      Parámetros
   El fichero debe situarse en lib/helpers             Reutilización
                                                      Partials
   Al declarar su uso debe hacerse referencia a       Components


   nombre_del_helper, no a nombre_del_helper+Helper   Referencias,
                                                      Créditos y
                                                      Licencia
Ejemplo de Helper

                                                      Symfony

                                                      David J.
                                                      Brenes
                                                      Martínez

                                                   Layouts

                                                   Configuración
 f u n c t i o n f o r m a t ( $param )
                                                   Helpers
 {                                                 Parámetros
 // ...                                            Reutilización
 }                                                 Partials
                                                   Components


                                                   Referencias,
                                                   Créditos y
                                                   Licencia
                   /lib/helpers/CustomHelper.php
Ejemplo de Helper

                                           Symfony

                                           David J.
                                           Brenes
                                           Martínez

                                        Layouts

                                        Configuración

use_helper ( array ( " Custom " ) ) ;   Helpers

                                        Parámetros

echo f o r m a t ( $param ) ;           Reutilización
                                        Partials
                                        Components


                                        Referencias,
                                        Créditos y
                          En la Vista   Licencia
Del controlador

                                                              Symfony

                                                              David J.
                                                              Brenes
                                                              Martínez

                                                           Layouts
    Lo ideal sería que todos los parámetros vinieran del   Configuración
    controlador                                            Helpers

    Son variables PHP con el mismo nombre que les diera    Parámetros

                                                           Reutilización
    el controlador                                         Partials
                                                           Components
    NO son variables de objeto (no deben accederse con     Referencias,
    $this->)                                               Créditos y
                                                           Licencia
Acceso a la request

                                                           Symfony

                                                           David J.
                                                           Brenes
                                                           Martínez

                                                        Layouts

                                                        Configuración

                                                        Helpers
    Se tiene el objeto $sf_request
                                                        Parámetros
    Es el mismo objeto que el $this->getRequest() del   Reutilización
    controlador                                         Partials
                                                        Components


                                                        Referencias,
                                                        Créditos y
                                                        Licencia
Acceso a la sesión

                                                        Symfony

                                                        David J.
                                                        Brenes
                                                        Martínez

                                                     Layouts

                                                     Configuración

                                                     Helpers
    Se tiene el objeto $sf_user
                                                     Parámetros
    Es el mismo objeto que el $this->getUser() del   Reutilización
    controlador                                      Partials
                                                     Components


                                                     Referencias,
                                                     Créditos y
                                                     Licencia
Cuando el layout no es suficiente

                                                              Symfony

                                                              David J.
                                                              Brenes
                                                              Martínez

                                                           Layouts

                                                           Configuración

                                                           Helpers
 El layout define los elementos comunes: Menús, cabecera,   Parámetros
                           pie. . .                        Reutilización
                                                           Partials
                         ¿Seguro?                          Components


                                                           Referencias,
                                                           Créditos y
                                                           Licencia
Cuando el layout no es suficiente

                                                                Symfony

                                                                David J.
                                                                Brenes
                                                                Martínez

                                                             Layouts

    Las layouts crecen si hay muchos elementos comunes       Configuración

                                                             Helpers
    (menú, migas de pan, sidebars, banners, footers. . . )
                                                             Parámetros
    Puede haber elementos comunes a las layouts              Reutilización
                                                             Partials
    Puede haber elementos complejos que ensucien             Components


    nuestro layout                                           Referencias,
                                                             Créditos y
                                                             Licencia
Reutilización de vistas

                                 Symfony

                                 David J.
                                 Brenes
                                 Martínez

                              Layouts

                              Configuración
Elementos de reutilización:   Helpers

                              Parámetros
    Partials
                              Reutilización
    Components                Partials
                              Components


                              Referencias,
                              Créditos y
                              Licencia
Partials

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                            Layouts
    Vistas reutilizables en otras vistas                    Configuración

    Tienen acceso a helpers, la request, el usuario, etc.   Helpers

                                                            Parámetros
    No tienen acceso a las variables comunicadas por el
                                                            Reutilización
    controlador                                             Partials
                                                            Components
    Pueden recibir parametros de la vista                   Referencias,
                                                            Créditos y
    Pueden incluir otros partials y components              Licencia
Ejemplo de Partial

                                                                                   Symfony

                                                                                   David J.
 i n c l u d e _ p a r t i a l ( " nombre_partial " ) ;                            Brenes
                                                                                   Martínez
 i n c l u d e _ p a r t i a l ( " modulo / n o m b r e _ p a r t i a l " ) ;
                                                                                Layouts
 i n c l u d e _ p a r t i a l ( " global / nombre_partial " ) ;
                                                                                Configuración

                                                                                Helpers
echo g e t _ p a r t i a l ( " n o m b r e _ p a r t i a l " ) ;
                                                                                Parámetros

                                                                                Reutilización
 i n c l u d e _ p a r t i a l ( " nombre_partial " ,                           Partials
                                                                                Components

 array (                                                                        Referencias,
 " param1 " =>  $valor_param_1 ,                                               Créditos y
                                                                                Licencia
 " param2 " =>  $valor_param_2
 )
 );


                                  En la Vista
Ejemplo de Partial

                                                                  Symfony

                                                                  David J.
                                                                  Brenes
                                                                  Martínez

                                                               Layouts

echo $param1 ;                                                 Configuración

                                                               Helpers

                                                               Parámetros
echo $param2 ;
                                                               Reutilización
                                                               Partials

 i n c l u d e _ p a r t i a l ( " nombre_otro_partial " ) ;   Components


                                                               Referencias,
                                                               Créditos y
                                                               Licencia

               En el partial _nombre_partial.php
Cuando los partials no sirven

                                                             Symfony

                                                             David J.
                                                             Brenes
                                                             Martínez

                                                          Layouts

                                                          Configuración

                                                          Helpers

   En nuestra sidebar hay una zona de últimas noticias.   Parámetros

                                                          Reutilización
               ¿Cómo lo implementamos?                    Partials
                                                          Components


                                                          Referencias,
                                                          Créditos y
                                                          Licencia
Cuando los partials no sirven

                                                         Symfony

                                                         David J.
                                                         Brenes
                                                         Martínez

                                                      Layouts

                                                      Configuración

                                                      Helpers
    ¿Obteniendo las últimas noticias en un partial?
                                                      Parámetros
    ¿Obteniendo las últimas noticias en todos los     Reutilización
    controladores?                                    Partials
                                                      Components


                                                      Referencias,
                                                      Créditos y
                                                      Licencia
Components

                                                              Symfony

                                                              David J.
                                                              Brenes
                                                              Martínez

                                                           Layouts

   En ocasiones interesa reutilizar controladores          Configuración

                                                           Helpers
   Noticias más leidas, recomendaciones al usuario, etc.
                                                           Parámetros
   En otras plataformas se encadenan acciones              Reutilización
                                                           Partials
   La vista puede solicitar al controlador nuevos          Components


   comportamientos                                         Referencias,
                                                           Créditos y
                                                           Licencia
Components

                                                          Symfony

                                                          David J.
                                                          Brenes
                                                          Martínez

                                                       Layouts

                                                       Configuración

   Son parecidos a las acciones del controlador        Helpers

                                                       Parámetros
   Aportan a los partials la capacidad de acceder al   Reutilización
   modelo y llevar a cabo reglas de negocio            Partials
                                                       Components


                                                       Referencias,
                                                       Créditos y
                                                       Licencia
Ficheros de components

                                               Symfony

                                               David J.
                                               Brenes
                                               Martínez

                                            Layouts

                                            Configuración
Para un componente se generan dos ficheros
                                            Helpers
    En actions: components.class.php o      Parámetros

    nombre_componenteComponent.class.php    Reutilización
                                            Partials

    En templates: _nombre_componente.php    Components


                                            Referencias,
                                            Créditos y
                                            Licencia
Diferencias con las acciones

                                                        Symfony

                                                        David J.
                                                        Brenes
                                                        Martínez

                                                     Layouts

                                                     Configuración

    Un componente no tiene plantillas de error       Helpers

                                                     Parámetros
    No pueden ser accedidos directamente desde URL
                                                     Reutilización
    Solo se pueden invocar desde vistas              Partials
                                                     Components


                                                     Referencias,
                                                     Créditos y
                                                     Licencia
Ejemplo de Component

                                                                 Symfony

                                                                 David J.
                                                                 Brenes
                                                                 Martínez

include_component ( " modulo " , " nombre_component " )Layouts
                                                        ;
                                                              Configuración

include_component ( " modulo " , " nombre_component " , Helpers
array (                                                 Parámetros

" param1 " =>  $valor_param_1 ,                        Reutilización
                                                              Partials

" param2 " =>  $valor_param_2                                Components


                                                        Referencias,
)                                                       Créditos y
                                                        Licencia
);


                       En la Vista
Referencias

                                                 Symfony

                                                 David J.
                                                 Brenes
                                                 Martínez

   Symfony Project: www.symfony-project.org   Layouts

   The Symfony Reference Book: http://www.    Configuración

                                              Helpers
   symfony-project.org/reference/1_4/en/
                                              Parámetros
   Practical Symfony:                         Reutilización
   http://www.symfony-project.org/jobeet/1_   Partials
                                              Components

   4/Doctrine/en/                             Referencias,
                                              Créditos y
   The Definitive Guide to Symfony:            Licencia

   http://www.symfony-project.org/book/1_2/
Licencia

                                                                Symfony

                                                                David J.
                                                                Brenes
                                                                Martínez

Estas transparencias se publican bajo licencia Creative      Layouts
Commons y se pueden redistribuir o modificar bajo las         Configuración
siguientes condiciones:                                      Helpers

    Se dé reconocimiento al autor de estas transparencias.   Parámetros

                                                             Reutilización
    No se use con propósitos comerciales.                    Partials
                                                             Components

    Se distribuya con la misma licencia.                     Referencias,
                                                             Créditos y
Texto de la licencia: http:                                  Licencia

//creativecommons.org/licenses/by-nc-sa/3.0/

Más contenido relacionado

Más de David 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
 

Más de David J. Brenes (10)

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
 

Último

Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
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
 
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
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptELENA GALLARDO PAÚLS
 

Último (20)

Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
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
 
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
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.pptDE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 

Desarrollo rápido con PHP y Symfony

  • 1. Symfony David J. Brenes Martínez Desarrollo rápido con PHP y Symfony Layouts (III) La Vista Configuración Helpers Parámetros Reutilización David J. Brenes Martínez Partials Components Referencias, Curso de Extensión Universitaria Créditos y Desarrollo web avanzado Licencia Universidad de Oviedo 2010/03/22
  • 2. Sin un sistema de plantillas Symfony David J. Brenes Martínez Layouts Configuración Dentro del PHP concreto de la vista se usaban includes Helpers Los elementos comunes se definían en ficheros Parámetros exernos Reutilización Partials La inclusión de los elementos se hace en la vista Components concreta Referencias, Créditos y Licencia
  • 3. Estructura de una vista old school Symfony David J. Brenes Martínez Layouts include ( " header . php " ) ; Configuración Helpers / / Todo e l c o n t e n i d o de l a v i s t a Parámetros // ... Reutilización Partials Components include ( " s i d e b a r . php " ) Referencias, Créditos y Licencia include ( " f o o t e r . php " )
  • 4. Con un sistema de plantillas Symfony David J. Brenes Martínez Layouts Configuración En el PHP concreto de la vista no se incluyen Helpers elementos globales Parámetros La vista concreta no sabe nada de dónde está incluida Reutilización Partials Es la plantlla la que incluye a la vista Components Referencias, Créditos y Licencia
  • 5. Vista de una acción Symfony David J. Brenes Martínez Es la vista que el controlador decide que se muestre Layouts Configuración Fichero PHP simple Helpers Hace uso de los parámetros almacenados por el Parámetros controlador Reutilización Partials Sólo debe preocuparse de la vista (sin lógica de Components Referencias, negocio) Créditos y Licencia Se situan en la carpeta templates del módulo
  • 6. Layout Symfony David J. Brenes Martínez Define los elementos comunes: Menús, cabecera, Layouts pie. . . Configuración No recibe parámetros del controlador Helpers Parámetros Hace uso de datos de la respuesta (javascripts, título Reutilización de la página, etiquetas meta. . . ) Partials Components Sólo debe preocuparse de la vista (sin lógica de Referencias, Créditos y negocio) Licencia Se situan en la carpeta templates de la aplicación
  • 7. Layout de ejemplo Symfony David J. Brenes Martínez <html > Layouts <head> Configuración <?php include_metas ( ) ?> Helpers <?php i n c l u d e _ t i t l e ( ) ?> Parámetros <?php i n c l u d e _ s t y l e s h e e t s ( ) ?> Reutilización Partials </ head> Components <body> Referencias, Créditos y <?php echo $ s f _ c o n t e n t ?> Licencia </ body> </ html >
  • 8. Slots Symfony David J. Brenes Martínez Layouts Configuración En ocasiones la vista debe introducir elementos en el layout Helpers Parámetros Submenús Reutilización Sidebar contextuales Partials Components Referencias, Créditos y Licencia
  • 9. Slots Symfony David J. Brenes Martínez Layouts Configuración Zonas del layout donde podemos introducir contenido Helpers Se declaran en el layout Parámetros Reutilización En la vista se indica que parte el contenido va a parar a Partials Components un slot Referencias, Créditos y Licencia
  • 10. Ejemplo de slots Symfony David J. Brenes Martínez Layouts Configuración <?php i f ( ! i n c l u d e _ s l o t ( ’ s i d e b a r ’ ) ) : ?> Helpers <!−− código por d e f e c t o −−> Parámetros <?php e n d i f ; ?> Reutilización Partials Components Referencias, Créditos y En el layout Licencia
  • 11. Ejemplo de slots Symfony David J. Brenes Martínez Layouts Configuración <?php s l o t ( ’ s i d e b a r ’ ) ?> Helpers <!−− Código d e l s i d e b a r para e s t a v i s t a −−> Parámetros <?php e n d _ s l o t ( ) ?> Reutilización Partials Components Referencias, Créditos y En la vista Licencia
  • 12. View.yml Symfony David J. Brenes Martínez Layouts Fichero de configuración de las vistas Configuración En la configuración de la aplicación define aspectos Helpers comunes a toda la aplicación Parámetros En la configuración del módulo nos define aspectos del Reutilización Partials módulo o de una vista Components Referencias, La configuración del módulo o vista puede Créditos y Licencia sobreescribir los niveles anteriores
  • 13. View.yml Symfony David J. Brenes Martínez Configuramos: Layouts Configuración El layout que debe tener una vista Helpers Las hojas de estilo Parámetros Los javascripts a incluir Reutilización Partials Metas y HTTP Metas, aunque está desaconsejado Components Referencias, Créditos y Referencia: http://www.symfony-project.org/ Licencia reference/1_4/en/13-View
  • 14. Configuración en tiempo de ejecución Symfony David J. Brenes Martínez Layouts Puede interesar cambiar el título de la web en tiempo Configuración de ejecución Helpers Se dispone de un objeto Response desde el que Parámetros modificar la respuesta Reutilización Partials Components En el controlador $this->getResponse() Referencias, Desde la vista $sf_response Créditos y Licencia
  • 15. Funciones complejas Symfony David J. Brenes Martínez Layouts En ocasiones las vistas tienen comportamientos Configuración complejos Helpers Parámetros Esos comportamientos se repiten en otras vistas Reutilización Las vistas crecen y se hacen menos legibles Partials Components Necesidad de declarar ese código fuera de la vista Referencias, Créditos y Licencia
  • 16. Helpers Symfony David J. Brenes Martínez Layouts Configuración Ficheros con funciones (no necesariamente clases) Helpers Parámetros Se declara su uso y las funciones estan disponibles Reutilización Normalmente son funciones muy abstractas Partials Components Referencias, Créditos y Licencia
  • 17. Declaración de Helpers Symfony David J. Brenes Martínez Layouts En la vista: funcion use_helper Configuración En el controlador o el modelo: Helpers sfApplicationConfiguration::getActive()->loadHelpers Parámetros En la configuración (settings.yml), añadiendolo a Reutilización Partials standard_helpers Components Referencias, Si los helpers se cargan siempre, incluirlo en la Créditos y Licencia configuración
  • 18. Creación de Helpers Symfony David J. Brenes Martínez Layouts Las funciones van en un fichero Configuración Helpers nombre_del_helper+Helper.php Parámetros El fichero debe situarse en lib/helpers Reutilización Partials Al declarar su uso debe hacerse referencia a Components nombre_del_helper, no a nombre_del_helper+Helper Referencias, Créditos y Licencia
  • 19. Ejemplo de Helper Symfony David J. Brenes Martínez Layouts Configuración f u n c t i o n f o r m a t ( $param ) Helpers { Parámetros // ... Reutilización } Partials Components Referencias, Créditos y Licencia /lib/helpers/CustomHelper.php
  • 20. Ejemplo de Helper Symfony David J. Brenes Martínez Layouts Configuración use_helper ( array ( " Custom " ) ) ; Helpers Parámetros echo f o r m a t ( $param ) ; Reutilización Partials Components Referencias, Créditos y En la Vista Licencia
  • 21. Del controlador Symfony David J. Brenes Martínez Layouts Lo ideal sería que todos los parámetros vinieran del Configuración controlador Helpers Son variables PHP con el mismo nombre que les diera Parámetros Reutilización el controlador Partials Components NO son variables de objeto (no deben accederse con Referencias, $this->) Créditos y Licencia
  • 22. Acceso a la request Symfony David J. Brenes Martínez Layouts Configuración Helpers Se tiene el objeto $sf_request Parámetros Es el mismo objeto que el $this->getRequest() del Reutilización controlador Partials Components Referencias, Créditos y Licencia
  • 23. Acceso a la sesión Symfony David J. Brenes Martínez Layouts Configuración Helpers Se tiene el objeto $sf_user Parámetros Es el mismo objeto que el $this->getUser() del Reutilización controlador Partials Components Referencias, Créditos y Licencia
  • 24. Cuando el layout no es suficiente Symfony David J. Brenes Martínez Layouts Configuración Helpers El layout define los elementos comunes: Menús, cabecera, Parámetros pie. . . Reutilización Partials ¿Seguro? Components Referencias, Créditos y Licencia
  • 25. Cuando el layout no es suficiente Symfony David J. Brenes Martínez Layouts Las layouts crecen si hay muchos elementos comunes Configuración Helpers (menú, migas de pan, sidebars, banners, footers. . . ) Parámetros Puede haber elementos comunes a las layouts Reutilización Partials Puede haber elementos complejos que ensucien Components nuestro layout Referencias, Créditos y Licencia
  • 26. Reutilización de vistas Symfony David J. Brenes Martínez Layouts Configuración Elementos de reutilización: Helpers Parámetros Partials Reutilización Components Partials Components Referencias, Créditos y Licencia
  • 27. Partials Symfony David J. Brenes Martínez Layouts Vistas reutilizables en otras vistas Configuración Tienen acceso a helpers, la request, el usuario, etc. Helpers Parámetros No tienen acceso a las variables comunicadas por el Reutilización controlador Partials Components Pueden recibir parametros de la vista Referencias, Créditos y Pueden incluir otros partials y components Licencia
  • 28. Ejemplo de Partial Symfony David J. i n c l u d e _ p a r t i a l ( " nombre_partial " ) ; Brenes Martínez i n c l u d e _ p a r t i a l ( " modulo / n o m b r e _ p a r t i a l " ) ; Layouts i n c l u d e _ p a r t i a l ( " global / nombre_partial " ) ; Configuración Helpers echo g e t _ p a r t i a l ( " n o m b r e _ p a r t i a l " ) ; Parámetros Reutilización i n c l u d e _ p a r t i a l ( " nombre_partial " , Partials Components array ( Referencias, " param1 " => $valor_param_1 , Créditos y Licencia " param2 " => $valor_param_2 ) ); En la Vista
  • 29. Ejemplo de Partial Symfony David J. Brenes Martínez Layouts echo $param1 ; Configuración Helpers Parámetros echo $param2 ; Reutilización Partials i n c l u d e _ p a r t i a l ( " nombre_otro_partial " ) ; Components Referencias, Créditos y Licencia En el partial _nombre_partial.php
  • 30. Cuando los partials no sirven Symfony David J. Brenes Martínez Layouts Configuración Helpers En nuestra sidebar hay una zona de últimas noticias. Parámetros Reutilización ¿Cómo lo implementamos? Partials Components Referencias, Créditos y Licencia
  • 31. Cuando los partials no sirven Symfony David J. Brenes Martínez Layouts Configuración Helpers ¿Obteniendo las últimas noticias en un partial? Parámetros ¿Obteniendo las últimas noticias en todos los Reutilización controladores? Partials Components Referencias, Créditos y Licencia
  • 32. Components Symfony David J. Brenes Martínez Layouts En ocasiones interesa reutilizar controladores Configuración Helpers Noticias más leidas, recomendaciones al usuario, etc. Parámetros En otras plataformas se encadenan acciones Reutilización Partials La vista puede solicitar al controlador nuevos Components comportamientos Referencias, Créditos y Licencia
  • 33. Components Symfony David J. Brenes Martínez Layouts Configuración Son parecidos a las acciones del controlador Helpers Parámetros Aportan a los partials la capacidad de acceder al Reutilización modelo y llevar a cabo reglas de negocio Partials Components Referencias, Créditos y Licencia
  • 34. Ficheros de components Symfony David J. Brenes Martínez Layouts Configuración Para un componente se generan dos ficheros Helpers En actions: components.class.php o Parámetros nombre_componenteComponent.class.php Reutilización Partials En templates: _nombre_componente.php Components Referencias, Créditos y Licencia
  • 35. Diferencias con las acciones Symfony David J. Brenes Martínez Layouts Configuración Un componente no tiene plantillas de error Helpers Parámetros No pueden ser accedidos directamente desde URL Reutilización Solo se pueden invocar desde vistas Partials Components Referencias, Créditos y Licencia
  • 36. Ejemplo de Component Symfony David J. Brenes Martínez include_component ( " modulo " , " nombre_component " )Layouts ; Configuración include_component ( " modulo " , " nombre_component " , Helpers array ( Parámetros " param1 " => $valor_param_1 , Reutilización Partials " param2 " => $valor_param_2 Components Referencias, ) Créditos y Licencia ); En la Vista
  • 37. Referencias Symfony David J. Brenes Martínez Symfony Project: www.symfony-project.org Layouts The Symfony Reference Book: http://www. Configuración Helpers symfony-project.org/reference/1_4/en/ Parámetros Practical Symfony: Reutilización http://www.symfony-project.org/jobeet/1_ Partials Components 4/Doctrine/en/ Referencias, Créditos y The Definitive Guide to Symfony: Licencia http://www.symfony-project.org/book/1_2/
  • 38. Licencia Symfony David J. Brenes Martínez Estas transparencias se publican bajo licencia Creative Layouts Commons y se pueden redistribuir o modificar bajo las Configuración siguientes condiciones: Helpers Se dé reconocimiento al autor de estas transparencias. Parámetros Reutilización No se use con propósitos comerciales. Partials Components Se distribuya con la misma licencia. Referencias, Créditos y Texto de la licencia: http: Licencia //creativecommons.org/licenses/by-nc-sa/3.0/