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

Preview:

DESCRIPTION

Explicación del sistema de formularios de Symfony y su unión con el modelo

Citation preview

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

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

David J. Brenes Martínez

Curso de Extensión UniversitariaDesarrollo web avanzado

Universidad de Oviedo

2010/03/22

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Elementos de los formularios

Formulario = cojunto de campos que deben cumplirunas restriccionesEstos campos se envían y son procesados por elservidor

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Widgets

Parte visual de los formulariosDefinen cómo se solicitan los datos de los formularios(textareas, campos de texto. . . )Las clases son sfWidgetForm*

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Validadores

Se encargan de validar los datos de entradaValidan fechas, emails, URLs, expresiones regulares. . .Las clases son sfValidator*Permiten personalizar textos de error

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Ejemplo de formulario

c lass ContactForm extends sfForm{

p u b l i c f u n c t i o n con f igu re ( ){

$ th is −>setWidgets ( array (’ emai l ’ => new sfWidgetFormInputText ( ) ,’ message ’ => new sfWidgetFormTextarea ( ) ,

) ) ;

$ th i s −>s e t V a l i d a t o r s ( array (’ emai l ’ => new s fV a l i d a t o rE 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)) ,

) ) ;}

}

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Procesando el formulario

El método getErrorSchema() devuelve los errores delformularioLos metodos getValue($campo) y getValues()devuelven los valores de los campos

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Formularios del modelo

Doctrine permite crear formularios para las clases delmodeloLa tarea doctrine:build –forms los creaEstos formularios automatizan la tarea de crear objetosTambién facilitan la creación de formularios de edición

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Personalización del formulario

Estos formularios muestran todos los camposAlgunos (created_at) se rellenan de forma automática yno interesa que los envien los usuariosSe puede especificar que campos ignorar

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Ejemplo de formulario

c lass CarForm extends BaseCarForm{

p u b l i c f u n c t i o n con f igu re ( ){

unset ($ t h i s [ ’ c reated_at ’ ] ,$ t h i s [ ’ updated_at ’ ] ,$ t h i s [ ’ exp i res_a t ’ ] ,$ t h i s [ ’ i s _ a c t i v a t e d ’ ]

) ;

$ th i s −>useFie lds ( array ( " nombre " ," ma t r i cu la " ) ) ;

}}

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Añadiendo validaciones

Algunas validaciones se obtienen del fichero deesquemaOtras deben añadirse en la configuración del formulario

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Añadiendo validaciones

$ th is −>val idatorSchema [ ’ emai l ’ ]= new s fVa l ida to rAnd ( array (

$ th is −>val idatorSchema [ ’ emai l ’ ] ,new s f V a l i d a t o r E ma i l ( ) ,

) ) ;

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Restringiendo la creación de formularios

Puede haber clases que no te interesen para lacreación de formulariosEn la defnición del esquema puede evitarse la creaciónde formularios

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Restringiendo la creación de formularios

Insurance :op t ions :

symfony :form : fa lse

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Procesando el formulario

Los formularios de Doctrine permiten grabar losobjetos que representanDebemos crear un formulario, indicarle cuales son losdatos que recibe y grabarlos

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Procesando el formulario

$form = new CarForm ( ) ;$form−>bind (

$request−>getParameter ($form−>getName ( )

) ,$request−>g e t F i l e s (

$form−>getName ( ))

) ;i f ( $form−>i s V a l i d ( ) ){

$car = $form−>save ( ) ;}

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Incorporando el formulario a la vista

El formulario dispone de métodos para generar supropio HTMLDelega en los widgets la generación de su HTML

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Forms en la vista

<?php echo fo rm_tag_for ( $form , $u r l _des t i no )echo $form ?>

</ form >

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Referencias

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

Practical Symfony:http://www.symfony-project.org/jobeet/1_4/Doctrine/en/

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

Symfony

David J.Brenes

Martínez

Framework deFormularios

Formulariosdel modelo

Forms en lavista

Referencias,Créditos yLicencia

Licencia

Estas transparencias se publican bajo licencia CreativeCommons y se pueden redistribuir o modificar bajo lassiguientes condiciones:

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

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

Recommended