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

                                              David J.
                                              Brenes
                                              Martínez

Desarrollo rápido con PHP y Symfony         Framework de
                                            Formularios
         (VI) Los formularios               Formularios
                                            del modelo

                                            Forms en la
                                            vista
        David J. Brenes Martínez            Referencias,
                                            Créditos y
                                            Licencia
         Curso de Extensión Universitaria
            Desarrollo web avanzado
             Universidad de Oviedo


                 2010/03/22
Elementos de los formularios

                                                         Symfony

                                                         David J.
                                                         Brenes
                                                         Martínez

                                                       Framework de
                                                       Formularios

                                                       Formularios
    Formulario = cojunto de campos que deben cumplir   del modelo
    unas restricciones                                 Forms en la
                                                       vista
    Estos campos se envían y son procesados por el     Referencias,
    servidor                                           Créditos y
                                                       Licencia
Widgets

                                                             Symfony

                                                             David J.
                                                             Brenes
                                                             Martínez

                                                           Framework de
                                                           Formularios

   Parte visual de los formularios                         Formularios
                                                           del modelo
   Definen cómo se solicitan los datos de los formularios   Forms en la
                                                           vista
   (textareas, campos de texto. . . )
                                                           Referencias,
   Las clases son sfWidgetForm*                            Créditos y
                                                           Licencia
Validadores

                                                                 Symfony

                                                                 David J.
                                                                 Brenes
                                                                 Martínez

                                                               Framework de
                                                               Formularios

    Se encargan de validar los datos de entrada                Formularios
                                                               del modelo
    Validan fechas, emails, URLs, expresiones regulares. . .   Forms en la
                                                               vista
    Las clases son sfValidator*                                Referencias,
                                                               Créditos y
    Permiten personalizar textos de error                      Licencia
Ejemplo de formulario

                                                                                Symfony
 c l a s s ContactForm extends sfForm
                                                                                David J.
 {                                                                              Brenes
                                                                                Martínez
   public function configure ( )
   {                                                                          Framework de
                                                                              Formularios
     $ t h i s −>setWidgets ( array (                                         Formularios
        ’ email ’    => new s f W i d g e t F o r m I n p u t T e x t ( ) ,   del modelo

                                                                              Forms en la
        ’ message ’ => new sfWidgetFormTextarea ( ) ,                         vista
      ));                                                                     Referencias,
                                                                              Créditos y
                                                                              Licencia
      $ t h i s −> s e t V a l i d a t o r s ( array (
        ’ email ’         => new s f V a l i d a t o r E m a i l ( ) ,
        ’ message ’ => new s f V a l i d a t o r S t r i n g (
            array ( ’ max_length ’ => 255)
          ),
      ));
  }
Procesando el formulario

                                                            Symfony

                                                            David J.
                                                            Brenes
                                                            Martínez

                                                          Framework de
                                                          Formularios

    El método getErrorSchema() devuelve los errores del   Formularios
                                                          del modelo
    formulario                                            Forms en la
                                                          vista
    Los metodos getValue($campo) y getValues()
                                                          Referencias,
    devuelven los valores de los campos                   Créditos y
                                                          Licencia
Formularios del modelo

                                                                Symfony

                                                                David J.
                                                                Brenes
                                                                Martínez

                                                              Framework de
                                                              Formularios
    Doctrine permite crear formularios para las clases del    Formularios
    modelo                                                    del modelo

                                                              Forms en la
    La tarea doctrine:build –forms los crea                   vista

                                                              Referencias,
    Estos formularios automatizan la tarea de crear objetos   Créditos y
                                                              Licencia
    También facilitan la creación de formularios de edición
Personalización del formulario

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                             Framework de
                                                             Formularios

    Estos formularios muestran todos los campos              Formularios
                                                             del modelo
    Algunos (created_at) se rellenan de forma automática y   Forms en la
                                                             vista
    no interesa que los envien los usuarios
                                                             Referencias,
    Se puede especificar que campos ignorar                   Créditos y
                                                             Licencia
Ejemplo de formulario

                                                                  Symfony
 c l a s s CarForm extends BaseCarForm
                                                                  David J.
 {                                                                Brenes
                                                                  Martínez
   public function configure ( )
   {                                                            Framework de
                                                                Formularios
       unset (                                                  Formularios
            $this [ ’ created_at ’ ] ,                          del modelo

                                                                Forms en la
            $ t h i s [ ’ updated_at ’ ] ,                      vista
            $this [ ’ expires_at ’ ] ,                          Referencias,
                                                                Créditos y
            $this [ ’ is_activated ’ ]                          Licencia
         );

         $ t h i s −>u s e F i e l d s ( array ( " nombre " ,
             " matricula " ) ) ;
     }
 }
Añadiendo validaciones

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                             Framework de
                                                             Formularios

                                                             Formularios
    Algunas validaciones se obtienen del fichero de           del modelo

    esquema                                                  Forms en la
                                                             vista

    Otras deben añadirse en la configuración del formulario   Referencias,
                                                             Créditos y
                                                             Licencia
Añadiendo validaciones

                                                              Symfony

                                                              David J.
                                                              Brenes
                                                              Martínez

                                                            Framework de
                                                            Formularios

 $ t h i s −>validatorSchema [ ’ e m a i l ’ ]              Formularios
                                                            del modelo
     = new s f V a l i d a t o r A n d ( array (            Forms en la
                                                            vista
          $ t h i s −>validatorSchema [ ’ e m a i l ’ ] ,
                                                            Referencias,
           new s f V a l i d a t o r E m a i l ( ) ,        Créditos y
                                                            Licencia
          ));
Restringiendo la creación de formularios

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

                                                             Framework de
                                                             Formularios

                                                             Formularios
    Puede haber clases que no te interesen para la           del modelo
    creación de formularios                                  Forms en la
                                                             vista
    En la defnición del esquema puede evitarse la creación   Referencias,
    de formularios                                           Créditos y
                                                             Licencia
Restringiendo la creación de formularios

                                             Symfony

                                             David J.
                                             Brenes
                                             Martínez

                                           Framework de
                                           Formularios

 Insurance :                               Formularios
                                           del modelo
   options :                               Forms en la
     symfony :                             vista

       form : f a l s e                    Referencias,
                                           Créditos y
                                           Licencia
Procesando el formulario

                                                              Symfony

                                                              David J.
                                                              Brenes
                                                              Martínez

                                                            Framework de
                                                            Formularios

    Los formularios de Doctrine permiten grabar los         Formularios
                                                            del modelo
    objetos que representan                                 Forms en la
                                                            vista
    Debemos crear un formulario, indicarle cuales son los
                                                            Referencias,
    datos que recibe y grabarlos                            Créditos y
                                                            Licencia
Procesando el formulario

                                      Symfony

$form = new CarForm ( ) ;             David J.
                                      Brenes
$form−>b i n d (                      Martínez

   $request −>getParameter (        Framework de
                                    Formularios
      $form−>getName ( )
                                    Formularios
   ),                               del modelo

   $request −> g e t F i l e s (    Forms en la
                                    vista
      $form−>getName ( )            Referencias,
   )                                Créditos y
                                    Licencia
);
i f ( $form−> i s V a l i d ( ) )
{
   $car = $form−>save ( ) ;
}
Incorporando el formulario a la vista

                                                         Symfony

                                                         David J.
                                                         Brenes
                                                         Martínez

                                                       Framework de
                                                       Formularios

                                                       Formularios
    El formulario dispone de métodos para generar su   del modelo

    propio HTML                                        Forms en la
                                                       vista

    Delega en los widgets la generación de su HTML     Referencias,
                                                       Créditos y
                                                       Licencia
Forms en la vista

                                                                           Symfony

                                                                           David J.
                                                                           Brenes
                                                                           Martínez

                                                                         Framework de
                                                                         Formularios

                                                                         Formularios
<?php echo f o r m _ t a g _ f o r ( $form , $ u r l _ d e s t i n o )   del modelo

   echo $form ?>                                                         Forms en la
                                                                         vista
</ form >                                                                Referencias,
                                                                         Créditos y
                                                                         Licencia
Referencias

                                                Symfony

                                                David J.
                                                Brenes
                                                Martínez

   Symfony Project: www.symfony-project.org   Framework de
                                              Formularios
   The Symfony Reference Book: http://www.    Formularios
   symfony-project.org/reference/1_4/en/      del modelo

                                              Forms en la
   Practical Symfony:                         vista

   http://www.symfony-project.org/jobeet/1_   Referencias,
                                              Créditos y
   4/Doctrine/en/                             Licencia

   The Definitive Guide to Symfony:
   http://www.symfony-project.org/book/1_2/
Licencia

                                                               Symfony

                                                               David J.
                                                               Brenes
                                                               Martínez

Estas transparencias se publican bajo licencia Creative      Framework de
Commons y se pueden redistribuir o modificar bajo las         Formularios

                                                             Formularios
siguientes condiciones:                                      del modelo

    Se dé reconocimiento al autor de estas transparencias.   Forms en la
                                                             vista
    No se use con propósitos comerciales.                    Referencias,
                                                             Créditos y
    Se distribuya con la misma licencia.                     Licencia

Texto de la licencia: http:
//creativecommons.org/licenses/by-nc-sa/3.0/

Más contenido relacionado

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

Más de David J. Brenes (11)

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
 

Desarrollo rápido con PHP y Symfony (VI): Los formularios

  • 1. Symfony David J. Brenes Martínez Desarrollo rápido con PHP y Symfony Framework de Formularios (VI) Los formularios Formularios del modelo Forms en la vista David J. Brenes Martínez Referencias, Créditos y Licencia Curso de Extensión Universitaria Desarrollo web avanzado Universidad de Oviedo 2010/03/22
  • 2. Elementos de los formularios Symfony David J. Brenes Martínez Framework de Formularios Formularios Formulario = cojunto de campos que deben cumplir del modelo unas restricciones Forms en la vista Estos campos se envían y son procesados por el Referencias, servidor Créditos y Licencia
  • 3. Widgets Symfony David J. Brenes Martínez Framework de Formularios Parte visual de los formularios Formularios del modelo Definen cómo se solicitan los datos de los formularios Forms en la vista (textareas, campos de texto. . . ) Referencias, Las clases son sfWidgetForm* Créditos y Licencia
  • 4. Validadores Symfony David J. Brenes Martínez Framework de Formularios Se encargan de validar los datos de entrada Formularios del modelo Validan fechas, emails, URLs, expresiones regulares. . . Forms en la vista Las clases son sfValidator* Referencias, Créditos y Permiten personalizar textos de error Licencia
  • 5. Ejemplo de formulario Symfony c l a s s ContactForm extends sfForm David J. { Brenes Martínez public function configure ( ) { Framework de Formularios $ t h i s −>setWidgets ( array ( Formularios ’ email ’ => new s f W i d g e t F o r m I n p u t T e x t ( ) , del modelo Forms en la ’ message ’ => new sfWidgetFormTextarea ( ) , vista )); Referencias, Créditos y Licencia $ t h i s −> s e t V a l i d a t o r s ( array ( ’ email ’ => new s f V a l i d a t o r E m a i l ( ) , ’ message ’ => new s f V a l i d a t o r S t r i n g ( array ( ’ max_length ’ => 255) ), )); }
  • 6. Procesando el formulario Symfony David J. Brenes Martínez Framework de Formularios El método getErrorSchema() devuelve los errores del Formularios del modelo formulario Forms en la vista Los metodos getValue($campo) y getValues() Referencias, devuelven los valores de los campos Créditos y Licencia
  • 7. Formularios del modelo Symfony David J. Brenes Martínez Framework de Formularios Doctrine permite crear formularios para las clases del Formularios modelo del modelo Forms en la La tarea doctrine:build –forms los crea vista Referencias, Estos formularios automatizan la tarea de crear objetos Créditos y Licencia También facilitan la creación de formularios de edición
  • 8. Personalización del formulario Symfony David J. Brenes Martínez Framework de Formularios Estos formularios muestran todos los campos Formularios del modelo Algunos (created_at) se rellenan de forma automática y Forms en la vista no interesa que los envien los usuarios Referencias, Se puede especificar que campos ignorar Créditos y Licencia
  • 9. Ejemplo de formulario Symfony c l a s s CarForm extends BaseCarForm David J. { Brenes Martínez public function configure ( ) { Framework de Formularios unset ( Formularios $this [ ’ created_at ’ ] , del modelo Forms en la $ t h i s [ ’ updated_at ’ ] , vista $this [ ’ expires_at ’ ] , Referencias, Créditos y $this [ ’ is_activated ’ ] Licencia ); $ t h i s −>u s e F i e l d s ( array ( " nombre " , " matricula " ) ) ; } }
  • 10. Añadiendo validaciones Symfony David J. Brenes Martínez Framework de Formularios Formularios Algunas validaciones se obtienen del fichero de del modelo esquema Forms en la vista Otras deben añadirse en la configuración del formulario Referencias, Créditos y Licencia
  • 11. Añadiendo validaciones Symfony David J. Brenes Martínez Framework de Formularios $ t h i s −>validatorSchema [ ’ e m a i l ’ ] Formularios del modelo = new s f V a l i d a t o r A n d ( array ( Forms en la vista $ t h i s −>validatorSchema [ ’ e m a i l ’ ] , Referencias, new s f V a l i d a t o r E m a i l ( ) , Créditos y Licencia ));
  • 12. Restringiendo la creación de formularios Symfony David J. Brenes Martínez Framework de Formularios Formularios Puede haber clases que no te interesen para la del modelo creación de formularios Forms en la vista En la defnición del esquema puede evitarse la creación Referencias, de formularios Créditos y Licencia
  • 13. Restringiendo la creación de formularios Symfony David J. Brenes Martínez Framework de Formularios Insurance : Formularios del modelo options : Forms en la symfony : vista form : f a l s e Referencias, Créditos y Licencia
  • 14. Procesando el formulario Symfony David J. Brenes Martínez Framework de Formularios Los formularios de Doctrine permiten grabar los Formularios del modelo objetos que representan Forms en la vista Debemos crear un formulario, indicarle cuales son los Referencias, datos que recibe y grabarlos Créditos y Licencia
  • 15. Procesando el formulario Symfony $form = new CarForm ( ) ; David J. Brenes $form−>b i n d ( Martínez $request −>getParameter ( Framework de Formularios $form−>getName ( ) Formularios ), del modelo $request −> g e t F i l e s ( Forms en la vista $form−>getName ( ) Referencias, ) Créditos y Licencia ); i f ( $form−> i s V a l i d ( ) ) { $car = $form−>save ( ) ; }
  • 16. Incorporando el formulario a la vista Symfony David J. Brenes Martínez Framework de Formularios Formularios El formulario dispone de métodos para generar su del modelo propio HTML Forms en la vista Delega en los widgets la generación de su HTML Referencias, Créditos y Licencia
  • 17. Forms en la vista Symfony David J. Brenes Martínez Framework de Formularios Formularios <?php echo f o r m _ t a g _ f o r ( $form , $ u r l _ d e s t i n o ) del modelo echo $form ?> Forms en la vista </ form > Referencias, Créditos y Licencia
  • 18. Referencias Symfony David J. Brenes Martínez Symfony Project: www.symfony-project.org Framework de Formularios The Symfony Reference Book: http://www. Formularios symfony-project.org/reference/1_4/en/ del modelo Forms en la Practical Symfony: vista http://www.symfony-project.org/jobeet/1_ Referencias, Créditos y 4/Doctrine/en/ Licencia The Definitive Guide to Symfony: http://www.symfony-project.org/book/1_2/
  • 19. Licencia Symfony David J. Brenes Martínez Estas transparencias se publican bajo licencia Creative Framework de Commons y se pueden redistribuir o modificar bajo las Formularios Formularios siguientes condiciones: del modelo Se dé reconocimiento al autor de estas transparencias. Forms en la vista No se use con propósitos comerciales. Referencias, Créditos y Se distribuya con la misma licencia. Licencia Texto de la licencia: http: //creativecommons.org/licenses/by-nc-sa/3.0/