El poder de los formularios Symfony

Los formularios de Symfony son, al mismo tiempo, el componente más poderoso de Symfony y la parte más temida por los programadores. El problema es que son un poco difíciles de utilizar, por lo que el nuevo framework de formularios de Symfony 2 va a facilitar mucho su uso.

No obstante, en ocasiones los formularios de Symfony muestran todo su poder de una forma tan sencilla que parece mágica. Observa lo que puedes conseguir con una sola línea de código si utilizas Propel y el nuevo plugin sfPropel15Plugin:

mergeRelation from Francois Zaninotto on Vimeo.

Fuente: Embed Relation Forms in One Line with sfPropel15Plugin (Video)

Comentarios

  1. La verdad es que tengo bastante abandonado symfony por el curro (ahora estamos aventurandonos con grails, cuanto le queda por recorrer) pero en mis últimas intentonas lo que más problemas me dio fue unos combos dependientes igual de fácilmente que se hacía con symfony 1.0, pero con symfony 1.4.

    kNo el 2 de junio de 2010, 8:22:54

  2. Hola he intentado instalar este plugin en Symfony 1.4, pero no me deja, el error que me da es No release available for plugin "sfPropel15Plugin". Lo he intentado descargando el paquete y tampoco, las lineas mostradas son las siguientes:

    > plugin installing plugin "sfPropel15Plugin-1.0.0.tgz" >> sfPearFrontendPlugin No files in section of package.xml >> sfPearFrontendPlugin No maintainers found, at least one must be defined >> sfPearFrontendPlugin No release notes found >> sfPearFrontendPlugin No release date found >> sfPearFrontendPlugin No release state found >> sfPearFrontendPlugin No release version found >> sfPearFrontendPlugin Missing license >> sfPearFrontendPlugin Missing description >> sfPearFrontendPlugin No summary found >> sfPearFrontendPlugin Missing Package Name >> sfPearFrontendPlugin Parsing of package.xml from file >> sfPearFrontendPlugin "/srv/www/vhosts/controlasistencia/GestionAdministracion/interface/cache/.pear/sfPropel15Plugin-1.0.0/lib/vendor/propel-generator/pear/build-pear-package.xml" >> sfPearFrontendPlugin failed

    Plugin "sfPropel15Plugin-1.0.0.tgz" installation failed:

    Si alguién me puede ayudar os lo agradezco. saludos

    Pily el 2 de junio de 2010, 11:06:12

  3. Pily, también puedes instalar el plugin mediante Subversion:

    svn co http://svn.symfony-project.com/plugins/sfPropel15Plugin/trunk plugins/sfPropel15Plugin

    Y una vez instalado, no te olvides de leer su documentación porque hay que configurar algunas opciones y ejecutar algún comando más: http://www.symfony-project.org/plugins/sfPropel15Plugin/1_0_0

    Javier Eguiluz el 2 de junio de 2010, 13:18:55

  4. Ya lo he logrado instalar, ahora el problema está que al generar de forma automática el interfaz de administrador, y dar a Save, me da error de que los campos están vacios y sale el siguiente warning:

    Warning: array_key_exists(): The first argument should be either a string or an integer in /srv/www/htdocs/PruebaEmbebido/lib/vendor/symfony/lib/util/sfParameterHolder.class.php on line 53

    No se que es lo que ocurre. Gracias por contestar. Saludos!

    Pily el 2 de junio de 2010, 14:35:19

  5. Solucionado! no hace falta que contesteis. Ciaoo

    Pily el 2 de junio de 2010, 14:55:17

  6. @Pily si nos indicas donde tienes el fallo quizás le pueda servir a otra persona

    Gusanito el 2 de junio de 2010, 15:47:57

  7. Yo no entiendo por qué a partir de 1.4 el ORM oficial es Doctrine, y ahora siguen dando ejemplos con Propel...

    David el 3 de junio de 2010, 7:00:44

  8. @David, la principal razón por la que se quedaron con Doctrine es que en ese momento Propel estaba completamente muerto. Sin embargo, desde que lo cogió François Zaninotto, Propel ha revivido con más fuerza que nunca y es una durísima competencia a Doctrine.

    Symfony 2 seguirá soportando los dos ORM de forma nativa, aunque los responsables de Symfony se hayan decantado por Doctrine.

    Javier Eguiluz el 3 de junio de 2010, 7:30:03

  9. Hola Javier,

    Pues Jonathan Wage debe de estar con la mosca detrás de la oreja y muchos desarrolladores también. La apuesta por Doctrine fue tan fuerte que acabaron contratando a su propio creador. En Sf 1.4 se dejaba claro que Doctrine era el OFICIAL, y por tanto más valía irse olvidando de Propel. Pero es que además Doctrine 2 ya se está cociendo y promete bastante, según las diapos de su creador.

    Un detalle más: estoy leyendo el Cap. 1 de "A gentle introduction", y cuando se habla de los dos ORM más importantes... se menciona a Propel primero!!!:

    Out of the box, symfony supports the two most popular open source ORMs in PHP: Propel and Doctrine. Symfony integrates both of them seamlessly. When creating a new symfony project, it's a matter of choice to use Propel or Doctrine. This book will describe how to use the Propel and Doctrine objects, but for a more complete reference, a visit to the Propel website or the Doctrine website is recommended.

    Creo que esto puede generar bastante confusión en la comunidad de programadores. Me encanta que vuelva Zaninotti pero creo que alguien debería aclarar algunos puntos.

    Un saludo

    David el 3 de junio de 2010, 10:53:31

  10. Hola, yo tengo instalado symfony 1.4 y he estado siguiendo el proyecto Joobet, pero no me ha quedado claro, el como puedo cambiar un InputText por un Textarea de un formulario, a que archivos debo ir?

    Se me ocurrio ir ..lib/form/doctrine/BaseJobeetJobForm.class hice los cambios sin resultados.

    Saludos.

    Elizabeth el 22 de junio de 2010, 1:56:50

  11. Elizabeth, lo tienes que hacer dentro del método configure() del formulario que encontrarás en el directorio lib/form/doctrine

    Nunca toques un formulario que se llame BaseXXXXXX porque esos son los que genera automáticamente Symfony. Tienes que tocar el formulario lib/form/doctrine/JobeetJobForm.class.php

    Javier Eguiluz el 22 de junio de 2010, 6:15:56

  12. Buenas gente, alguno me podria ayudar a instalar este plugin en Windows XP? es que no se mucho de svn y una ayuda me vendria bien. Gracias de antemano por leerme.

    Armando el 5 de julio de 2010, 1:10:35

  13. Hola, Tengo un modelo con una tabla 'galerias' y otra 'fotografias', una 'galeria' está relacionada con n 'fotografias' y utilizo el método mergeRelations de sfPropel15Plugin en el formulario 'galeriasForm. Mi problema viene en que tengo redefinido el metodo 'doSave' del formulario 'fotografiasForm' y a la hora de guardar el formulario 'galeriasForm' con los formularios 'fotografiasForm' asociados éste método no se ejecuta con lo que toda la lógica incluida en este método para guardar las fotografias se pierde.

    Alguien a tenido un problema similar, parece ser que guarda los objetos pero saltándose el método save() del formulario 'fotografiasForm' y por consiguiente los dosave y updateObject().

    Un saludo

    angel el 11 de agosto de 2010, 8:03:05

  14. Angel, tengo el mismo inconveniente que tú, estoy definiendo una funcion doSave dentro de una clase form, pero este no se ejecuta cuando guardo información. Si ya lo solucionaste porfavor, muestranos como.

    johan hernandez el 20 de septiembre de 2010, 16:53:59

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

2 de junio de 2010

Etiquetas

Proyectos Symfony destacados

La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más

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