diff --git a/src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php b/src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php index 2ba195243d..f8ba99a8b9 100644 --- a/src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php +++ b/src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php @@ -25,15 +25,10 @@ class ArrayTypeLoader implements TypeLoaderInterface public function __construct(array $types) { foreach ($types as $type) { - $this->addType($type); + $this->types[$type->getName()] = $type; } } - private function addType(FormTypeInterface $type) - { - $this->types[$type->getName()] = $type; - } - public function getType($name) { return $this->types[$name]; diff --git a/src/Symfony/Component/Form/Type/Loader/DefaultTypeLoader.php b/src/Symfony/Component/Form/Type/Loader/DefaultTypeLoader.php index 32663672db..3439718bb8 100644 --- a/src/Symfony/Component/Form/Type/Loader/DefaultTypeLoader.php +++ b/src/Symfony/Component/Form/Type/Loader/DefaultTypeLoader.php @@ -20,59 +20,48 @@ use Symfony\Component\Validator\ValidatorInterface; use Symfony\Component\HttpFoundation\File\TemporaryStorage; use Doctrine\ORM\EntityManager; -class DefaultTypeLoader implements TypeLoaderInterface +class DefaultTypeLoader extends ArrayTypeLoader { - private $types = array(); - public function __construct( FormThemeFactoryInterface $themeFactory, $template = null, ValidatorInterface $validator = null, CsrfProviderInterface $csrfProvider = null, TemporaryStorage $storage = null) { - $this->addType(new Type\FieldType($validator, $themeFactory, $template)); - $this->addType(new Type\FormType()); - $this->addType(new Type\BirthdayType()); - $this->addType(new Type\CheckboxType()); - $this->addType(new Type\ChoiceType()); - $this->addType(new Type\CollectionType()); - $this->addType(new Type\CountryType()); + $types = array( + new Type\FieldType($validator, $themeFactory, $template), + new Type\FormType(), + new Type\BirthdayType(), + new Type\CheckboxType(), + new Type\ChoiceType(), + new Type\CollectionType(), + new Type\CountryType(), + new Type\DateType(), + new Type\DateTimeType(), + new Type\HiddenType(), + new Type\IntegerType(), + new Type\LanguageType(), + new Type\LocaleType(), + new Type\MoneyType(), + new Type\NumberType(), + new Type\PasswordType(), + new Type\PercentType(), + new Type\RadioType(), + new Type\RepeatedType(), + new Type\TextareaType(), + new Type\TextType(), + new Type\TimeType(), + new Type\TimezoneType(), + new Type\UrlType(), + ); + if ($csrfProvider) { // TODO Move to a Symfony\Bridge\FormSecurity - $this->addType(new Type\CsrfType($csrfProvider)); + $types[] = new Type\CsrfType($csrfProvider); } - $this->addType(new Type\DateType()); - $this->addType(new Type\DateTimeType()); + if ($storage) { - $this->addType(new Type\FileType($storage)); + $types[] = new Type\FileType($storage); } - $this->addType(new Type\HiddenType()); - $this->addType(new Type\IntegerType()); - $this->addType(new Type\LanguageType()); - $this->addType(new Type\LocaleType()); - $this->addType(new Type\MoneyType()); - $this->addType(new Type\NumberType()); - $this->addType(new Type\PasswordType()); - $this->addType(new Type\PercentType()); - $this->addType(new Type\RadioType()); - $this->addType(new Type\RepeatedType()); - $this->addType(new Type\TextareaType()); - $this->addType(new Type\TextType()); - $this->addType(new Type\TimeType()); - $this->addType(new Type\TimezoneType()); - $this->addType(new Type\UrlType()); - } - private function addType(FormTypeInterface $type) - { - $this->types[$type->getName()] = $type; - } - - public function getType($name) - { - return $this->types[$name]; - } - - public function hasType($name) - { - return isset($this->types[$name]); + parent::__construct($types); } }