sfWidget系クラスの初期化チェーン

例:sfWidgetFormChoice

1.sfForm派生クラス内にて、各フォームへの要素割り当て

<?php
$this->setWidgets( array(
    'options'=> new sfWidgetFormChoice(
        array(
            'choices'=>array( 'value1'=>'name1',  'value2'=>'name2'),
            'multiple'=>true,
            'expanded'=>true
        )
    )
));
?>

2.~SYMFONY_LIB_DIR/widget/sfWidgetFormChoice.class.php
sfWidgetFormChoiceにはコンストラクタが定義されていないので、親クラスのsfWidgetFormのコンストラクタへ
3.~SYMFONY_LIB_DIR/widget/sfWidgetForm.class.php
コンストラクタで共通オプションが設定された後、さらに親クラスのsfWidgetのコンストラクタへ
(共通オプションは、id_format、is_hidden、needs_multipart、default、labelです)
4.~SYMFONY_LIB_DIR/widget/sfWidget.class.php
コンストラクタ内で、configureメソッドが呼び出されます。
configureが派生クラスでオーバーライドされている場合は、派生クラスのメソッドが呼び出されます。
つまりここで sfWidgetFormChoice の configure が呼び出されます。
(コンストラクタに指定した $options、$attributes を引き継ぐ)