Symfony1 在symfony中定义小部件的两种不同方式,使用哪种方式?
在本教程中,我可以使用:Symfony1 在symfony中定义小部件的两种不同方式,使用哪种方式?,symfony1,Symfony1,在本教程中,我可以使用: public function configure() { $this->setWidgets(array( 'type' => new sfWidgetFormChoice(array( 'choices' => Doctrine_Core::getTable('Gender')->getTypesForForm(), 'expanded' => false,
public function configure() {
$this->setWidgets(array(
'type' => new sfWidgetFormChoice(array(
'choices' => Doctrine_Core::getTable('Gender')->getTypesForForm(),
'expanded' => false,
'multiple' => false,
))
));
$this->widgetSchema['type'] = new sfWidgetFormChoice(array(
'choices' => Doctrine_Core::getTable('Gender')->getTypesForForm(),
'expanded' => false,
'multiple' => false,
));
}
定义一个小部件
我想知道我应该用哪一种,为什么有两种写作方式
谢谢它们是等价的;setWidgets()更干净:它不假设$this->widgetSchema是一个数组(直接访问$this->widgetSchema会破坏封装),另外,它允许您一次设置多个小部件。我猜“cleaner”是主观的:-)我喜欢能够按照小部件显式分组进行小部件设置(例如->setDefault(),->setLabel()):-)我在“封装”中的意思是“更干净”-如果在下一个版本中,$this->widgetSchema不再是数组(例如成为对象),$this->widgetSchema['something']=$somethingelse将中断。