소스 검색

Improve FormBuilderIterator: Remove reflection

The property 'children' is not always accessible or even available because several implementations of other FormBuilders do not have this property.
Accessing private properties is never a good idea. Only rely on the given FormBuilderInterface.
Mike Meier 9 년 전
부모
커밋
c6a8a8070c
1개의 변경된 파일1개의 추가작업 그리고 6개의 파일을 삭제
  1. 1 6
      Util/FormBuilderIterator.php

+ 1 - 6
Util/FormBuilderIterator.php

@@ -65,12 +65,7 @@ class FormBuilderIterator extends \RecursiveArrayIterator
      */
     private static function getKeys(FormBuilderInterface $formBuilder)
     {
-        if (!self::$reflection) {
-            self::$reflection = new \ReflectionProperty(get_class($formBuilder), 'children');
-            self::$reflection->setAccessible(true);
-        }
-
-        return array_keys(self::$reflection->getValue($formBuilder));
+        return array_keys($formBuilder->all());
     }
 
     /**