Просмотр исходного кода

Allow children of Zend_Form to handle setDefaults to array conversion by themselves

Martin Hujer 11 лет назад
Родитель
Сommit
244e3d3f88
2 измененных файлов с 15 добавлено и 1 удалено
  1. 1 1
      library/Zend/Form.php
  2. 14 0
      tests/Zend/Form/FormTest.php

+ 1 - 1
library/Zend/Form.php

@@ -1271,7 +1271,7 @@ class Zend_Form implements Iterator, Countable, Zend_Validate_Interface
      * @param  array $defaults
      * @return Zend_Form
      */
-    public function setDefaults(array $defaults)
+    public function setDefaults($defaults)
     {
         $eBelongTo = null;
 

+ 14 - 0
tests/Zend/Form/FormTest.php

@@ -4859,6 +4859,20 @@ class Zend_Form_FormTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($element->hasErrors());
         $this->assertFalse($element->isValid(1));
     }
+
+    public function testSetDefaultsAllowOverridingWithNonArrayParameter()
+    {
+        //this would throw a strict warning if the setDefaults() method requires param to be array
+        $form = new Zend_Form_FormTest_SetDefaults();
+    }
+}
+
+class Zend_Form_FormTest_SetDefaults extends Zend_Form
+{
+    public function setDefaults($defaults)
+    {
+        return parent::setDefaults($defaults);
+    }
 }
 
 class Zend_Form_FormTest_DisplayGroup extends Zend_Form_DisplayGroup