In our Sf1 project, we had some dilemmas and arguments on how we could do
this better in Symfony 1. And ended up in our code, we have 3 approaches in
our codebase:

   - The one suggested by Sf1's doc: <table/>, <form/>, echo $form, and
   <input type="submit"/> in template.
   - Fully object oriented, I extended the sfForm to support rendering the
   HTML elements that are supposed to written in template. Yes, unit testable,
   but it puts a limit on how the form formatter choice and also very hard to
   further customize the form or its fields.
   - Someone in my team was writing a "wizard" module that reuses widgets
   from other form classes. She turned out using what you're proposing, in
   Symfony 1 would be: $form['field']->render(). This turns out to be a

If I can add an extra thing to what you suggested, I wish that $f->row()
won't be rendering <li/> or <tr/>, as it may waste time for developers or
designs to find a clean/dirty way to add custom objects into the HTML, e.g.
a light bulb, some fancy tips, etc.

The great thing about sfForm is the form processing part, the bind() and
validator's clean(). But the view part is really a nightmare to us.



> I was thinking about dropping support for that shortcut in Symfony2. So,
> the minimum code you will have to write to render a form would be something
> like the following:
>
>        <?php echo $f->errors() ?>
>
>        <table>
>            <?php echo $f->row('gender') ?>
>            <?php echo $f->row('object') ?>
>        </table>
>        <?php echo $f->hidden() ?>
>
>        <input type="submit" value="Update" />
>
> I can see several benefits:
>
> * we can drop the need for different layout (table, div, ...);
> * it is clearer than you have total control on the output;
> * no more confusion about the real "value" of echo $form;
> * rendering sub-forms is the developer responsibility (with calls to rows()
> for instance -- more reflection is needed on this one).
>
> What do you think?
>
> Fabien
>
>

-- 
If you want to report a vulnerability issue on symfony, please send it to 
security at symfony-project.com

You received this message because you are subscribed to the Google
Groups "symfony developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-devs?hl=en

Reply via email to