sfFormのオプション等を共通化

例えばsfWidgetFormDateなどは、formatは常に%year%/%month%/%day%で設定したいけど、毎回書くのはあまりに無駄。

そういうときはBaseFormPropelやBaseFormFilterPropelのsetupに共通処理を書いてやれば良い。

以下はフィルタに書いた例。

abstract class BaseFormFilterPropel extends sfFormFilterPropel
{
  public function setup()
  {
    $fields = $this->getWidgetSchema()->getFields();
 
    foreach($fields as $name => $field)
    {
      /* @var $field sfWidget */
      if($field instanceof sfWidgetFormFilterDate)
      {
 
        $field->setOption('from_date', new sfWidgetFormDate(array(
          'format' => '%year%/%month%/%day%'
        )));
        $field->setOption('to_date', new sfWidgetFormDate(array(
          'format' =>'%year%/%month%/%day%'
        )));
        $field->setOption('template', '%from_date%<br />~ %to_date%');
      }
 
    }
  }
}