[Html-widget] formfu - deflators

Daisuke Maki daisuke at endeworks.jp
Tue Apr 10 08:01:47 GMT 2007


> The way they work at the moment, they´re intended to be run on values
> you set yourself: $field->default($obj)
> such as when you recieve a DateTime object from DBIx::Class.
> When you redisplay a form, the original submitted value is used.
> Filtered / inflated values aren´t used, so it shouldn´t prove a
> problem that the deflators are only used when it´s not been submitted.
> Of course, this is only how I think it should work - the code might
> differ from my memory! I´m also open to suggestions on how it might
> work better, as well.

Thanks, I think I get the current status now.
my perception was that

    $form->process()

runs Filters, Constraints, Inflators, and Validators and

    $form->render()

runs Deflators before outputting xhtml to produce values to be used for 
rendering.

Basically what I wanted to do was

   1. Receive an form
   2. Inflate an element to an Object
   3. Refer to, and change some values of the object
   4. Deflate the object back to a string and see its
      results in the form.

For example, if I inflated a column to a DateTime object and then I 
changed the value to be a year ago the specified date (and perhaps 
explicitly set it as the value of that param), I was expecting the 
change to be visible when render() was called.

I guess it's really the naming of the modules: there's an inflator, and 
a deflator, I expected one to compliment the other. So if inflators 
always run, then deflators always do too, or something like that.

I don't have too strong of an opinion as to whether this should be 
changed to not -- I just thought that was a natural sequence of events.


--d




More information about the Html-widget mailing list