07 octubre 2010

Formularios en Symfony

El Framework para formularios

En todo sitio Web es son necesarios los formularios, algunos muy simples y otros muy complejos, con varios campos y varias reglas de validación. Escribir los formularios es una de las tareas más complejas y tediosas para un programador Web: necesita escribir el código HTML del formulario, implementar las reglas de validación para cada campo, procesar cada valor para guardarlo en la base de datos, mostrar los mensajes de error, rellenar los campos válidos en caso de error, y mucho más… Por supuesto, en vez de hacer todo esto una y otra vez, symfony presenta un framework para hacer mucho más fácil la creación de formularios. El framework de symfony está compuesto de tres partes:

1. validation: El sub-framework de validación proporciona clases para la validación de las entradas de datos (enteros, cadenas, correo electrónico, contraseñas, etc.).

2. widgets: El sub-framework widget proporciona clases para la salida HTML de los campos (entrada de texto, áreas de textos, listas desplegables, etc.).

3. forms: Las clases de los formularios representan formularios compuestos por widgets y validadores y proporcionan métodos para ayudarnos a manejar el formulario. Cada campo del formulario posee su propio validador y su propio widget.

Formularios

Un formulario en symfony es una clase compuesta por uno o varios campos, cada campo tiene un nombre, un validador y un widget. Por ejemplo, un formulario para contacto puede ser definido por la siguiente clase:

class ContactForm extends sfForm

{

public function configure()

{

$this->setWidgets(array(

'email' => new sfWidgetFormInputText(),

'message' => new sfWidgetFormTextarea(),

));

$this->setValidators(array(

'email' => new sfValidatorEmail(),

'message' => new sfValidatorString(array('max_length' => 255)),

));-----------------

}

}

Los campos del formulario son configurados en el método configure(), usando los métodos setValidators() y setWidgets().

Por defecto todos los campos son requeridos, por lo tanto la definición de la validación para el email es equivalente a: sfValidatorEmail(array('required' => true)).

1 comentario:

Mantenimiento dijo...

Gracias por el aporte.