This is a little difficult for me to describe. To replicate, in the implementation of sfForm::configure() do the following:
public function configure() {
$this->getWidgetSchema()->getFormFormatter()->setHelpFormat('foo');
if($this->getWidgetSchema()->getFormFormatter()->getHelpFormat() != 'foo')
throw new Exception("WTF!?");
}
The code above, found in lib/widget/sfWidgetFormSchema.class.php will throw in r7164 because sfWidgetFormSchema::getFormFormatter() will create and return a new instance of the formatter specified by $this->getFormFormatterName() but it will not actually save that new instance anywhere. What it should do is, after creating the instance, save it by doing the following:
$this->formFormatters[$name] = new $class();
then returning as usual. The included patch makes the changes needed.