Los nuevos formularios de Symfony 1.1

Uno de los puntos débiles de Symfony 1.0 es el proceso de creación, validación y procesamiento de formularios. Aunque es un mecanismo que funciona bien, tiene muchos puntos mejorables y es la parte de Symfony que menos se parece a Symfony.

Por todo ello, hace tiempo que se habla sobre una renovación total de los formularios. De hecho, el 8 de junio pasado, Fabien aseguró que estaba evaluando muchas de las opciones existentes, como por ejemplo los newforms del framework Django y la librería FormEncode del lenguaje de programación Python.

Aunque no se ha vuelto a saber nada de los formularios desde entonces, hace dos días Fabien realizó un commit bastante interesante en el repositorio de Subversion: added widget classes. Aún no se ha publicado ninguna noticia ni documentación oficial, pero el nombre de los archivos subidos nos da una pista sobre su utilidad:

De hecho, los newforms de Django están relacionados con tres conceptos principales, uno de los cuales es el de los widgets que define como: "una clase que se corresponde con cada uno de los elementos que forman un formulario HTML, como un cuadro de texto o un textarea".

Además de los widgets, el commit de Fabien incluye unas clases relacionadas con el "FormSchema", que al parecer, podría servir para definir la estructura y características de los formularios, siguiendo la misma idea del esquema del modelo de datos.

La librería FormEncode de Python también incluye la misma idea, como se puede ver en el siguiente ejemplo:

class FormSchema(schema.Schema):

  nombre = validators.String(not_empty=True)

  edad = validators.Int(min=13, max=99)

  color = compound.All(validators.Set(),

    validators.OneOf(['rojo', 'azul', 'negro', 'verde']))

    filter_extra_fields = True

    allow_extra_fields = True

Así que, a falta de confirmación oficial, parece que Symfony 1.1 va a incluir un mecanismo completamente renovado para los formularios. Al parecer, se podrán definir los elementos de cada formulario en una especie de esquema y también se podrán definir sus restricciones en el mismo esquema. Al mostrar cada formulario, se podrán utilizar diferentes decoradores para la generación del código HTML (por el momento parece que se podrán mostrar en forma de tabla y en forma de lista de elementos).

Comentarios

  1. I should learn Spanish, I'm curious what you wrote :)

    Thierry el 12 de noviembre de 2007, 1:46:00

  2. After google translating that, I personally am quite happy with forms in Symfony. Validation is a breeze and fillin works well.

    Could you elaborate on what better practices you have seen?

    Cheers,
    Thierry

    Thierry el 12 de noviembre de 2007, 1:50:00

  3. Thierry, Symfony 1.0 form mechanism is "good enough" but Symfony 1.1 forms will be "much better".

    The new form validation promises to be easier and more powerful.

    Anyway, the more important new feature will be "form widgets", that could make far much easier to create and process forms in Symfony applications.

    The posts states that Symfony has made the right decision: borrow the best practices from other frameworks instead of reinventing the wheel for every new feature.

    Cheers ;)

    Javier Eguiluz el 12 de noviembre de 2007, 8:57:00

  4. acuerdo contigo Javier !

    [MA]Pascal el 12 de noviembre de 2007, 13:04:00

  5. Excelente, una de las caracteristicas que he observado por parte de los desarrolladores es que si estudian "la competencia" y tratar de ver sus puntos a favor y mejorar symfony, es una practica que muy pocos hacen en la realidad.
    Los que han desarrollado usando Java para la web han notado que symfony 1.1 esta pareciendose mucho, con eso de los objetos Request y Response que se entregan en las acciones???.

    Neonard0 el 13 de noviembre de 2007, 14:54:00

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

11 de noviembre de 2007

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.