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/