From 54e66c518ff9c2705b3a04200bd12cfc8d207a62 Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Fri, 22 Apr 2011 17:41:21 +0200 Subject: [PATCH] [Form] Reorganized code into "form extensions" The extension classes are now the only constructor argument of the FormFactory class. They replace the existing "type loader" classes. new FormFactory(array( new CoreExtension($validator, $storage), new CsrfExtension($csrfProvider), new DoctrineOrmExtension($em), )); Together with a few upcoming commits this mechanism will make * extension of the form framework in bundles and * usage of the forms outside of Symfony2 much easier. --- .../Form/ChoiceList/EntityChoiceList.php | 2 +- .../EntitiesToArrayTransformer.php | 4 +- .../DataTransformer/EntityToIdTransformer.php | 4 +- .../Doctrine/Form/DoctrineOrmExtension.php | 41 +++++++ ...Guesser.php => DoctrineOrmTypeGuesser.php} | 26 ++--- .../Doctrine/Form/DoctrineTypeLoader.php | 38 ------- .../Doctrine/Form/{ => Type}/EntityType.php | 4 +- .../DoctrineBundle/Resources/config/orm.xml | 8 +- .../Compiler/AddFormGuessersPass.php | 40 ------- .../{AddFormTypesPass.php => FormPass.php} | 22 ++-- .../Form/ContainerAwareTypeLoader.php | 25 ---- .../FrameworkBundle/FrameworkBundle.php | 6 +- .../FrameworkBundle/Resources/config/form.xml | 101 +++++++++-------- .../Component/Form/AbstractExtension.php | 107 ++++++++++++++++++ .../Form/{Type => }/AbstractType.php | 7 +- .../CallbackTransformer.php | 2 +- .../{Validator => }/CallbackValidator.php | 4 +- .../{DataMapper => }/DataMapperInterface.php | 4 +- .../DataTransformerInterface.php | 2 +- .../TransformationFailedException.php | 2 +- .../Core}/ChoiceList/ArrayChoiceList.php | 4 +- .../Core}/ChoiceList/ChoiceListInterface.php | 2 +- .../Core}/ChoiceList/MonthChoiceList.php | 2 +- .../Core}/ChoiceList/PaddedChoiceList.php | 2 +- .../Core}/ChoiceList/TimezoneChoiceList.php | 2 +- .../Core/CoreExtension.php} | 43 +++---- .../Core/CoreTypeGuesser.php} | 25 ++-- .../Core}/DataMapper/PropertyPathMapper.php | 3 +- .../ArrayToBooleanChoicesTransformer.php | 6 +- .../ArrayToChoicesTransformer.php | 4 +- .../ArrayToPartsTransformer.php | 4 +- .../BaseDateTimeTransformer.php | 4 +- .../BooleanToStringTransformer.php | 4 +- .../DataTransformer/DataTransformerChain.php | 4 +- .../DateTimeToArrayTransformer.php | 3 +- .../DateTimeToLocalizedStringTransformer.php | 3 +- .../DateTimeToStringTransformer.php | 3 +- .../DateTimeToTimestampTransformer.php | 3 +- .../FileToArrayTransformer.php | 5 +- .../FileToStringTransformer.php | 5 +- .../IntegerToLocalizedStringTransformer.php | 4 +- .../MoneyToLocalizedStringTransformer.php | 2 +- .../NumberToLocalizedStringTransformer.php | 4 +- .../PercentToLocalizedStringTransformer.php | 4 +- .../ScalarToBooleanChoicesTransformer.php | 6 +- .../ScalarToChoiceTransformer.php | 3 +- .../ValueToDuplicatesTransformer.php | 4 +- .../EventListener/FixFileUploadListener.php | 2 +- .../EventListener/FixRadioInputListener.php | 2 +- .../EventListener/FixUrlProtocolListener.php | 2 +- .../EventListener/ResizeFormListener.php | 2 +- .../Core}/EventListener/TrimListener.php | 2 +- .../Core}/Type/BirthdayType.php | 3 +- .../Core}/Type/CheckboxType.php | 5 +- .../{ => Extension/Core}/Type/ChoiceType.php | 19 ++-- .../Core}/Type/CollectionType.php | 5 +- .../{ => Extension/Core}/Type/CountryType.php | 3 +- .../Core}/Type/DateTimeType.php | 15 +-- .../{ => Extension/Core}/Type/DateType.php | 17 +-- .../{ => Extension/Core}/Type/EmailType.php | 3 +- .../{ => Extension/Core}/Type/FieldType.php | 9 +- .../{ => Extension/Core}/Type/FileType.php | 13 ++- .../{ => Extension/Core}/Type/FormType.php | 7 +- .../{ => Extension/Core}/Type/HiddenType.php | 3 +- .../{ => Extension/Core}/Type/IntegerType.php | 5 +- .../Core}/Type/LanguageType.php | 3 +- .../{ => Extension/Core}/Type/LocaleType.php | 3 +- .../{ => Extension/Core}/Type/MoneyType.php | 5 +- .../{ => Extension/Core}/Type/NumberType.php | 5 +- .../Core}/Type/PasswordType.php | 3 +- .../{ => Extension/Core}/Type/PercentType.php | 5 +- .../{ => Extension/Core}/Type/RadioType.php | 5 +- .../Core}/Type/RepeatedType.php | 5 +- .../{ => Extension/Core}/Type/TextType.php | 3 +- .../Core}/Type/TextareaType.php | 3 +- .../{ => Extension/Core}/Type/TimeType.php | 13 ++- .../Core}/Type/TimezoneType.php | 5 +- .../{ => Extension/Core}/Type/UrlType.php | 5 +- .../Core}/Validator/DefaultValidator.php | 3 +- .../Core}/Validator/DelegatingValidator.php | 3 +- .../Form/Extension/Csrf/CsrfExtension.php | 37 ++++++ .../CsrfProvider/CsrfProviderInterface.php | 2 +- .../CsrfProvider/DefaultCsrfProvider.php | 2 +- .../CsrfProvider/SessionCsrfProvider.php | 2 +- .../{ => Extension/Csrf}/Type/CsrfType.php | 27 ++--- .../DependencyInjectionExtension.php | 69 +++++++++++ src/Symfony/Component/Form/Form.php | 17 +-- src/Symfony/Component/Form/FormBuilder.php | 6 +- ...terface.php => FormExtensionInterface.php} | 10 +- src/Symfony/Component/Form/FormFactory.php | 95 +++++++--------- .../Component/Form/FormTypeGuesserChain.php | 76 +++++++++++++ ...rface.php => FormTypeGuesserInterface.php} | 13 +-- .../Form/{Type => }/FormTypeInterface.php | 7 +- .../FormValidatorInterface.php | 4 +- src/Symfony/Component/Form/FormView.php | 1 - .../Form/{Type/Guesser => Guess}/Guess.php | 2 +- .../{Type/Guesser => Guess}/TypeGuess.php | 2 +- .../{Type/Guesser => Guess}/ValueGuess.php | 2 +- .../Form/Resources/config/validation.xml | 2 +- .../ReversedTransformer.php | 2 +- .../Form/Type/Loader/ArrayTypeLoader.php | 41 ------- .../Form/Type/Loader/TypeLoaderChain.php | 44 ------- ...namePasswordFormAuthenticationListener.php | 2 +- src/Symfony/Component/Validator/Validator.php | 8 ++ .../Validator/ValidatorInterface.php | 7 ++ .../Doctrine/Form/DoctrineOrmTestCase.php | 7 +- .../Form/{ => Type}/EntityTypeTest.php | 29 +++-- .../Component/Form/AbstractExtensionTest.php | 68 +++++++++++ .../Component/Form/AbstractLayoutTest.php | 12 +- .../Form/{Type => }/AbstractTypeTest.php | 6 +- .../Core}/ChoiceList/ArrayChoiceListTest.php | 4 +- .../Core}/ChoiceList/MonthChoiceListTest.php | 4 +- .../DataMapper/PropertyPathMapperTest.php | 4 +- .../ArrayToChoicesTransformerTest.php | 4 +- .../ArrayToPartsTransformerTest.php | 6 +- .../BooleanToStringTransformerTest.php | 4 +- .../DataTransformerChainTest.php | 12 +- .../DataTransformer/DateTimeTestCase.php | 2 +- .../DateTimeToArrayTransformerTest.php | 28 ++--- ...teTimeToLocalizedStringTransformerTest.php | 8 +- .../DateTimeToStringTransformerTest.php | 4 +- .../DateTimeToTimestampTransformerTest.php | 4 +- .../DataTransformer/LocalizedTestCase.php | 2 +- .../MoneyToLocalizedStringTransformerTest.php | 4 +- ...NumberToLocalizedStringTransformerTest.php | 6 +- ...ercentToLocalizedStringTransformerTest.php | 4 +- .../ScalarToChoiceTransformerTest.php | 4 +- .../ValueToDuplicatesTransformerTest.php | 8 +- .../FixUrlProtocolListenerTest.php | 4 +- .../EventListener/ResizeFormListenerTest.php | 4 +- .../Core}/EventListener/TrimListenerTest.php | 4 +- .../Core}/Type/CheckboxTypeTest.php | 6 +- .../Core}/Type/ChoiceTypeTest.php | 6 +- .../Core}/Type/CollectionTypeTest.php | 6 +- .../Core}/Type/CountryTypeTest.php | 6 +- .../Core}/Type/DateTimeTypeTest.php | 2 +- .../Core}/Type/DateTypeTest.php | 2 +- .../Core}/Type/FieldTypeTest.php | 16 +-- .../Core}/Type/FileTypeTest.php | 6 +- .../Core}/Type/FormTypeTest.php | 10 +- .../Core}/Type/IntegerTypeTest.php | 2 +- .../Core}/Type/LanguageTypeTest.php | 6 +- .../Core}/Type/LocaleTypeTest.php | 6 +- .../Core}/Type/LocalizedTestCase.php | 6 +- .../Core}/Type/MoneyTypeTest.php | 2 +- .../Core}/Type/PasswordTypeTest.php | 6 +- .../Core}/Type/RadioTypeTest.php | 6 +- .../Core}/Type/RepeatedTypeTest.php | 6 +- .../Core}/Type/TimeTypeTest.php | 2 +- .../Core}/Type/TimezoneTypeTest.php | 6 +- .../Core/Type/TypeTestCase.php} | 29 ++--- .../{ => Extension/Core}/Type/UrlTypeTest.php | 2 +- .../Validator/DelegatingValidatorTest.php | 8 +- .../CsrfProvider/DefaultCsrfProviderTest.php | 4 +- .../CsrfProvider/SessionCsrfProviderTest.php | 4 +- .../Csrf}/Type/CsrfTypeTest.php | 8 +- .../Form/Fixtures/FixedDataTransformer.php | 2 +- .../Tests/Component/Form/FormBuilderTest.php | 8 +- .../Tests/Component/Form/FormFactoryTest.php | 65 ++++++----- .../Symfony/Tests/Component/Form/FormTest.php | 12 +- .../{Type/Guesser => Guess}/GuessTest.php | 4 +- .../Form/Type/Loader/ArrayTypeLoaderTest.php | 43 ------- 162 files changed, 999 insertions(+), 817 deletions(-) create mode 100644 src/Symfony/Bridge/Doctrine/Form/DoctrineOrmExtension.php rename src/Symfony/Bridge/Doctrine/Form/{Type/Guesser/EntityTypeGuesser.php => DoctrineOrmTypeGuesser.php} (89%) delete mode 100644 src/Symfony/Bridge/Doctrine/Form/DoctrineTypeLoader.php rename src/Symfony/Bridge/Doctrine/Form/{ => Type}/EntityType.php (96%) delete mode 100644 src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormGuessersPass.php rename src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/{AddFormTypesPass.php => FormPass.php} (56%) create mode 100644 src/Symfony/Component/Form/AbstractExtension.php rename src/Symfony/Component/Form/{Type => }/AbstractType.php (83%) rename src/Symfony/Component/Form/{DataTransformer => }/CallbackTransformer.php (93%) rename src/Symfony/Component/Form/{Validator => }/CallbackValidator.php (86%) rename src/Symfony/Component/Form/{DataMapper => }/DataMapperInterface.php (85%) rename src/Symfony/Component/Form/{DataTransformer => }/DataTransformerInterface.php (98%) rename src/Symfony/Component/Form/{DataTransformer => Exception}/TransformationFailedException.php (89%) rename src/Symfony/Component/Form/{ => Extension/Core}/ChoiceList/ArrayChoiceList.php (88%) rename src/Symfony/Component/Form/{ => Extension/Core}/ChoiceList/ChoiceListInterface.php (83%) rename src/Symfony/Component/Form/{ => Extension/Core}/ChoiceList/MonthChoiceList.php (96%) rename src/Symfony/Component/Form/{ => Extension/Core}/ChoiceList/PaddedChoiceList.php (95%) rename src/Symfony/Component/Form/{ => Extension/Core}/ChoiceList/TimezoneChoiceList.php (96%) rename src/Symfony/Component/Form/{Type/Loader/DefaultTypeLoader.php => Extension/Core/CoreExtension.php} (63%) rename src/Symfony/Component/Form/{Type/Guesser/ValidatorTypeGuesser.php => Extension/Core/CoreTypeGuesser.php} (95%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataMapper/PropertyPathMapper.php (96%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/ArrayToBooleanChoicesTransformer.php (90%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/ArrayToChoicesTransformer.php (83%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/ArrayToPartsTransformer.php (92%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/BaseDateTimeTransformer.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/BooleanToStringTransformer.php (88%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/DataTransformerChain.php (94%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToArrayTransformer.php (97%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToLocalizedStringTransformer.php (96%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToStringTransformer.php (94%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToTimestampTransformer.php (93%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/FileToArrayTransformer.php (89%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/FileToStringTransformer.php (85%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/IntegerToLocalizedStringTransformer.php (85%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/MoneyToLocalizedStringTransformer.php (96%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/NumberToLocalizedStringTransformer.php (94%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/PercentToLocalizedStringTransformer.php (94%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/ScalarToBooleanChoicesTransformer.php (90%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/ScalarToChoiceTransformer.php (82%) rename src/Symfony/Component/Form/{ => Extension/Core}/DataTransformer/ValueToDuplicatesTransformer.php (90%) rename src/Symfony/Component/Form/{ => Extension/Core}/EventListener/FixFileUploadListener.php (97%) rename src/Symfony/Component/Form/{ => Extension/Core}/EventListener/FixRadioInputListener.php (93%) rename src/Symfony/Component/Form/{ => Extension/Core}/EventListener/FixUrlProtocolListener.php (94%) rename src/Symfony/Component/Form/{ => Extension/Core}/EventListener/ResizeFormListener.php (98%) rename src/Symfony/Component/Form/{ => Extension/Core}/EventListener/TrimListener.php (93%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/BirthdayType.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/CheckboxType.php (85%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/ChoiceType.php (85%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/CollectionType.php (86%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/CountryType.php (88%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/DateTimeType.php (86%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/DateType.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/EmailType.php (84%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/FieldType.php (94%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/FileType.php (78%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/FormType.php (89%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/HiddenType.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/IntegerType.php (85%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/LanguageType.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/LocaleType.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/MoneyType.php (93%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/NumberType.php (84%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/PasswordType.php (91%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/PercentType.php (81%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/RadioType.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/RepeatedType.php (86%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/TextType.php (85%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/TextareaType.php (83%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/TimeType.php (87%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/TimezoneType.php (79%) rename src/Symfony/Component/Form/{ => Extension/Core}/Type/UrlType.php (81%) rename src/Symfony/Component/Form/{ => Extension/Core}/Validator/DefaultValidator.php (92%) rename src/Symfony/Component/Form/{ => Extension/Core}/Validator/DelegatingValidator.php (98%) create mode 100644 src/Symfony/Component/Form/Extension/Csrf/CsrfExtension.php rename src/Symfony/Component/Form/{ => Extension/Csrf}/CsrfProvider/CsrfProviderInterface.php (96%) rename src/Symfony/Component/Form/{ => Extension/Csrf}/CsrfProvider/DefaultCsrfProvider.php (96%) rename src/Symfony/Component/Form/{ => Extension/Csrf}/CsrfProvider/SessionCsrfProvider.php (95%) rename src/Symfony/Component/Form/{ => Extension/Csrf}/Type/CsrfType.php (59%) create mode 100644 src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php rename src/Symfony/Component/Form/{Type/Loader/TypeLoaderInterface.php => FormExtensionInterface.php} (63%) create mode 100644 src/Symfony/Component/Form/FormTypeGuesserChain.php rename src/Symfony/Component/Form/{Type/Guesser/TypeGuesserInterface.php => FormTypeGuesserInterface.php} (81%) rename src/Symfony/Component/Form/{Type => }/FormTypeInterface.php (76%) rename src/Symfony/Component/Form/{Validator => }/FormValidatorInterface.php (79%) rename src/Symfony/Component/Form/{Type/Guesser => Guess}/Guess.php (98%) rename src/Symfony/Component/Form/{Type/Guesser => Guess}/TypeGuess.php (96%) rename src/Symfony/Component/Form/{Type/Guesser => Guess}/ValueGuess.php (95%) rename src/Symfony/Component/Form/{DataTransformer => }/ReversedTransformer.php (96%) delete mode 100644 src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php delete mode 100644 src/Symfony/Component/Form/Type/Loader/TypeLoaderChain.php rename tests/Symfony/Tests/Bridge/Doctrine/Form/{ => Type}/EntityTypeTest.php (95%) create mode 100644 tests/Symfony/Tests/Component/Form/AbstractExtensionTest.php rename tests/Symfony/Tests/Component/Form/{Type => }/AbstractTypeTest.php (84%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/ChoiceList/ArrayChoiceListTest.php (90%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/ChoiceList/MonthChoiceListTest.php (94%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataMapper/PropertyPathMapperTest.php (93%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/ArrayToChoicesTransformerTest.php (91%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/ArrayToPartsTransformerTest.php (93%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/BooleanToStringTransformerTest.php (90%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/DataTransformerChainTest.php (86%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeTestCase.php (87%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToArrayTransformerTest.php (90%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToLocalizedStringTransformerTest.php (95%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToStringTransformerTest.php (95%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/DateTimeToTimestampTransformerTest.php (95%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/LocalizedTestCase.php (87%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/MoneyToLocalizedStringTransformerTest.php (91%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/NumberToLocalizedStringTransformerTest.php (94%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/PercentToLocalizedStringTransformerTest.php (95%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/ScalarToChoiceTransformerTest.php (89%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/DataTransformer/ValueToDuplicatesTransformerTest.php (87%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/EventListener/FixUrlProtocolListenerTest.php (91%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/EventListener/ResizeFormListenerTest.php (98%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/EventListener/TrimListenerTest.php (88%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/CheckboxTypeTest.php (88%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/ChoiceTypeTest.php (98%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/CollectionTypeTest.php (97%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/CountryTypeTest.php (91%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/DateTimeTypeTest.php (98%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/DateTypeTest.php (99%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/FieldTypeTest.php (92%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/FileTypeTest.php (97%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/FormTypeTest.php (96%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/IntegerTypeTest.php (91%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/LanguageTypeTest.php (91%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/LocaleTypeTest.php (88%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/LocalizedTestCase.php (73%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/MoneyTypeTest.php (90%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/PasswordTypeTest.php (89%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/RadioTypeTest.php (91%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/RepeatedTypeTest.php (93%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/TimeTypeTest.php (99%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/TimezoneTypeTest.php (87%) rename tests/Symfony/Tests/Component/Form/{Type/TestCase.php => Extension/Core/Type/TypeTestCase.php} (65%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Type/UrlTypeTest.php (96%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Core}/Validator/DelegatingValidatorTest.php (98%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Csrf}/CsrfProvider/DefaultCsrfProviderTest.php (88%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Csrf}/CsrfProvider/SessionCsrfProviderTest.php (92%) rename tests/Symfony/Tests/Component/Form/{ => Extension/Csrf}/Type/CsrfTypeTest.php (93%) rename tests/Symfony/Tests/Component/Form/{Type/Guesser => Guess}/GuessTest.php (89%) delete mode 100644 tests/Symfony/Tests/Component/Form/Type/Loader/ArrayTypeLoaderTest.php diff --git a/src/Symfony/Bridge/Doctrine/Form/ChoiceList/EntityChoiceList.php b/src/Symfony/Bridge/Doctrine/Form/ChoiceList/EntityChoiceList.php index b14461844865..0d90ac59cfdb 100644 --- a/src/Symfony/Bridge/Doctrine/Form/ChoiceList/EntityChoiceList.php +++ b/src/Symfony/Bridge/Doctrine/Form/ChoiceList/EntityChoiceList.php @@ -14,7 +14,7 @@ use Symfony\Component\Form\Util\PropertyPath; use Symfony\Component\Form\Exception\FormException; use Symfony\Component\Form\Exception\UnexpectedTypeException; -use Symfony\Component\Form\ChoiceList\ArrayChoiceList; +use Symfony\Component\Form\Extension\Core\ChoiceList\ArrayChoiceList; use Doctrine\ORM\EntityManager; use Doctrine\ORM\QueryBuilder; use Doctrine\ORM\NoResultException; diff --git a/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntitiesToArrayTransformer.php b/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntitiesToArrayTransformer.php index d6d3a13f3045..73741861f8d0 100644 --- a/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntitiesToArrayTransformer.php +++ b/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntitiesToArrayTransformer.php @@ -13,8 +13,8 @@ use Symfony\Bridge\Doctrine\Form\ChoiceList\EntityChoiceList; use Symfony\Component\Form\Exception\UnexpectedTypeException; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; -use Symfony\Component\Form\DataTransformer\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; +use Symfony\Component\Form\DataTransformerInterface; use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\ArrayCollection; diff --git a/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntityToIdTransformer.php b/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntityToIdTransformer.php index afc47a77d0f2..6787655c399f 100644 --- a/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntityToIdTransformer.php +++ b/src/Symfony/Bridge/Doctrine/Form/DataTransformer/EntityToIdTransformer.php @@ -12,9 +12,9 @@ namespace Symfony\Bridge\Doctrine\Form\DataTransformer; use Symfony\Bridge\Doctrine\Form\ChoiceList\EntityChoiceList; +use Symfony\Component\Form\DataTransformerInterface; use Symfony\Component\Form\Exception\UnexpectedTypeException; -use Symfony\Component\Form\DataTransformer\DataTransformerInterface; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; +use Symfony\Component\Form\Exception\TransformationFailedException; class EntityToIdTransformer implements DataTransformerInterface { diff --git a/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmExtension.php b/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmExtension.php new file mode 100644 index 000000000000..dc61fd485c52 --- /dev/null +++ b/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmExtension.php @@ -0,0 +1,41 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\Doctrine\Form; + +use Symfony\Component\Form\AbstractExtension; +use Doctrine\ORM\EntityManager; + +class DoctrineOrmExtension extends AbstractExtension +{ + /** + * The Doctrine 2 entity manager + * @var Doctrine\ORM\EntityManager + */ + protected $em = null; + + public function __construct(EntityManager $em) + { + $this->em = $em; + } + + protected function loadTypes() + { + return array( + new Type\EntityType($this->em), + ); + } + + protected function loadTypeGuesser() + { + return new DoctrineOrmTypeGuesser($this->em); + } +} diff --git a/src/Symfony/Bridge/Doctrine/Form/Type/Guesser/EntityTypeGuesser.php b/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php similarity index 89% rename from src/Symfony/Bridge/Doctrine/Form/Type/Guesser/EntityTypeGuesser.php rename to src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php index 8cc043e861c9..0084876e9b51 100644 --- a/src/Symfony/Bridge/Doctrine/Form/Type/Guesser/EntityTypeGuesser.php +++ b/src/Symfony/Bridge/Doctrine/Form/DoctrineOrmTypeGuesser.php @@ -3,26 +3,21 @@ /* * This file is part of the Symfony package. * - * (c) Fabien Potencier + * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace Symfony\Bridge\Doctrine\Form\Type\Guesser; +namespace Symfony\Bridge\Doctrine\Form; +use Symfony\Component\Form\FormTypeGuesserInterface; +use Symfony\Component\Form\Guess\Guess; +use Symfony\Component\Form\Guess\TypeGuess; +use Symfony\Component\Form\Guess\ValueGuess; use Doctrine\ORM\EntityManager; -use Symfony\Component\Form\Type\Guesser\Guess; -use Symfony\Component\Form\Type\Guesser\TypeGuesserInterface; -use Symfony\Component\Form\Type\Guesser\TypeGuess; -use Symfony\Component\Form\Type\Guesser\ValueGuess; -/** - * Guesses form fields from the metadata of Doctrine 2 - * - * @author Bernhard Schussek - */ -class EntityTypeGuesser implements TypeGuesserInterface +class DoctrineOrmTypeGuesser implements FormTypeGuesserInterface { /** * The Doctrine 2 entity manager @@ -30,11 +25,6 @@ class EntityTypeGuesser implements TypeGuesserInterface */ protected $em = null; - /** - * Constructor - * - * @param ClassMetadataFactoryInterface $metadataFactory - */ public function __construct(EntityManager $em) { $this->em = $em; @@ -190,4 +180,4 @@ public function guessMaxLength($class, $property) } } } -} \ No newline at end of file +} diff --git a/src/Symfony/Bridge/Doctrine/Form/DoctrineTypeLoader.php b/src/Symfony/Bridge/Doctrine/Form/DoctrineTypeLoader.php deleted file mode 100644 index 0c0c0d5c1cf7..000000000000 --- a/src/Symfony/Bridge/Doctrine/Form/DoctrineTypeLoader.php +++ /dev/null @@ -1,38 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Bridge\Doctrine\Form; - -use Symfony\Component\Form\Type\Loader\TypeLoaderInterface; -use Doctrine\ORM\EntityManager; - -class DoctrineTypeLoader implements TypeLoaderInterface -{ - private $types; - - public function __construct(EntityManager $em) - { - $this->types['entity'] = new EntityType($em); - } - - public function getType($name) - { - return $this->types[$name]; - } - - public function hasType($name) - { - return isset($this->types[$name]); - } -} - - - diff --git a/src/Symfony/Bridge/Doctrine/Form/EntityType.php b/src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php similarity index 96% rename from src/Symfony/Bridge/Doctrine/Form/EntityType.php rename to src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php index e8d5a02ad177..f08388853a55 100644 --- a/src/Symfony/Bridge/Doctrine/Form/EntityType.php +++ b/src/Symfony/Bridge/Doctrine/Form/Type/EntityType.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Bridge\Doctrine\Form; +namespace Symfony\Bridge\Doctrine\Form\Type; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormFactoryInterface; @@ -17,7 +17,7 @@ use Symfony\Bridge\Doctrine\Form\EventListener\MergeCollectionListener; use Symfony\Bridge\Doctrine\Form\DataTransformer\EntitiesToArrayTransformer; use Symfony\Bridge\Doctrine\Form\DataTransformer\EntityToIdTransformer; -use Symfony\Component\Form\Type\AbstractType; +use Symfony\Component\Form\AbstractType; use Doctrine\ORM\EntityManager; class EntityType extends AbstractType diff --git a/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml b/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml index 3145428c2b50..1808ffe241fc 100644 --- a/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml +++ b/src/Symfony/Bundle/DoctrineBundle/Resources/config/orm.xml @@ -38,7 +38,7 @@ Symfony\Bundle\DoctrineBundle\CacheWarmer\ProxyCacheWarmer - Symfony\Bridge\Doctrine\Form\Type\Guesser\EntityTypeGuesser + Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser @@ -55,12 +55,12 @@ - - + + - + diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormGuessersPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormGuessersPass.php deleted file mode 100644 index 3795eb13d166..000000000000 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormGuessersPass.php +++ /dev/null @@ -1,40 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; -use Symfony\Component\DependencyInjection\Reference; - -/** - * Adds all services with the tag "form.guesser" as constructor argument of the - * "form.factory" service - * - * @author Bernhard Schussek - */ -class AddFormGuessersPass implements CompilerPassInterface -{ - public function process(ContainerBuilder $container) - { - if (!$container->hasDefinition('form.factory')) { - return; - } - - $guessers = array(); - - foreach ($container->findTaggedServiceIds('form.guesser') as $serviceId => $tag) { - $guessers[] = new Reference($serviceId); - } - - $container->getDefinition('form.factory')->replaceArgument(1, $guessers); - } -} diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormTypesPass.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/FormPass.php similarity index 56% rename from src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormTypesPass.php rename to src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/FormPass.php index 43e0a5d8b4f1..60fbf9fdebde 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/AddFormTypesPass.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/Compiler/FormPass.php @@ -15,32 +15,36 @@ use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; /** - * Adds all services with the tag "form.type" as argument - * to the "form.type.loader" service + * Adds all services with the tags "form.type" and "form.type_guesser" as + * arguments of the "form.extension" service * * @author Bernhard Schussek */ -class AddFormTypesPass implements CompilerPassInterface +class FormPass implements CompilerPassInterface { public function process(ContainerBuilder $container) { - if (!$container->hasDefinition('form.type.loader')) { + if (!$container->hasDefinition('form.extension')) { return; } // Builds an array with service IDs as keys and tag aliases as values $types = array(); - $tags = $container->findTaggedServiceIds('form.type'); - foreach ($tags as $serviceId => $arguments) { - $alias = isset($arguments[0]['alias']) - ? $arguments[0]['alias'] + foreach ($container->findTaggedServiceIds('form.type') as $serviceId => $tag) { + $alias = isset($tag[0]['alias']) + ? $tag[0]['alias'] : $serviceId; // Flip, because we want tag aliases (= type identifiers) as keys $types[$alias] = $serviceId; } - $container->getDefinition('form.type.loader')->replaceArgument(1, $types); + $container->getDefinition('form.extension')->replaceArgument(1, $types); + + // Find all services annotated with "form.type_guesser" + $guessers = array_keys($container->findTaggedServiceIds('form.type_guesser')); + + $container->getDefinition('form.extension')->replaceArgument(2, $guessers); } } \ No newline at end of file diff --git a/src/Symfony/Bundle/FrameworkBundle/Form/ContainerAwareTypeLoader.php b/src/Symfony/Bundle/FrameworkBundle/Form/ContainerAwareTypeLoader.php index 03369a6fca97..409c37b9b61d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Form/ContainerAwareTypeLoader.php +++ b/src/Symfony/Bundle/FrameworkBundle/Form/ContainerAwareTypeLoader.php @@ -11,32 +11,7 @@ namespace Symfony\Bundle\FrameworkBundle\Form; -use Symfony\Component\Form\Type\Loader\TypeLoaderInterface; -use Symfony\Component\DependencyInjection\ContainerInterface; class ContainerAwareTypeLoader implements TypeLoaderInterface { - private $container; - - private $serviceIds; - - public function __construct(ContainerInterface $container, array $serviceIds) - { - $this->container = $container; - $this->serviceIds = $serviceIds; - } - - public function getType($identifier) - { - if (!isset($this->serviceIds[$identifier])) { - throw new \InvalidArgumentException(sprintf('The field type "%s" is not registered with the service container.', $identifier)); - } - - return $this->container->get($this->serviceIds[$identifier]); - } - - public function hasType($identifier) - { - return isset($this->serviceIds[$identifier]); - } } \ No newline at end of file diff --git a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php index 593b74f8df1c..9abbb5ec0f18 100644 --- a/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php +++ b/src/Symfony/Bundle/FrameworkBundle/FrameworkBundle.php @@ -12,8 +12,7 @@ namespace Symfony\Bundle\FrameworkBundle; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConstraintValidatorsPass; -use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddFormTypesPass; -use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddFormGuessersPass; +use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\FormPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\TemplatingPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\RegisterKernelListenersPass; use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\RoutingResolverPass; @@ -78,8 +77,7 @@ public function build(ContainerBuilder $container) $container->addCompilerPass(new RegisterKernelListenersPass()); $container->addCompilerPass(new TemplatingPass()); $container->addCompilerPass(new AddConstraintValidatorsPass()); - $container->addCompilerPass(new AddFormTypesPass()); - $container->addCompilerPass(new AddFormGuessersPass()); + $container->addCompilerPass(new FormPass()); $container->addCompilerPass(new AddClassesToCachePass()); $container->addCompilerPass(new AddClassesToAutoloadMapPass()); $container->addCompilerPass(new TranslatorPass()); diff --git a/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml b/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml index e3d7474d5806..fd4d1fd2ee55 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml +++ b/src/Symfony/Bundle/FrameworkBundle/Resources/config/form.xml @@ -5,10 +5,10 @@ xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd"> + Symfony\Component\Form\Extension\DependencyInjection\DependencyInjectionExtension Symfony\Component\Form\FormFactory - Symfony\Bundle\FrameworkBundle\Form\ContainerAwareTypeLoader - Symfony\Component\Form\Type\Guesser\ValidatorTypeGuesser - Symfony\Component\Form\CsrfProvider\SessionCsrfProvider + Symfony\Component\Form\Extension\Core\CoreTypeGuesser + Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider true _token secret @@ -23,17 +23,34 @@ - + + + + + + + + + + + - + - - + + @@ -50,100 +67,90 @@ %file.temporary_storage.nesting_levels% %file.temporary_storage.directory% - - - - - - - - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/src/Symfony/Component/Form/AbstractExtension.php b/src/Symfony/Component/Form/AbstractExtension.php new file mode 100644 index 000000000000..358b69008492 --- /dev/null +++ b/src/Symfony/Component/Form/AbstractExtension.php @@ -0,0 +1,107 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Form; + +use Symfony\Component\Form\Exception\FormException; +use Symfony\Component\Form\Exception\UnexpectedTypeException; + +/** + * @author Bernhard Schussek + */ +abstract class AbstractExtension implements FormExtensionInterface +{ + /** + * @var array + */ + private $types; + + /** + * @var Boolean + */ + private $typesLoaded = false; + + /** + * @var FormTypeGuesserInterface + */ + private $typeGuesser; + + /** + * @var Boolean + */ + private $typeGuesserLoaded = false; + + abstract protected function loadTypes(); + + abstract protected function loadTypeGuesser(); + + private function initTypes() + { + $this->typesLoaded = true; + + $types = $this->loadTypes(); + $typesByName = array(); + + foreach ($types as $type) { + if (!$type instanceof FormTypeInterface) { + throw new UnexpectedTypeException($type, 'Symfony\Component\Form\FormTypeInterface'); + } + + $typesByName[$type->getName()] = $type; + } + + $this->types = $typesByName; + } + + private function initTypeGuesser() + { + $this->typeGuesserLoaded = true; + + $guesser = $this->loadTypeGuesser(); + + if (!$guesser instanceof FormTypeGuesserInterface) { + throw new UnexpectedTypeException($type, 'Symfony\Component\Form\FormTypeGuesserInterface'); + } + + $this->guesser = $guesser; + } + + public function getType($name) + { + if (!$this->typesLoaded) { + $this->initTypes(); + } + + if (!isset($this->types[$name])) { + throw new FormException(sprintf('The type "%s" can not be typesLoaded by this extension', $name)); + } + + return $this->types[$name]; + } + + public function hasType($name) + { + if (!$this->typesLoaded) { + $this->initTypes(); + } + + return isset($this->types[$name]); + } + + public function getTypeGuesser() + { + if (!$this->typeGuesserLoaded) { + $this->initTypeGuesser(); + } + + return $this->typeGuesser; + } +} diff --git a/src/Symfony/Component/Form/Type/AbstractType.php b/src/Symfony/Component/Form/AbstractType.php similarity index 83% rename from src/Symfony/Component/Form/Type/AbstractType.php rename to src/Symfony/Component/Form/AbstractType.php index 894414a1d5d5..7d3de6ee15b5 100644 --- a/src/Symfony/Component/Form/Type/AbstractType.php +++ b/src/Symfony/Component/Form/AbstractType.php @@ -9,12 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; - -use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\FormInterface; -use Symfony\Component\Form\FormFactoryInterface; -use Symfony\Component\Form\FormView; +namespace Symfony\Component\Form; abstract class AbstractType implements FormTypeInterface { diff --git a/src/Symfony/Component/Form/DataTransformer/CallbackTransformer.php b/src/Symfony/Component/Form/CallbackTransformer.php similarity index 93% rename from src/Symfony/Component/Form/DataTransformer/CallbackTransformer.php rename to src/Symfony/Component/Form/CallbackTransformer.php index 905a1084ed5e..339f93498fd3 100644 --- a/src/Symfony/Component/Form/DataTransformer/CallbackTransformer.php +++ b/src/Symfony/Component/Form/CallbackTransformer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form; class CallbackTransformer implements DataTransformerInterface { diff --git a/src/Symfony/Component/Form/Validator/CallbackValidator.php b/src/Symfony/Component/Form/CallbackValidator.php similarity index 86% rename from src/Symfony/Component/Form/Validator/CallbackValidator.php rename to src/Symfony/Component/Form/CallbackValidator.php index 57efac9794d8..98f707a37e0d 100644 --- a/src/Symfony/Component/Form/Validator/CallbackValidator.php +++ b/src/Symfony/Component/Form/CallbackValidator.php @@ -9,9 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Validator; - -use Symfony\Component\Form\FormInterface; +namespace Symfony\Component\Form; class CallbackValidator implements FormValidatorInterface { diff --git a/src/Symfony/Component/Form/DataMapper/DataMapperInterface.php b/src/Symfony/Component/Form/DataMapperInterface.php similarity index 85% rename from src/Symfony/Component/Form/DataMapper/DataMapperInterface.php rename to src/Symfony/Component/Form/DataMapperInterface.php index 54ce40f6b1b0..81b374b379e3 100644 --- a/src/Symfony/Component/Form/DataMapper/DataMapperInterface.php +++ b/src/Symfony/Component/Form/DataMapperInterface.php @@ -9,9 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataMapper; - -use Symfony\Component\Form\FormInterface; +namespace Symfony\Component\Form; interface DataMapperInterface { diff --git a/src/Symfony/Component/Form/DataTransformer/DataTransformerInterface.php b/src/Symfony/Component/Form/DataTransformerInterface.php similarity index 98% rename from src/Symfony/Component/Form/DataTransformer/DataTransformerInterface.php rename to src/Symfony/Component/Form/DataTransformerInterface.php index b26d4798757a..307778d059b6 100644 --- a/src/Symfony/Component/Form/DataTransformer/DataTransformerInterface.php +++ b/src/Symfony/Component/Form/DataTransformerInterface.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form; /** * Transforms a value between different representations. diff --git a/src/Symfony/Component/Form/DataTransformer/TransformationFailedException.php b/src/Symfony/Component/Form/Exception/TransformationFailedException.php similarity index 89% rename from src/Symfony/Component/Form/DataTransformer/TransformationFailedException.php rename to src/Symfony/Component/Form/Exception/TransformationFailedException.php index 463ce041a297..710cf2ed73d7 100644 --- a/src/Symfony/Component/Form/DataTransformer/TransformationFailedException.php +++ b/src/Symfony/Component/Form/Exception/TransformationFailedException.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Exception; /** * Indicates a value transformation error. diff --git a/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php b/src/Symfony/Component/Form/Extension/Core/ChoiceList/ArrayChoiceList.php similarity index 88% rename from src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php rename to src/Symfony/Component/Form/Extension/Core/ChoiceList/ArrayChoiceList.php index 827c148283a8..14fbc8f55e58 100644 --- a/src/Symfony/Component/Form/ChoiceList/ArrayChoiceList.php +++ b/src/Symfony/Component/Form/Extension/Core/ChoiceList/ArrayChoiceList.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\ChoiceList; +namespace Symfony\Component\Form\Extension\Core\ChoiceList; use Symfony\Component\Form\Exception\UnexpectedTypeException; @@ -38,7 +38,7 @@ public function getChoices() } /** - * @see Symfony\Component\Form\ChoiceList\ChoiceListInterface::getChoices + * @see Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface::getChoices */ protected function load() { diff --git a/src/Symfony/Component/Form/ChoiceList/ChoiceListInterface.php b/src/Symfony/Component/Form/Extension/Core/ChoiceList/ChoiceListInterface.php similarity index 83% rename from src/Symfony/Component/Form/ChoiceList/ChoiceListInterface.php rename to src/Symfony/Component/Form/Extension/Core/ChoiceList/ChoiceListInterface.php index c817aa36865c..cbb7a3c675a4 100644 --- a/src/Symfony/Component/Form/ChoiceList/ChoiceListInterface.php +++ b/src/Symfony/Component/Form/Extension/Core/ChoiceList/ChoiceListInterface.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\ChoiceList; +namespace Symfony\Component\Form\Extension\Core\ChoiceList; interface ChoiceListInterface { diff --git a/src/Symfony/Component/Form/ChoiceList/MonthChoiceList.php b/src/Symfony/Component/Form/Extension/Core/ChoiceList/MonthChoiceList.php similarity index 96% rename from src/Symfony/Component/Form/ChoiceList/MonthChoiceList.php rename to src/Symfony/Component/Form/Extension/Core/ChoiceList/MonthChoiceList.php index 1b32775517f1..5e7b371a1a9e 100644 --- a/src/Symfony/Component/Form/ChoiceList/MonthChoiceList.php +++ b/src/Symfony/Component/Form/Extension/Core/ChoiceList/MonthChoiceList.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\ChoiceList; +namespace Symfony\Component\Form\Extension\Core\ChoiceList; class MonthChoiceList extends PaddedChoiceList { diff --git a/src/Symfony/Component/Form/ChoiceList/PaddedChoiceList.php b/src/Symfony/Component/Form/Extension/Core/ChoiceList/PaddedChoiceList.php similarity index 95% rename from src/Symfony/Component/Form/ChoiceList/PaddedChoiceList.php rename to src/Symfony/Component/Form/Extension/Core/ChoiceList/PaddedChoiceList.php index 2a8423fb8d34..1b69fded23fc 100644 --- a/src/Symfony/Component/Form/ChoiceList/PaddedChoiceList.php +++ b/src/Symfony/Component/Form/Extension/Core/ChoiceList/PaddedChoiceList.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\ChoiceList; +namespace Symfony\Component\Form\Extension\Core\ChoiceList; class PaddedChoiceList extends ArrayChoiceList { diff --git a/src/Symfony/Component/Form/ChoiceList/TimezoneChoiceList.php b/src/Symfony/Component/Form/Extension/Core/ChoiceList/TimezoneChoiceList.php similarity index 96% rename from src/Symfony/Component/Form/ChoiceList/TimezoneChoiceList.php rename to src/Symfony/Component/Form/Extension/Core/ChoiceList/TimezoneChoiceList.php index 4bb2c0b3576d..3cfbce25d09f 100644 --- a/src/Symfony/Component/Form/ChoiceList/TimezoneChoiceList.php +++ b/src/Symfony/Component/Form/Extension/Core/ChoiceList/TimezoneChoiceList.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\ChoiceList; +namespace Symfony\Component\Form\Extension\Core\ChoiceList; /** * Represents a choice list where each timezone is broken down by continent. diff --git a/src/Symfony/Component/Form/Type/Loader/DefaultTypeLoader.php b/src/Symfony/Component/Form/Extension/Core/CoreExtension.php similarity index 63% rename from src/Symfony/Component/Form/Type/Loader/DefaultTypeLoader.php rename to src/Symfony/Component/Form/Extension/Core/CoreExtension.php index 3eefa694ea3c..05b73a854883 100644 --- a/src/Symfony/Component/Form/Type/Loader/DefaultTypeLoader.php +++ b/src/Symfony/Component/Form/Extension/Core/CoreExtension.php @@ -9,21 +9,31 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type\Loader; +namespace Symfony\Component\Form\Extension\Core; -use Symfony\Component\Form\Type; -use Symfony\Component\Form\CsrfProvider\CsrfProviderInterface; +use Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractExtension; use Symfony\Component\Validator\ValidatorInterface; use Symfony\Component\HttpFoundation\File\TemporaryStorage; -class DefaultTypeLoader extends ArrayTypeLoader +class CoreExtension extends AbstractExtension { - public function __construct( - ValidatorInterface $validator = null, - CsrfProviderInterface $csrfProvider = null, TemporaryStorage $storage = null) + private $validator; + + private $storage; + + private $typeGuesser; + + public function __construct(ValidatorInterface $validator, TemporaryStorage $storage) + { + $this->validator = $validator; + $this->storage = $storage; + } + + protected function loadTypes() { - $types = array( - new Type\FieldType($validator), + return array( + new Type\FieldType($this->validator), new Type\FormType(), new Type\BirthdayType(), new Type\CheckboxType(), @@ -48,17 +58,12 @@ public function __construct( new Type\TimeType(), new Type\TimezoneType(), new Type\UrlType(), + new Type\FileType($this->storage), ); + } - if ($csrfProvider) { - // TODO Move to a Symfony\Bridge\FormSecurity - $types[] = new Type\CsrfType($csrfProvider); - } - - if ($storage) { - $types[] = new Type\FileType($storage); - } - - parent::__construct($types); + public function loadTypeGuesser() + { + return new CoreTypeGuesser($this->validator->getMetadataFactory()); } } diff --git a/src/Symfony/Component/Form/Type/Guesser/ValidatorTypeGuesser.php b/src/Symfony/Component/Form/Extension/Core/CoreTypeGuesser.php similarity index 95% rename from src/Symfony/Component/Form/Type/Guesser/ValidatorTypeGuesser.php rename to src/Symfony/Component/Form/Extension/Core/CoreTypeGuesser.php index 58116003bbc0..6300aae79ee3 100644 --- a/src/Symfony/Component/Form/Type/Guesser/ValidatorTypeGuesser.php +++ b/src/Symfony/Component/Form/Extension/Core/CoreTypeGuesser.php @@ -3,29 +3,24 @@ /* * This file is part of the Symfony package. * - * (c) Fabien Potencier + * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type\Guesser; +namespace Symfony\Component\Form\Extension\Core; -use Symfony\Component\Validator\Constraint; +use Symfony\Component\Form\FormTypeGuesserInterface; +use Symfony\Component\Form\Guess\Guess; +use Symfony\Component\Form\Guess\TypeGuess; +use Symfony\Component\Form\Guess\ValueGuess; use Symfony\Component\Validator\Mapping\ClassMetadataFactoryInterface; -/** - * Guesses form fields from the metadata of the a Validator class - * - * @author Bernhard Schussek - */ -class ValidatorTypeGuesser implements TypeGuesserInterface +class CoreTypeGuesser implements FormTypeGuesserInterface { - /** - * Constructor - * - * @param ClassMetadataFactoryInterface $metadataFactory - */ + private $metadataFactory; + public function __construct(ClassMetadataFactoryInterface $metadataFactory) { $this->metadataFactory = $metadataFactory; @@ -301,4 +296,4 @@ public function guessMaxLengthForConstraint(Constraint $constraint) ); } } -} \ No newline at end of file +} diff --git a/src/Symfony/Component/Form/DataMapper/PropertyPathMapper.php b/src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php similarity index 96% rename from src/Symfony/Component/Form/DataMapper/PropertyPathMapper.php rename to src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php index 4b48d605fec6..247ca009e291 100644 --- a/src/Symfony/Component/Form/DataMapper/PropertyPathMapper.php +++ b/src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php @@ -9,9 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataMapper; +namespace Symfony\Component\Form\Extension\Core\DataMapper; use Symfony\Component\Form\FormInterface; +use Symfony\Component\Form\DataMapperInterface; use Symfony\Component\Form\Util\VirtualFormAwareIterator; use Symfony\Component\Form\Exception\FormException; diff --git a/src/Symfony/Component/Form/DataTransformer/ArrayToBooleanChoicesTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToBooleanChoicesTransformer.php similarity index 90% rename from src/Symfony/Component/Form/DataTransformer/ArrayToBooleanChoicesTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToBooleanChoicesTransformer.php index 620fe3df4d35..695cb3e4e07e 100644 --- a/src/Symfony/Component/Form/DataTransformer/ArrayToBooleanChoicesTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToBooleanChoicesTransformer.php @@ -9,9 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\ChoiceList\ChoiceListInterface; +use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; class ArrayToBooleanChoicesTransformer implements DataTransformerInterface diff --git a/src/Symfony/Component/Form/DataTransformer/ArrayToChoicesTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToChoicesTransformer.php similarity index 83% rename from src/Symfony/Component/Form/DataTransformer/ArrayToChoicesTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToChoicesTransformer.php index abe59e46a77a..2401ae66e723 100644 --- a/src/Symfony/Component/Form/DataTransformer/ArrayToChoicesTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToChoicesTransformer.php @@ -9,9 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; use Symfony\Component\Form\Util\FormUtil; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; class ArrayToChoicesTransformer implements DataTransformerInterface diff --git a/src/Symfony/Component/Form/DataTransformer/ArrayToPartsTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformer.php similarity index 92% rename from src/Symfony/Component/Form/DataTransformer/ArrayToPartsTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformer.php index 5429fb8cb7ba..659c42e6e2d2 100644 --- a/src/Symfony/Component/Form/DataTransformer/ArrayToPartsTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformer.php @@ -9,8 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/BaseDateTimeTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/BaseDateTimeTransformer.php similarity index 87% rename from src/Symfony/Component/Form/DataTransformer/BaseDateTimeTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/BaseDateTimeTransformer.php index f9f145284371..cae03464a896 100644 --- a/src/Symfony/Component/Form/DataTransformer/BaseDateTimeTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/BaseDateTimeTransformer.php @@ -9,7 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; + +use Symfony\Component\Form\DataTransformerInterface; abstract class BaseDateTimeTransformer implements DataTransformerInterface { diff --git a/src/Symfony/Component/Form/DataTransformer/BooleanToStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/BooleanToStringTransformer.php similarity index 88% rename from src/Symfony/Component/Form/DataTransformer/BooleanToStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/BooleanToStringTransformer.php index e5fe6975dd8d..5300c2b72972 100644 --- a/src/Symfony/Component/Form/DataTransformer/BooleanToStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/BooleanToStringTransformer.php @@ -9,8 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/DataTransformerChain.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DataTransformerChain.php similarity index 94% rename from src/Symfony/Component/Form/DataTransformer/DataTransformerChain.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/DataTransformerChain.php index 74cea43955a9..c4a9c776b8c2 100644 --- a/src/Symfony/Component/Form/DataTransformer/DataTransformerChain.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DataTransformerChain.php @@ -9,7 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; + +use Symfony\Component\Form\DataTransformerInterface; /** * Passes a value through multiple value transformers diff --git a/src/Symfony/Component/Form/DataTransformer/DateTimeToArrayTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php similarity index 97% rename from src/Symfony/Component/Form/DataTransformer/DateTimeToArrayTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php index 568da41ef2fd..e7fe8921c59a 100644 --- a/src/Symfony/Component/Form/DataTransformer/DateTimeToArrayTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformer.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/DateTimeToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php similarity index 96% rename from src/Symfony/Component/Form/DataTransformer/DateTimeToLocalizedStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php index 23edf00adc19..cd3638e12e9c 100644 --- a/src/Symfony/Component/Form/DataTransformer/DateTimeToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformer.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/DateTimeToStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.php similarity index 94% rename from src/Symfony/Component/Form/DataTransformer/DateTimeToStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.php index f8cb6ff13f62..3cb246e84de0 100644 --- a/src/Symfony/Component/Form/DataTransformer/DateTimeToStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformer.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/DateTimeToTimestampTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformer.php similarity index 93% rename from src/Symfony/Component/Form/DataTransformer/DateTimeToTimestampTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformer.php index 199e2ed9e264..78e187806f1d 100644 --- a/src/Symfony/Component/Form/DataTransformer/DateTimeToTimestampTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformer.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/FileToArrayTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/FileToArrayTransformer.php similarity index 89% rename from src/Symfony/Component/Form/DataTransformer/FileToArrayTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/FileToArrayTransformer.php index be8217586c13..25f9c44c5506 100644 --- a/src/Symfony/Component/Form/DataTransformer/FileToArrayTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/FileToArrayTransformer.php @@ -9,9 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; use Symfony\Component\HttpFoundation\File\File; diff --git a/src/Symfony/Component/Form/DataTransformer/FileToStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/FileToStringTransformer.php similarity index 85% rename from src/Symfony/Component/Form/DataTransformer/FileToStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/FileToStringTransformer.php index 8c3f01f9c479..059e9f887c33 100644 --- a/src/Symfony/Component/Form/DataTransformer/FileToStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/FileToStringTransformer.php @@ -9,9 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; use Symfony\Component\HttpFoundation\File\File; diff --git a/src/Symfony/Component/Form/DataTransformer/IntegerToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php similarity index 85% rename from src/Symfony/Component/Form/DataTransformer/IntegerToLocalizedStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php index 50ed21197726..227aa250f441 100644 --- a/src/Symfony/Component/Form/DataTransformer/IntegerToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/IntegerToLocalizedStringTransformer.php @@ -9,9 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; - -use Symfony\Component\Form\Exception\UnexpectedTypeException; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; /** * Transforms between an integer and a localized number with grouping diff --git a/src/Symfony/Component/Form/DataTransformer/MoneyToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php similarity index 96% rename from src/Symfony/Component/Form/DataTransformer/MoneyToLocalizedStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php index 5c0f391707bc..63686d9d5976 100644 --- a/src/Symfony/Component/Form/DataTransformer/MoneyToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; use Symfony\Component\Form\Exception\UnexpectedTypeException; diff --git a/src/Symfony/Component/Form/DataTransformer/NumberToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php similarity index 94% rename from src/Symfony/Component/Form/DataTransformer/NumberToLocalizedStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php index 75869c4fe938..ce05dc113705 100644 --- a/src/Symfony/Component/Form/DataTransformer/NumberToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformer.php @@ -9,8 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/PercentToLocalizedStringTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformer.php similarity index 94% rename from src/Symfony/Component/Form/DataTransformer/PercentToLocalizedStringTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformer.php index 3bce77eeb429..bd3392ead7dd 100644 --- a/src/Symfony/Component/Form/DataTransformer/PercentToLocalizedStringTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformer.php @@ -9,8 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/DataTransformer/ScalarToBooleanChoicesTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ScalarToBooleanChoicesTransformer.php similarity index 90% rename from src/Symfony/Component/Form/DataTransformer/ScalarToBooleanChoicesTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/ScalarToBooleanChoicesTransformer.php index 3e8eb4a10cb3..bf73cc39c38c 100644 --- a/src/Symfony/Component/Form/DataTransformer/ScalarToBooleanChoicesTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ScalarToBooleanChoicesTransformer.php @@ -9,9 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\ChoiceList\ChoiceListInterface; +use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; class ScalarToBooleanChoicesTransformer implements DataTransformerInterface diff --git a/src/Symfony/Component/Form/DataTransformer/ScalarToChoiceTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ScalarToChoiceTransformer.php similarity index 82% rename from src/Symfony/Component/Form/DataTransformer/ScalarToChoiceTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/ScalarToChoiceTransformer.php index 8bc4cd9ef018..2a3bb23a15ad 100644 --- a/src/Symfony/Component/Form/DataTransformer/ScalarToChoiceTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ScalarToChoiceTransformer.php @@ -9,9 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; use Symfony\Component\Form\Util\FormUtil; +use Symfony\Component\Form\DataTransformerInterface; class ScalarToChoiceTransformer implements DataTransformerInterface { diff --git a/src/Symfony/Component/Form/DataTransformer/ValueToDuplicatesTransformer.php b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformer.php similarity index 90% rename from src/Symfony/Component/Form/DataTransformer/ValueToDuplicatesTransformer.php rename to src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformer.php index 1b76b1acd031..0709b1e4a295 100644 --- a/src/Symfony/Component/Form/DataTransformer/ValueToDuplicatesTransformer.php +++ b/src/Symfony/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformer.php @@ -9,8 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form\Extension\Core\DataTransformer; +use Symfony\Component\Form\DataTransformerInterface; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Form\Exception\UnexpectedTypeException; /** diff --git a/src/Symfony/Component/Form/EventListener/FixFileUploadListener.php b/src/Symfony/Component/Form/Extension/Core/EventListener/FixFileUploadListener.php similarity index 97% rename from src/Symfony/Component/Form/EventListener/FixFileUploadListener.php rename to src/Symfony/Component/Form/Extension/Core/EventListener/FixFileUploadListener.php index 7c0e6abbb778..2102474fe853 100644 --- a/src/Symfony/Component/Form/EventListener/FixFileUploadListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/FixFileUploadListener.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\EventListener; +namespace Symfony\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\Events; diff --git a/src/Symfony/Component/Form/EventListener/FixRadioInputListener.php b/src/Symfony/Component/Form/Extension/Core/EventListener/FixRadioInputListener.php similarity index 93% rename from src/Symfony/Component/Form/EventListener/FixRadioInputListener.php rename to src/Symfony/Component/Form/Extension/Core/EventListener/FixRadioInputListener.php index 1a5f2959411c..04aebd00bed5 100644 --- a/src/Symfony/Component/Form/EventListener/FixRadioInputListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/FixRadioInputListener.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\EventListener; +namespace Symfony\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\Events; diff --git a/src/Symfony/Component/Form/EventListener/FixUrlProtocolListener.php b/src/Symfony/Component/Form/Extension/Core/EventListener/FixUrlProtocolListener.php similarity index 94% rename from src/Symfony/Component/Form/EventListener/FixUrlProtocolListener.php rename to src/Symfony/Component/Form/Extension/Core/EventListener/FixUrlProtocolListener.php index 75bcbb70d1a3..92c4db429dbb 100644 --- a/src/Symfony/Component/Form/EventListener/FixUrlProtocolListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/FixUrlProtocolListener.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\EventListener; +namespace Symfony\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\Events; diff --git a/src/Symfony/Component/Form/EventListener/ResizeFormListener.php b/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php similarity index 98% rename from src/Symfony/Component/Form/EventListener/ResizeFormListener.php rename to src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php index 4d571a769ce7..4a133185e318 100644 --- a/src/Symfony/Component/Form/EventListener/ResizeFormListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/ResizeFormListener.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\EventListener; +namespace Symfony\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\Events; use Symfony\Component\Form\Event\DataEvent; diff --git a/src/Symfony/Component/Form/EventListener/TrimListener.php b/src/Symfony/Component/Form/Extension/Core/EventListener/TrimListener.php similarity index 93% rename from src/Symfony/Component/Form/EventListener/TrimListener.php rename to src/Symfony/Component/Form/Extension/Core/EventListener/TrimListener.php index d61b3d4cd0de..4bec46bef600 100644 --- a/src/Symfony/Component/Form/EventListener/TrimListener.php +++ b/src/Symfony/Component/Form/Extension/Core/EventListener/TrimListener.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\EventListener; +namespace Symfony\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\Events; use Symfony\Component\Form\Event\FilterDataEvent; diff --git a/src/Symfony/Component/Form/Type/BirthdayType.php b/src/Symfony/Component/Form/Extension/Core/Type/BirthdayType.php similarity index 87% rename from src/Symfony/Component/Form/Type/BirthdayType.php rename to src/Symfony/Component/Form/Extension/Core/Type/BirthdayType.php index 370996c07aa6..02c9de64cb1a 100644 --- a/src/Symfony/Component/Form/Type/BirthdayType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/BirthdayType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class BirthdayType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/CheckboxType.php b/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php similarity index 85% rename from src/Symfony/Component/Form/Type/CheckboxType.php rename to src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php index 447047d8e6dd..09fdb24703d0 100644 --- a/src/Symfony/Component/Form/Type/CheckboxType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/CheckboxType.php @@ -9,11 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormInterface; -use Symfony\Component\Form\DataTransformer\BooleanToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\BooleanToStringTransformer; use Symfony\Component\Form\FormView; class CheckboxType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/ChoiceType.php b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php similarity index 85% rename from src/Symfony/Component/Form/Type/ChoiceType.php rename to src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php index cd91b84a0129..eb20b6ff119e 100644 --- a/src/Symfony/Component/Form/Type/ChoiceType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/ChoiceType.php @@ -9,19 +9,20 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\Exception\FormException; -use Symfony\Component\Form\ChoiceList\ArrayChoiceList; -use Symfony\Component\Form\ChoiceList\ChoiceListInterface; -use Symfony\Component\Form\EventListener\FixRadioInputListener; +use Symfony\Component\Form\Extension\Core\ChoiceList\ArrayChoiceList; +use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface; +use Symfony\Component\Form\Extension\Core\EventListener\FixRadioInputListener; use Symfony\Component\Form\FormView; -use Symfony\Component\Form\DataTransformer\ScalarToChoiceTransformer; -use Symfony\Component\Form\DataTransformer\ScalarToBooleanChoicesTransformer; -use Symfony\Component\Form\DataTransformer\ArrayToChoicesTransformer; -use Symfony\Component\Form\DataTransformer\ArrayToBooleanChoicesTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ScalarToChoiceTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ScalarToBooleanChoicesTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToChoicesTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToBooleanChoicesTransformer; class ChoiceType extends AbstractType { @@ -32,7 +33,7 @@ public function buildForm(FormBuilder $builder, array $options) } if ($options['choice_list'] && !$options['choice_list'] instanceof ChoiceListInterface) { - throw new FormException('The "choice_list" must be an instance of "Symfony\Component\Form\ChoiceList\ChoiceListInterface".'); + throw new FormException('The "choice_list" must be an instance of "Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface".'); } if (!$options['choice_list']) { diff --git a/src/Symfony/Component/Form/Type/CollectionType.php b/src/Symfony/Component/Form/Extension/Core/Type/CollectionType.php similarity index 86% rename from src/Symfony/Component/Form/Type/CollectionType.php rename to src/Symfony/Component/Form/Extension/Core/Type/CollectionType.php index f28393172491..5f54b5eb9399 100644 --- a/src/Symfony/Component/Form/Type/CollectionType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/CollectionType.php @@ -9,10 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\EventListener\ResizeFormListener; +use Symfony\Component\Form\Extension\Core\EventListener\ResizeFormListener; class CollectionType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/CountryType.php b/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php similarity index 88% rename from src/Symfony/Component/Form/Type/CountryType.php rename to src/Symfony/Component/Form/Extension/Core/Type/CountryType.php index 66da5223d760..df97b0627b2a 100644 --- a/src/Symfony/Component/Form/Type/CountryType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/CountryType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Locale\Locale; diff --git a/src/Symfony/Component/Form/Type/DateTimeType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php similarity index 86% rename from src/Symfony/Component/Form/Type/DateTimeType.php rename to src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php index 2a59dad6be51..064629a522b6 100644 --- a/src/Symfony/Component/Form/Type/DateTimeType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateTimeType.php @@ -9,15 +9,16 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\DataTransformer\ReversedTransformer; -use Symfony\Component\Form\DataTransformer\DataTransformerChain; -use Symfony\Component\Form\DataTransformer\DateTimeToArrayTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToStringTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToTimestampTransformer; -use Symfony\Component\Form\DataTransformer\ArrayToPartsTransformer; +use Symfony\Component\Form\ReversedTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DataTransformerChain; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToPartsTransformer; class DateTimeType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/DateType.php b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php similarity index 87% rename from src/Symfony/Component/Form/Type/DateType.php rename to src/Symfony/Component/Form/Extension/Core/Type/DateType.php index fa3117ab048e..f9952485b6e4 100644 --- a/src/Symfony/Component/Form/Type/DateType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/DateType.php @@ -9,18 +9,19 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\ChoiceList\PaddedChoiceList; -use Symfony\Component\Form\ChoiceList\MonthChoiceList; +use Symfony\Component\Form\Extension\Core\ChoiceList\PaddedChoiceList; +use Symfony\Component\Form\Extension\Core\ChoiceList\MonthChoiceList; use Symfony\Component\Form\FormView; -use Symfony\Component\Form\DataTransformer\DateTimeToLocalizedStringTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToArrayTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToStringTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToTimestampTransformer; -use Symfony\Component\Form\DataTransformer\ReversedTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer; +use Symfony\Component\Form\ReversedTransformer; class DateType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/EmailType.php b/src/Symfony/Component/Form/Extension/Core/Type/EmailType.php similarity index 84% rename from src/Symfony/Component/Form/Type/EmailType.php rename to src/Symfony/Component/Form/Extension/Core/Type/EmailType.php index 4b48dcf8aff8..367018a2dc2d 100644 --- a/src/Symfony/Component/Form/Type/EmailType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/EmailType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormInterface; diff --git a/src/Symfony/Component/Form/Type/FieldType.php b/src/Symfony/Component/Form/Extension/Core/Type/FieldType.php similarity index 94% rename from src/Symfony/Component/Form/Type/FieldType.php rename to src/Symfony/Component/Form/Extension/Core/Type/FieldType.php index 805d8e1111c3..518dcd6a7c8b 100644 --- a/src/Symfony/Component/Form/Type/FieldType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FieldType.php @@ -9,16 +9,17 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Util\PropertyPath; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\Form\FormView; -use Symfony\Component\Form\EventListener\TrimListener; -use Symfony\Component\Form\Validator\DefaultValidator; -use Symfony\Component\Form\Validator\DelegatingValidator; +use Symfony\Component\Form\Extension\Core\EventListener\TrimListener; +use Symfony\Component\Form\Extension\Core\Validator\DefaultValidator; +use Symfony\Component\Form\Extension\Core\Validator\DelegatingValidator; use Symfony\Component\EventDispatcher\EventDispatcher; use Symfony\Component\Validator\ValidatorInterface; diff --git a/src/Symfony/Component/Form/Type/FileType.php b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php similarity index 78% rename from src/Symfony/Component/Form/Type/FileType.php rename to src/Symfony/Component/Form/Extension/Core/Type/FileType.php index ae9739b8bbd6..c584fac31abe 100644 --- a/src/Symfony/Component/Form/Type/FileType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FileType.php @@ -9,16 +9,17 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormFactoryInterface; -use Symfony\Component\Form\EventListener\FixFileUploadListener; -use Symfony\Component\Form\DataTransformer\DataTransformerChain; -use Symfony\Component\Form\DataTransformer\ReversedTransformer; -use Symfony\Component\Form\DataTransformer\FileToStringTransformer; -use Symfony\Component\Form\DataTransformer\FileToArrayTransformer; +use Symfony\Component\Form\Extension\Core\EventListener\FixFileUploadListener; +use Symfony\Component\Form\Extension\Core\DataTransformer\DataTransformerChain; +use Symfony\Component\Form\ReversedTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\FileToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\FileToArrayTransformer; use Symfony\Component\Form\FormView; use Symfony\Component\HttpFoundation\File\TemporaryStorage; diff --git a/src/Symfony/Component/Form/Type/FormType.php b/src/Symfony/Component/Form/Extension/Core/Type/FormType.php similarity index 89% rename from src/Symfony/Component/Form/Type/FormType.php rename to src/Symfony/Component/Form/Extension/Core/Type/FormType.php index bc39671cdcb8..a1b378b73db8 100644 --- a/src/Symfony/Component/Form/Type/FormType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/FormType.php @@ -9,13 +9,14 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; -use Symfony\Component\Form\CsrfProvider\CsrfProviderInterface; -use Symfony\Component\Form\DataMapper\PropertyPathMapper; +use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface; +use Symfony\Component\Form\Extension\Core\DataMapper\PropertyPathMapper; use Symfony\Component\EventDispatcher\EventDispatcher; class FormType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/HiddenType.php b/src/Symfony/Component/Form/Extension/Core/Type/HiddenType.php similarity index 87% rename from src/Symfony/Component/Form/Type/HiddenType.php rename to src/Symfony/Component/Form/Extension/Core/Type/HiddenType.php index 0207795189a7..5ee127a9e534 100644 --- a/src/Symfony/Component/Form/Type/HiddenType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/HiddenType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class HiddenType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/IntegerType.php b/src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php similarity index 85% rename from src/Symfony/Component/Form/Type/IntegerType.php rename to src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php index 9fcc10b3bd8d..bd26e3a0d0d7 100644 --- a/src/Symfony/Component/Form/Type/IntegerType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/IntegerType.php @@ -9,10 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\DataTransformer\IntegerToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\IntegerToLocalizedStringTransformer; class IntegerType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/LanguageType.php b/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php similarity index 87% rename from src/Symfony/Component/Form/Type/LanguageType.php rename to src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php index 5a0c60dbad83..3fb1b401d766 100644 --- a/src/Symfony/Component/Form/Type/LanguageType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/LanguageType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Locale\Locale; class LanguageType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/LocaleType.php b/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php similarity index 87% rename from src/Symfony/Component/Form/Type/LocaleType.php rename to src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php index 05c6aa7794f9..2d492cbf23ab 100644 --- a/src/Symfony/Component/Form/Type/LocaleType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/LocaleType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Locale\Locale; class LocaleType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/MoneyType.php b/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php similarity index 93% rename from src/Symfony/Component/Form/Type/MoneyType.php rename to src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php index 18d9fc9da31d..2536da9e8494 100644 --- a/src/Symfony/Component/Form/Type/MoneyType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/MoneyType.php @@ -9,11 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\DataTransformer\MoneyToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\MoneyToLocalizedStringTransformer; use Symfony\Component\Form\FormView; class MoneyType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/NumberType.php b/src/Symfony/Component/Form/Extension/Core/Type/NumberType.php similarity index 84% rename from src/Symfony/Component/Form/Type/NumberType.php rename to src/Symfony/Component/Form/Extension/Core/Type/NumberType.php index b14a18b63b6e..6251d0b7eaa2 100644 --- a/src/Symfony/Component/Form/Type/NumberType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/NumberType.php @@ -9,10 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\DataTransformer\NumberToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer; class NumberType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/PasswordType.php b/src/Symfony/Component/Form/Extension/Core/Type/PasswordType.php similarity index 91% rename from src/Symfony/Component/Form/Type/PasswordType.php rename to src/Symfony/Component/Form/Extension/Core/Type/PasswordType.php index f108667f8d85..c86650aa3882 100644 --- a/src/Symfony/Component/Form/Type/PasswordType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/PasswordType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormView; diff --git a/src/Symfony/Component/Form/Type/PercentType.php b/src/Symfony/Component/Form/Extension/Core/Type/PercentType.php similarity index 81% rename from src/Symfony/Component/Form/Type/PercentType.php rename to src/Symfony/Component/Form/Extension/Core/Type/PercentType.php index 313c6bf501ba..182edfcfc127 100644 --- a/src/Symfony/Component/Form/Type/PercentType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/PercentType.php @@ -9,10 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\DataTransformer\PercentToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\PercentToLocalizedStringTransformer; class PercentType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/RadioType.php b/src/Symfony/Component/Form/Extension/Core/Type/RadioType.php similarity index 87% rename from src/Symfony/Component/Form/Type/RadioType.php rename to src/Symfony/Component/Form/Extension/Core/Type/RadioType.php index 9e62f0348f2b..62c427d5a386 100644 --- a/src/Symfony/Component/Form/Type/RadioType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/RadioType.php @@ -9,11 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\DataTransformer\BooleanToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\BooleanToStringTransformer; use Symfony\Component\Form\FormView; class RadioType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/RepeatedType.php b/src/Symfony/Component/Form/Extension/Core/Type/RepeatedType.php similarity index 86% rename from src/Symfony/Component/Form/Type/RepeatedType.php rename to src/Symfony/Component/Form/Extension/Core/Type/RepeatedType.php index 3af77112a7e6..25b9cf5428c3 100644 --- a/src/Symfony/Component/Form/Type/RepeatedType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/RepeatedType.php @@ -9,10 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\DataTransformer\ValueToDuplicatesTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ValueToDuplicatesTransformer; class RepeatedType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/TextType.php b/src/Symfony/Component/Form/Extension/Core/Type/TextType.php similarity index 85% rename from src/Symfony/Component/Form/Type/TextType.php rename to src/Symfony/Component/Form/Extension/Core/Type/TextType.php index a7401fced6f2..2039925aea94 100644 --- a/src/Symfony/Component/Form/Type/TextType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TextType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; diff --git a/src/Symfony/Component/Form/Type/TextareaType.php b/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php similarity index 83% rename from src/Symfony/Component/Form/Type/TextareaType.php rename to src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php index 6968bb3a9bdf..c78de7666c06 100644 --- a/src/Symfony/Component/Form/Type/TextareaType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TextareaType.php @@ -9,8 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; class TextareaType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/TimeType.php b/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php similarity index 87% rename from src/Symfony/Component/Form/Type/TimeType.php rename to src/Symfony/Component/Form/Extension/Core/Type/TimeType.php index 9a5ff26a4a00..424c4d1c9d86 100644 --- a/src/Symfony/Component/Form/Type/TimeType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TimeType.php @@ -9,15 +9,16 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\ChoiceList\PaddedChoiceList; -use Symfony\Component\Form\DataTransformer\ReversedTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToStringTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToTimestampTransformer; -use Symfony\Component\Form\DataTransformer\DateTimeToArrayTransformer; +use Symfony\Component\Form\Extension\Core\ChoiceList\PaddedChoiceList; +use Symfony\Component\Form\ReversedTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer; use Symfony\Component\Form\FormView; class TimeType extends AbstractType diff --git a/src/Symfony/Component/Form/Type/TimezoneType.php b/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php similarity index 79% rename from src/Symfony/Component/Form/Type/TimezoneType.php rename to src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php index 5e0649ba444d..a3cb25ef1f49 100644 --- a/src/Symfony/Component/Form/Type/TimezoneType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/TimezoneType.php @@ -9,10 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\ChoiceList\TimezoneChoiceList; +use Symfony\Component\Form\Extension\Core\ChoiceList\TimezoneChoiceList; class TimezoneType extends AbstractType { diff --git a/src/Symfony/Component/Form/Type/UrlType.php b/src/Symfony/Component/Form/Extension/Core/Type/UrlType.php similarity index 81% rename from src/Symfony/Component/Form/Type/UrlType.php rename to src/Symfony/Component/Form/Extension/Core/Type/UrlType.php index 26231a47542b..c9c9c084894a 100644 --- a/src/Symfony/Component/Form/Type/UrlType.php +++ b/src/Symfony/Component/Form/Extension/Core/Type/UrlType.php @@ -9,10 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Core\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\EventListener\FixUrlProtocolListener; +use Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener; class UrlType extends AbstractType { diff --git a/src/Symfony/Component/Form/Validator/DefaultValidator.php b/src/Symfony/Component/Form/Extension/Core/Validator/DefaultValidator.php similarity index 92% rename from src/Symfony/Component/Form/Validator/DefaultValidator.php rename to src/Symfony/Component/Form/Extension/Core/Validator/DefaultValidator.php index 73db04677183..88e5e9a00433 100644 --- a/src/Symfony/Component/Form/Validator/DefaultValidator.php +++ b/src/Symfony/Component/Form/Extension/Core/Validator/DefaultValidator.php @@ -9,9 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Validator; +namespace Symfony\Component\Form\Extension\Core\Validator; use Symfony\Component\Form\FormInterface; +use Symfony\Component\Form\FormValidatorInterface; use Symfony\Component\Form\FormError; class DefaultValidator implements FormValidatorInterface diff --git a/src/Symfony/Component/Form/Validator/DelegatingValidator.php b/src/Symfony/Component/Form/Extension/Core/Validator/DelegatingValidator.php similarity index 98% rename from src/Symfony/Component/Form/Validator/DelegatingValidator.php rename to src/Symfony/Component/Form/Extension/Core/Validator/DelegatingValidator.php index 7cc3e3921a6f..87f05b1a3ea1 100644 --- a/src/Symfony/Component/Form/Validator/DelegatingValidator.php +++ b/src/Symfony/Component/Form/Extension/Core/Validator/DelegatingValidator.php @@ -9,9 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Validator; +namespace Symfony\Component\Form\Extension\Core\Validator; use Symfony\Component\Form\FormInterface; +use Symfony\Component\Form\FormValidatorInterface; use Symfony\Component\Form\FormError; use Symfony\Component\Form\Util\VirtualFormAwareIterator; use Symfony\Component\Form\Exception\FormException; diff --git a/src/Symfony/Component/Form/Extension/Csrf/CsrfExtension.php b/src/Symfony/Component/Form/Extension/Csrf/CsrfExtension.php new file mode 100644 index 000000000000..1a7a882620e1 --- /dev/null +++ b/src/Symfony/Component/Form/Extension/Csrf/CsrfExtension.php @@ -0,0 +1,37 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Form\Extension\Csrf; + +use Symfony\Component\Form\Extension\Csrf\Type; +use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface; +use Symfony\Component\Form\AbstractExtension; + +class CsrfExtension extends AbstractExtension +{ + private $csrfProvider; + + public function __construct(CsrfProviderInterface $csrfProvider) + { + $this->csrfProvider = $csrfProvider; + } + + protected function loadTypes() + { + return array( + new Type\CsrfType($this->csrfProvider), + ); + } + + protected function loadTypeGuesser() + { + } +} diff --git a/src/Symfony/Component/Form/CsrfProvider/CsrfProviderInterface.php b/src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/CsrfProviderInterface.php similarity index 96% rename from src/Symfony/Component/Form/CsrfProvider/CsrfProviderInterface.php rename to src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/CsrfProviderInterface.php index fa7f54f4b192..3e610e46a931 100644 --- a/src/Symfony/Component/Form/CsrfProvider/CsrfProviderInterface.php +++ b/src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/CsrfProviderInterface.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\CsrfProvider; +namespace Symfony\Component\Form\Extension\Csrf\CsrfProvider; /** * Marks classes able to provide CSRF protection diff --git a/src/Symfony/Component/Form/CsrfProvider/DefaultCsrfProvider.php b/src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProvider.php similarity index 96% rename from src/Symfony/Component/Form/CsrfProvider/DefaultCsrfProvider.php rename to src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProvider.php index 73bd7d253470..5fedc3bb8e83 100644 --- a/src/Symfony/Component/Form/CsrfProvider/DefaultCsrfProvider.php +++ b/src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProvider.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\CsrfProvider; +namespace Symfony\Component\Form\Extension\Csrf\CsrfProvider; /** * Default implementation of CsrfProviderInterface diff --git a/src/Symfony/Component/Form/CsrfProvider/SessionCsrfProvider.php b/src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/SessionCsrfProvider.php similarity index 95% rename from src/Symfony/Component/Form/CsrfProvider/SessionCsrfProvider.php rename to src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/SessionCsrfProvider.php index 996598a85584..bf4d9e05eb32 100644 --- a/src/Symfony/Component/Form/CsrfProvider/SessionCsrfProvider.php +++ b/src/Symfony/Component/Form/Extension/Csrf/CsrfProvider/SessionCsrfProvider.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\CsrfProvider; +namespace Symfony\Component\Form\Extension\Csrf\CsrfProvider; use Symfony\Component\HttpFoundation\Session; diff --git a/src/Symfony/Component/Form/Type/CsrfType.php b/src/Symfony/Component/Form/Extension/Csrf/Type/CsrfType.php similarity index 59% rename from src/Symfony/Component/Form/Type/CsrfType.php rename to src/Symfony/Component/Form/Extension/Csrf/Type/CsrfType.php index c833f78f5a96..2d68c0696837 100644 --- a/src/Symfony/Component/Form/Type/CsrfType.php +++ b/src/Symfony/Component/Form/Extension/Csrf/Type/CsrfType.php @@ -9,13 +9,14 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; +namespace Symfony\Component\Form\Extension\Csrf\Type; +use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormError; -use Symfony\Component\Form\CsrfProvider\CsrfProviderInterface; -use Symfony\Component\Form\Validator\CallbackValidator; +use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface; +use Symfony\Component\Form\CallbackValidator; class CsrfType extends AbstractType { @@ -32,16 +33,16 @@ public function buildForm(FormBuilder $builder, array $options) $pageId = $options['page_id']; $builder - ->setData($csrfProvider->generateCsrfToken($pageId)) - ->addValidator(new CallbackValidator( - function (FormInterface $form) use ($csrfProvider, $pageId) { - if ((!$form->hasParent() || $form->getParent()->isRoot()) - && !$csrfProvider->isCsrfTokenValid($pageId, $form->getData())) { - $form->addError(new FormError('The CSRF token is invalid. Please try to resubmit the form')); - $form->setData($csrfProvider->generateCsrfToken($pageId)); - } - } - )); + ->setData($csrfProvider->generateCsrfToken($pageId)) + ->addValidator(new CallbackValidator( + function (FormInterface $form) use ($csrfProvider, $pageId) { + if ((!$form->hasParent() || $form->getParent()->isRoot()) + && !$csrfProvider->isCsrfTokenValid($pageId, $form->getData())) { + $form->addError(new FormError('The CSRF token is invalid. Please try to resubmit the form')); + $form->setData($csrfProvider->generateCsrfToken($pageId)); + } + } + )); } public function getDefaultOptions(array $options) diff --git a/src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php b/src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php new file mode 100644 index 000000000000..295a76d32d9b --- /dev/null +++ b/src/Symfony/Component/Form/Extension/DependencyInjection/DependencyInjectionExtension.php @@ -0,0 +1,69 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Form\Extension\DependencyInjection; + +use Symfony\Component\Form\FormExtensionInterface; +use Symfony\Component\Form\FormTypeGuesserChain; +use Symfony\Component\DependencyInjection\ContainerInterface; + +class DependencyInjectionExtension implements FormExtensionInterface +{ + private $container; + + private $typeServiceIds; + + private $guesserServiceIds; + + private $guesser; + + private $guesserLoaded = false; + + public function __construct(ContainerInterface $container, + array $typeServiceIds, array $guesserServiceIds) + { + $this->container = $container; + $this->typeServiceIds = $typeServiceIds; + $this->guesserServiceIds = $guesserServiceIds; + } + + public function getType($identifier) + { + if (!isset($this->typeServiceIds[$identifier])) { + throw new \InvalidArgumentException(sprintf('The field type "%s" is not registered with the service container.', $identifier)); + } + + return $this->container->get($this->typeServiceIds[$identifier]); + } + + public function hasType($identifier) + { + return isset($this->typeServiceIds[$identifier]); + } + + public function getTypeGuesser() + { + if (!$this->guesserLoaded) { + $this->guesserLoaded = true; + $guessers = array(); + + foreach ($this->guesserServiceIds as $serviceId) { + $guessers[] = $this->container->get($serviceId); + } + + if (count($guessers) > 0) { + $this->guesser = new FormTypeGuesserChain($guessers); + } + } + + return $this->guesser; + } +} diff --git a/src/Symfony/Component/Form/Form.php b/src/Symfony/Component/Form/Form.php index fd84fb2cca87..2c8c4168dfc9 100644 --- a/src/Symfony/Component/Form/Form.php +++ b/src/Symfony/Component/Form/Form.php @@ -11,8 +11,6 @@ namespace Symfony\Component\Form; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\FileBag; use Symfony\Component\Form\Event\DataEvent; use Symfony\Component\Form\Event\FilterDataEvent; use Symfony\Component\Form\Exception\FormException; @@ -21,12 +19,9 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException; use Symfony\Component\Form\Exception\DanglingFieldException; use Symfony\Component\Form\Exception\FieldDefinitionException; -use Symfony\Component\Form\CsrfProvider\CsrfProviderInterface; -use Symfony\Component\Form\DataTransformer\DataTransformerInterface; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; -use Symfony\Component\Form\DataMapper\DataMapperInterface; -use Symfony\Component\Form\Validator\FormValidatorInterface; -use Symfony\Component\Form\FormView; +use Symfony\Component\Form\Exception\TransformationFailedException; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\FileBag; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -213,19 +208,19 @@ public function __construct($name, EventDispatcherInterface $dispatcher, { foreach ($clientTransformers as $transformer) { if (!$transformer instanceof DataTransformerInterface) { - throw new UnexpectedTypeException($transformer, 'Symfony\Component\Form\DataTransformer\DataTransformerInterface'); + throw new UnexpectedTypeException($transformer, 'Symfony\Component\Form\DataTransformerInterface'); } } foreach ($normTransformers as $transformer) { if (!$transformer instanceof DataTransformerInterface) { - throw new UnexpectedTypeException($transformer, 'Symfony\Component\Form\DataTransformer\DataTransformerInterface'); + throw new UnexpectedTypeException($transformer, 'Symfony\Component\Form\DataTransformerInterface'); } } foreach ($validators as $validator) { if (!$validator instanceof FormValidatorInterface) { - throw new UnexpectedTypeException($validator, 'Symfony\Component\Form\Validator\FormValidatorInterface'); + throw new UnexpectedTypeException($validator, 'Symfony\Component\Form\FormValidatorInterface'); } } diff --git a/src/Symfony/Component/Form/FormBuilder.php b/src/Symfony/Component/Form/FormBuilder.php index be0af15fa556..b5399ec9dafe 100644 --- a/src/Symfony/Component/Form/FormBuilder.php +++ b/src/Symfony/Component/Form/FormBuilder.php @@ -11,12 +11,8 @@ namespace Symfony\Component\Form; -use Symfony\Component\Form\DataMapper\DataMapperInterface; -use Symfony\Component\Form\DataTransformer\DataTransformerInterface; -use Symfony\Component\Form\Validator\FormValidatorInterface; use Symfony\Component\Form\Exception\FormException; use Symfony\Component\Form\Exception\UnexpectedTypeException; -use Symfony\Component\Form\Type\FormTypeInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -350,7 +346,7 @@ public function add($name, $type = null, array $options = array()) } if (null !== $type && !is_string($type) && !$type instanceof FormTypeInterface) { - throw new UnexpectedTypeException($type, 'string or Symfony\Component\Form\Type\FormTypeInterface'); + throw new UnexpectedTypeException($type, 'string or Symfony\Component\Form\FormTypeInterface'); } $this->children[$name] = array( diff --git a/src/Symfony/Component/Form/Type/Loader/TypeLoaderInterface.php b/src/Symfony/Component/Form/FormExtensionInterface.php similarity index 63% rename from src/Symfony/Component/Form/Type/Loader/TypeLoaderInterface.php rename to src/Symfony/Component/Form/FormExtensionInterface.php index fdc359385a9a..e1ddc9d7deed 100644 --- a/src/Symfony/Component/Form/Type/Loader/TypeLoaderInterface.php +++ b/src/Symfony/Component/Form/FormExtensionInterface.php @@ -3,17 +3,19 @@ /* * This file is part of the Symfony package. * - * (c) Fabien Potencier + * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type\Loader; +namespace Symfony\Component\Form; -interface TypeLoaderInterface +interface FormExtensionInterface { function getType($name); function hasType($name); -} \ No newline at end of file + + function getTypeGuesser(); +} diff --git a/src/Symfony/Component/Form/FormFactory.php b/src/Symfony/Component/Form/FormFactory.php index 4acedd57b91a..a935a58a4e62 100644 --- a/src/Symfony/Component/Form/FormFactory.php +++ b/src/Symfony/Component/Form/FormFactory.php @@ -11,28 +11,41 @@ namespace Symfony\Component\Form; -use Symfony\Component\Form\Type\FormTypeInterface; -use Symfony\Component\Form\Type\Loader\TypeLoaderInterface; -use Symfony\Component\Form\Type\Guesser\TypeGuesserInterface; -use Symfony\Component\Form\Type\Guesser\Guess; +use Symfony\Component\Form\Guess\TypeGuesserInterface; +use Symfony\Component\Form\Guess\Guess; use Symfony\Component\Form\Exception\FormException; use Symfony\Component\Form\Exception\UnexpectedTypeException; class FormFactory implements FormFactoryInterface { - private $typeLoader; + private $extensions = array(); - private $guessers = array(); + private $guesser; - public function __construct(TypeLoaderInterface $typeLoader, array $guessers = array()) + public function __construct(array $extensions) { - foreach ($guessers as $guesser) { - if (!$guesser instanceof TypeGuesserInterface) { - throw new UnexpectedTypeException($guesser, 'Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); + foreach ($extensions as $extension) { + if (!$extension instanceof FormExtensionInterface) { + throw new UnexpectedTypeException($extension, 'Symfony\Component\Form\FormExtensionInterface'); } } - $this->typeLoader = $typeLoader; - $this->guessers = $guessers; + + $this->extensions = $extensions; + } + + private function loadGuesser() + { + $guessers = array(); + + foreach ($this->extensions as $extension) { + $guesser = $extension->getTypeGuesser(); + + if ($guesser) { + $guessers[] = $guesser; + } + } + + $this->guesser = new FormTypeGuesserChain($guessers); } public function create($type, $data = null, array $options = array()) @@ -68,9 +81,17 @@ public function createNamedBuilder($type, $name, $data = null, array $options = $passedOptions = array_keys($options); while (null !== $type) { - // TODO check if type exists if (!$type instanceof FormTypeInterface) { - $type = $this->typeLoader->getType($type); + foreach ($this->extensions as $extension) { + if ($extension->hasType($type)) { + $type = $extension->getType($type); + break; + } + } + + if (!$type) { + throw new FormException(sprintf('Could not load type "%s"', $type)); + } } array_unshift($types, $type); @@ -107,22 +128,14 @@ public function createNamedBuilder($type, $name, $data = null, array $options = public function createBuilderForProperty($class, $property, $data = null, array $options = array()) { - // guess field class and options - $typeGuess = $this->guess(function ($guesser) use ($class, $property) { - return $guesser->guessType($class, $property); - }); - - // guess maximum length - $maxLengthGuess = $this->guess(function ($guesser) use ($class, $property) { - return $guesser->guessMaxLength($class, $property); - }); - - // guess whether field is required - $requiredGuess = $this->guess(function ($guesser) use ($class, $property) { - return $guesser->guessRequired($class, $property); - }); - - // construct field + if (!$this->guesser) { + $this->loadGuesser(); + } + + $typeGuess = $this->guesser->guessType($class, $property); + $maxLengthGuess = $this->guesser->guessMaxLength($class, $property); + $requiredGuess = $this->guesser->guessRequired($class, $property); + $type = $typeGuess ? $typeGuess->getType() : 'text'; if ($maxLengthGuess) { @@ -140,26 +153,4 @@ public function createBuilderForProperty($class, $property, $data = null, array return $this->createNamedBuilder($type, $property, $data, $options); } - - /** - * Executes a closure for each guesser and returns the best guess from the - * return values - * - * @param \Closure $closure The closure to execute. Accepts a guesser as - * argument and should return a FieldFactoryGuess - * instance - * @return FieldFactoryGuess The guess with the highest confidence - */ - protected function guess(\Closure $closure) - { - $guesses = array(); - - foreach ($this->guessers as $guesser) { - if ($guess = $closure($guesser)) { - $guesses[] = $guess; - } - } - - return Guess::getBestGuess($guesses); - } } diff --git a/src/Symfony/Component/Form/FormTypeGuesserChain.php b/src/Symfony/Component/Form/FormTypeGuesserChain.php new file mode 100644 index 000000000000..7272b112b58e --- /dev/null +++ b/src/Symfony/Component/Form/FormTypeGuesserChain.php @@ -0,0 +1,76 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Form; + +use Symfony\Component\Form\Guess\Guess; + +class FormTypeGuesserChain implements FormTypeGuesserInterface +{ + private $guessers = array(); + + public function __construct(array $guessers) + { + foreach ($guessers as $guesser) { + if (!$guesser instanceof FormTypeGuesserInterface) { + throw new UnexpectedTypeException($guesser, 'Symfony\Component\Form\FormTypeGuesserInterface'); + } + + if ($guesser instanceof self) { + $this->guessers = array_merge($this->guessers, $guesser->guessers); + } else { + $this->guessers[] = $guesser; + } + } + } + + public function guessType($class, $property) + { + return $this->guess(function ($guesser) use ($class, $property) { + return $guesser->guessType($class, $property); + }); + } + + public function guessRequired($class, $property) + { + return $this->guess(function ($guesser) use ($class, $property) { + return $guesser->guessRequired($class, $property); + }); + } + + public function guessMaxLength($class, $property) + { + return $this->guess(function ($guesser) use ($class, $property) { + return $guesser->guessMaxLength($class, $property); + }); + } + + /** + * Executes a closure for each guesser and returns the best guess from the + * return values + * + * @param \Closure $closure The closure to execute. Accepts a guesser + * as argument and should return a Guess instance + * @return FieldFactoryGuess The guess with the highest confidence + */ + private function guess(\Closure $closure) + { + $guesses = array(); + + foreach ($this->guessers as $guesser) { + if ($guess = $closure($guesser)) { + $guesses[] = $guess; + } + } + + return Guess::getBestGuess($guesses); + } +} \ No newline at end of file diff --git a/src/Symfony/Component/Form/Type/Guesser/TypeGuesserInterface.php b/src/Symfony/Component/Form/FormTypeGuesserInterface.php similarity index 81% rename from src/Symfony/Component/Form/Type/Guesser/TypeGuesserInterface.php rename to src/Symfony/Component/Form/FormTypeGuesserInterface.php index 389a32e5157e..fb1e309229c1 100644 --- a/src/Symfony/Component/Form/Type/Guesser/TypeGuesserInterface.php +++ b/src/Symfony/Component/Form/FormTypeGuesserInterface.php @@ -3,20 +3,15 @@ /* * This file is part of the Symfony package. * - * (c) Fabien Potencier + * (c) Fabien Potencier * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type\Guesser; +namespace Symfony\Component\Form; -/** - * Guesses field classes and options for the properties of a class - * - * @author Bernhard Schussek - */ -interface TypeGuesserInterface +interface FormTypeGuesserInterface { /** * Returns a field guess for a property name of a class @@ -44,4 +39,4 @@ function guessRequired($class, $property); * @return Guess A guess for the field's maximum length */ function guessMaxLength($class, $property); -} +} \ No newline at end of file diff --git a/src/Symfony/Component/Form/Type/FormTypeInterface.php b/src/Symfony/Component/Form/FormTypeInterface.php similarity index 76% rename from src/Symfony/Component/Form/Type/FormTypeInterface.php rename to src/Symfony/Component/Form/FormTypeInterface.php index 33bc17b4dc07..34dfffc8a79a 100644 --- a/src/Symfony/Component/Form/Type/FormTypeInterface.php +++ b/src/Symfony/Component/Form/FormTypeInterface.php @@ -9,12 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type; - -use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\FormInterface; -use Symfony\Component\Form\FormFactoryInterface; -use Symfony\Component\Form\FormView; +namespace Symfony\Component\Form; interface FormTypeInterface { diff --git a/src/Symfony/Component/Form/Validator/FormValidatorInterface.php b/src/Symfony/Component/Form/FormValidatorInterface.php similarity index 79% rename from src/Symfony/Component/Form/Validator/FormValidatorInterface.php rename to src/Symfony/Component/Form/FormValidatorInterface.php index ab7ad6dc1852..9112c6b96e6c 100644 --- a/src/Symfony/Component/Form/Validator/FormValidatorInterface.php +++ b/src/Symfony/Component/Form/FormValidatorInterface.php @@ -9,9 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Validator; - -use Symfony\Component\Form\FormInterface; +namespace Symfony\Component\Form; interface FormValidatorInterface { diff --git a/src/Symfony/Component/Form/FormView.php b/src/Symfony/Component/Form/FormView.php index 0570c84dc37b..ee74379817dd 100644 --- a/src/Symfony/Component/Form/FormView.php +++ b/src/Symfony/Component/Form/FormView.php @@ -11,7 +11,6 @@ namespace Symfony\Component\Form; -use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\Util\FormUtil; class FormView implements \ArrayAccess, \IteratorAggregate, \Countable diff --git a/src/Symfony/Component/Form/Type/Guesser/Guess.php b/src/Symfony/Component/Form/Guess/Guess.php similarity index 98% rename from src/Symfony/Component/Form/Type/Guesser/Guess.php rename to src/Symfony/Component/Form/Guess/Guess.php index c17ad7fede37..dc3ee9c7d870 100644 --- a/src/Symfony/Component/Form/Type/Guesser/Guess.php +++ b/src/Symfony/Component/Form/Guess/Guess.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type\Guesser; +namespace Symfony\Component\Form\Guess; /** * Base class for guesses made by TypeGuesserInterface implementation diff --git a/src/Symfony/Component/Form/Type/Guesser/TypeGuess.php b/src/Symfony/Component/Form/Guess/TypeGuess.php similarity index 96% rename from src/Symfony/Component/Form/Type/Guesser/TypeGuess.php rename to src/Symfony/Component/Form/Guess/TypeGuess.php index 732c8ce6f16c..73c028b8388d 100644 --- a/src/Symfony/Component/Form/Type/Guesser/TypeGuess.php +++ b/src/Symfony/Component/Form/Guess/TypeGuess.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type\Guesser; +namespace Symfony\Component\Form\Guess; /** * Contains a guessed class name and a list of options for creating an instance diff --git a/src/Symfony/Component/Form/Type/Guesser/ValueGuess.php b/src/Symfony/Component/Form/Guess/ValueGuess.php similarity index 95% rename from src/Symfony/Component/Form/Type/Guesser/ValueGuess.php rename to src/Symfony/Component/Form/Guess/ValueGuess.php index f9c3cfeacf09..2083e78193df 100644 --- a/src/Symfony/Component/Form/Type/Guesser/ValueGuess.php +++ b/src/Symfony/Component/Form/Guess/ValueGuess.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\Type\Guesser; +namespace Symfony\Component\Form\Guess; /** * Contains a guessed value diff --git a/src/Symfony/Component/Form/Resources/config/validation.xml b/src/Symfony/Component/Form/Resources/config/validation.xml index 9b76e2c21d0d..aa28ea6876f5 100644 --- a/src/Symfony/Component/Form/Resources/config/validation.xml +++ b/src/Symfony/Component/Form/Resources/config/validation.xml @@ -7,7 +7,7 @@ - Symfony\Component\Form\Validator\DelegatingValidator + Symfony\Component\Form\Extension\Core\Validator\DelegatingValidator validateFormData diff --git a/src/Symfony/Component/Form/DataTransformer/ReversedTransformer.php b/src/Symfony/Component/Form/ReversedTransformer.php similarity index 96% rename from src/Symfony/Component/Form/DataTransformer/ReversedTransformer.php rename to src/Symfony/Component/Form/ReversedTransformer.php index 5840dba5357c..0be9946b9d1c 100644 --- a/src/Symfony/Component/Form/DataTransformer/ReversedTransformer.php +++ b/src/Symfony/Component/Form/ReversedTransformer.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Component\Form\DataTransformer; +namespace Symfony\Component\Form; /** * Reverses a transformer diff --git a/src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php b/src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php deleted file mode 100644 index f8ba99a8b99b..000000000000 --- a/src/Symfony/Component/Form/Type/Loader/ArrayTypeLoader.php +++ /dev/null @@ -1,41 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Form\Type\Loader; - -use Symfony\Component\Form\FormFactoryInterface; -use Symfony\Component\Form\Type; -use Symfony\Component\Form\Type\FormTypeInterface; - -class ArrayTypeLoader implements TypeLoaderInterface -{ - /** - * @var array - */ - private $types; - - public function __construct(array $types) - { - foreach ($types as $type) { - $this->types[$type->getName()] = $type; - } - } - - public function getType($name) - { - return $this->types[$name]; - } - - public function hasType($name) - { - return isset($this->types[$name]); - } -} \ No newline at end of file diff --git a/src/Symfony/Component/Form/Type/Loader/TypeLoaderChain.php b/src/Symfony/Component/Form/Type/Loader/TypeLoaderChain.php deleted file mode 100644 index d668039856e8..000000000000 --- a/src/Symfony/Component/Form/Type/Loader/TypeLoaderChain.php +++ /dev/null @@ -1,44 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\Form\Type\Loader; - -class TypeLoaderChain implements TypeLoaderInterface -{ - private $loaders = array(); - - public function addLoader(TypeLoaderInterface $loader) - { - $this->loaders[] = $loader; - } - - public function getType($name) - { - foreach ($this->loaders as $loader) { - if ($loader->hasType($name)) { - return $loader->getType($name); - } - } - - // TODO exception - } - - public function hasType($name) - { - foreach ($this->loaders as $loader) { - if ($loader->hasType($name)) { - return true; - } - } - - return false; - } -} \ No newline at end of file diff --git a/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordFormAuthenticationListener.php b/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordFormAuthenticationListener.php index 5a84391d5b70..c8b06ee1c9a7 100644 --- a/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordFormAuthenticationListener.php +++ b/src/Symfony/Component/Security/Http/Firewall/UsernamePasswordFormAuthenticationListener.php @@ -11,7 +11,7 @@ namespace Symfony\Component\Security\Http\Firewall; -use Symfony\Component\Form\CsrfProvider\CsrfProviderInterface; +use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\Log\LoggerInterface; use Symfony\Component\Security\Http\Authentication\AuthenticationFailureHandlerInterface; diff --git a/src/Symfony/Component/Validator/Validator.php b/src/Symfony/Component/Validator/Validator.php index 4aa97bd6a370..4e93bf4d99ab 100644 --- a/src/Symfony/Component/Validator/Validator.php +++ b/src/Symfony/Component/Validator/Validator.php @@ -38,6 +38,14 @@ public function __construct( $this->validatorFactory = $validatorFactory; } + /** + * {@inheritDoc} + */ + public function getMetadataFactory() + { + return $this->metadataFactory; + } + /** * {@inheritDoc} */ diff --git a/src/Symfony/Component/Validator/ValidatorInterface.php b/src/Symfony/Component/Validator/ValidatorInterface.php index f97f25e3cc36..2b5140d3c965 100644 --- a/src/Symfony/Component/Validator/ValidatorInterface.php +++ b/src/Symfony/Component/Validator/ValidatorInterface.php @@ -58,4 +58,11 @@ function validatePropertyValue($class, $property, $value, $groups = null); * @return ConstraintViolationList */ function validateValue($value, Constraint $constraint, $groups = null); + + /** + * Returns the factory for ClassMetadata instances + * + * @return Mapping\ClassMetadataFactoryInterface + */ + function getMetadataFactory(); } \ No newline at end of file diff --git a/tests/Symfony/Tests/Bridge/Doctrine/Form/DoctrineOrmTestCase.php b/tests/Symfony/Tests/Bridge/Doctrine/Form/DoctrineOrmTestCase.php index 35bc63a80f3c..5505c13fa704 100644 --- a/tests/Symfony/Tests/Bridge/Doctrine/Form/DoctrineOrmTestCase.php +++ b/tests/Symfony/Tests/Bridge/Doctrine/Form/DoctrineOrmTestCase.php @@ -12,13 +12,12 @@ namespace Symfony\Tests\Bridge\Doctrine\Form; use Doctrine\ORM\EntityManager; +use Symfony\Tests\Component\Form\Extension\Core\Type\TestCase; -abstract class DoctrineOrmTestCase extends \Symfony\Tests\Component\Form\Type\TestCase +abstract class DoctrineOrmTestCase extends \PHPUnit_Framework_TestCase { protected function setUp() { - parent::setUp(); - if (!class_exists('Doctrine\\Common\\Version')) { $this->markTestSkipped('Doctrine is not available.'); } @@ -27,7 +26,7 @@ protected function setUp() /** * @return EntityManager */ - protected function createTestEntityManager($paths = array()) + public static function createTestEntityManager($paths = array()) { $config = new \Doctrine\ORM\Configuration(); $config->setAutoGenerateProxyClasses(true); diff --git a/tests/Symfony/Tests/Bridge/Doctrine/Form/EntityTypeTest.php b/tests/Symfony/Tests/Bridge/Doctrine/Form/Type/EntityTypeTest.php similarity index 95% rename from tests/Symfony/Tests/Bridge/Doctrine/Form/EntityTypeTest.php rename to tests/Symfony/Tests/Bridge/Doctrine/Form/Type/EntityTypeTest.php index 45b0e6631dd8..c591c13b614a 100644 --- a/tests/Symfony/Tests/Bridge/Doctrine/Form/EntityTypeTest.php +++ b/tests/Symfony/Tests/Bridge/Doctrine/Form/Type/EntityTypeTest.php @@ -9,21 +9,23 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Bridge\Doctrine\Form; +namespace Symfony\Tests\Bridge\Doctrine\Form\Type; -require_once __DIR__.'/DoctrineOrmTestCase.php'; -require_once __DIR__.'/../Fixtures/SingleIdentEntity.php'; -require_once __DIR__.'/../Fixtures/CompositeIdentEntity.php'; +require_once __DIR__.'/../DoctrineOrmTestCase.php'; +require_once __DIR__.'/../../Fixtures/SingleIdentEntity.php'; +require_once __DIR__.'/../../Fixtures/CompositeIdentEntity.php'; use Symfony\Component\Form\Exception\UnexpectedTypeException; +use Symfony\Tests\Component\Form\Extension\Core\Type\TypeTestCase; +use Symfony\Tests\Bridge\Doctrine\Form\DoctrineOrmTestCase; use Symfony\Tests\Bridge\Doctrine\Form\Fixtures\SingleIdentEntity; use Symfony\Tests\Bridge\Doctrine\Form\Fixtures\CompositeIdentEntity; -use Symfony\Bridge\Doctrine\Form\DoctrineTypeLoader; +use Symfony\Bridge\Doctrine\Form\DoctrineOrmExtension; use Doctrine\ORM\Tools\SchemaTool; use Doctrine\ORM\EntityManager; use Doctrine\Common\Collections\ArrayCollection; -class EntityTypeTest extends DoctrineOrmTestCase +class EntityTypeTest extends TypeTestCase { const SINGLE_IDENT_CLASS = 'Symfony\Tests\Bridge\Doctrine\Form\Fixtures\SingleIdentEntity'; @@ -33,7 +35,11 @@ class EntityTypeTest extends DoctrineOrmTestCase protected function setUp() { - $this->em = $this->createTestEntityManager(); + if (!class_exists('Doctrine\\Common\\Version')) { + $this->markTestSkipped('Doctrine is not available.'); + } + + $this->em = DoctrineOrmTestCase::createTestEntityManager(); parent::setUp(); @@ -54,12 +60,11 @@ protected function setUp() } } - protected function getTypeLoaders() + protected function getExtensions() { - $loaders = parent::getTypeLoaders(); - $loaders[] = new DoctrineTypeLoader($this->em); - - return $loaders; + return array_merge(parent::getExtensions(), array( + new DoctrineOrmExtension($this->em), + )); } protected function persist(array $entities) diff --git a/tests/Symfony/Tests/Component/Form/AbstractExtensionTest.php b/tests/Symfony/Tests/Component/Form/AbstractExtensionTest.php new file mode 100644 index 000000000000..cd52277fb600 --- /dev/null +++ b/tests/Symfony/Tests/Component/Form/AbstractExtensionTest.php @@ -0,0 +1,68 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Tests\Component\Form; + +use Symfony\Component\Form\AbstractExtension; +use Symfony\Component\Form\FormTypeInterface; +use Symfony\Component\Form\FormInterface; +use Symfony\Component\Form\FormView; +use Symfony\Component\Form\FormFactoryInterface; +use Symfony\Component\Form\FormBuilder; + +class AbstractExtensionTest extends \PHPUnit_Framework_TestCase +{ + public function testHasType() + { + $loader = new TestExtension(); + $this->assertTrue($loader->hasType('foo')); + $this->assertFalse($loader->hasType('bar')); + } + + public function testGetType() + { + $loader = new TestExtension(array($type)); + $this->assertInstanceOf(__NAMESPACE__.'\TestType', $loader->getType('foo')); + $this->assertSame($loader->getType('foo'), $loader->getType('foo')); + } +} + +class TestType implements FormTypeInterface +{ + public function getName() + { + return 'foo'; + } + + function buildForm(FormBuilder $builder, array $options) {} + + function buildView(FormView $view, FormInterface $form) {} + + function buildViewBottomUp(FormView $view, FormInterface $form) {} + + function createBuilder($name, FormFactoryInterface $factory, array $options) {} + + function getDefaultOptions(array $options) {} + + function getParent(array $options) {} +} + +class TestExtension extends AbstractExtension +{ + protected function loadTypes() + { + return array(new TestType()); + } + + protected function loadTypeGuesser() + { + } +} \ No newline at end of file diff --git a/tests/Symfony/Tests/Component/Form/AbstractLayoutTest.php b/tests/Symfony/Tests/Component/Form/AbstractLayoutTest.php index 687ccb6c4959..fce1dc9b8d40 100644 --- a/tests/Symfony/Tests/Component/Form/AbstractLayoutTest.php +++ b/tests/Symfony/Tests/Component/Form/AbstractLayoutTest.php @@ -14,8 +14,8 @@ use Symfony\Component\Form\FormError; use Symfony\Component\Form\FormView; use Symfony\Component\Form\FormFactory; -use Symfony\Component\Form\CsrfProvider\DefaultCsrfProvider; -use Symfony\Component\Form\Type\Loader\DefaultTypeLoader; +use Symfony\Component\Form\Extension\Core\CoreExtension; +use Symfony\Component\Form\Extension\Csrf\CsrfExtension; use Symfony\Component\EventDispatcher\EventDispatcher; abstract class AbstractLayoutTest extends \PHPUnit_Framework_TestCase @@ -30,11 +30,13 @@ protected function setUp() $dispatcher = new EventDispatcher(); $validator = $this->getMock('Symfony\Component\Validator\ValidatorInterface'); - $this->csrfProvider = $this->getMock('Symfony\Component\Form\CsrfProvider\CsrfProviderInterface'); + $this->csrfProvider = $this->getMock('Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface'); $storage = new \Symfony\Component\HttpFoundation\File\TemporaryStorage('foo', 1, \sys_get_temp_dir()); - $loader = new DefaultTypeLoader($validator, $this->csrfProvider , $storage); - $this->factory = new FormFactory($loader); + $this->factory = new FormFactory(array( + new CoreExtension($validator, $storage), + new CsrfExtension($this->csrfProvider), + )); } protected function assertXpathNodeValue(\DomElement $element, $expression, $nodeValue) diff --git a/tests/Symfony/Tests/Component/Form/Type/AbstractTypeTest.php b/tests/Symfony/Tests/Component/Form/AbstractTypeTest.php similarity index 84% rename from tests/Symfony/Tests/Component/Form/Type/AbstractTypeTest.php rename to tests/Symfony/Tests/Component/Form/AbstractTypeTest.php index 2c40bf9e7de1..00957be901ce 100644 --- a/tests/Symfony/Tests/Component/Form/Type/AbstractTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/AbstractTypeTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form; -use Symfony\Component\Form\Type\AbstractType; +use Symfony\Component\Form\AbstractType; -class AbstractTypeTest extends TestCase +class AbstractTypeTest extends \PHPUnit_Framework_TestCase { public function testGetNameWithNoSuffix() { diff --git a/tests/Symfony/Tests/Component/Form/ChoiceList/ArrayChoiceListTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/ChoiceList/ArrayChoiceListTest.php similarity index 90% rename from tests/Symfony/Tests/Component/Form/ChoiceList/ArrayChoiceListTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/ChoiceList/ArrayChoiceListTest.php index 1c2e9f5a80f2..ccf4b7a6dddd 100644 --- a/tests/Symfony/Tests/Component/Form/ChoiceList/ArrayChoiceListTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/ChoiceList/ArrayChoiceListTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\ChoiceList; +namespace Symfony\Tests\Component\Form\Extension\Core\ChoiceList; -use Symfony\Component\Form\ChoiceList\ArrayChoiceList; +use Symfony\Component\Form\Extension\Core\ChoiceList\ArrayChoiceList; class ArrayChoiceListTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/ChoiceList/MonthChoiceListTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/ChoiceList/MonthChoiceListTest.php similarity index 94% rename from tests/Symfony/Tests/Component/Form/ChoiceList/MonthChoiceListTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/ChoiceList/MonthChoiceListTest.php index 7772e406bf95..fe5de35b39ca 100644 --- a/tests/Symfony/Tests/Component/Form/ChoiceList/MonthChoiceListTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/ChoiceList/MonthChoiceListTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\ChoiceList; +namespace Symfony\Tests\Component\Form\Extension\Core\ChoiceList; -use Symfony\Component\Form\ChoiceList\MonthChoiceList; +use Symfony\Component\Form\Extension\Core\ChoiceList\MonthChoiceList; class MonthChoiceListTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataMapper/PropertyPathMapperTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataMapper/PropertyPathMapperTest.php similarity index 93% rename from tests/Symfony/Tests/Component/Form/DataMapper/PropertyPathMapperTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataMapper/PropertyPathMapperTest.php index 85a44308028d..140f58e054e0 100644 --- a/tests/Symfony/Tests/Component/Form/DataMapper/PropertyPathMapperTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataMapper/PropertyPathMapperTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataMapper; +namespace Symfony\Tests\Component\Form\Extension\Core\DataMapper; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\Util\PropertyPath; -use Symfony\Component\Form\DataMapper\PropertyPathMapper; +use Symfony\Component\Form\Extension\Core\DataMapper\PropertyPathMapper; class PropertyPathMapperTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/ArrayToChoicesTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ArrayToChoicesTransformerTest.php similarity index 91% rename from tests/Symfony/Tests/Component/Form/DataTransformer/ArrayToChoicesTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ArrayToChoicesTransformerTest.php index 42bfd5ef9856..e8114f321a3f 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/ArrayToChoicesTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ArrayToChoicesTransformerTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\ArrayToChoicesTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToChoicesTransformer; class ArrayToChoicesTransformerTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/ArrayToPartsTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformerTest.php similarity index 93% rename from tests/Symfony/Tests/Component/Form/DataTransformer/ArrayToPartsTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformerTest.php index 8f4593ecb3d6..0e690ecbcaa5 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/ArrayToPartsTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ArrayToPartsTransformerTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\ArrayToPartsTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ArrayToPartsTransformer; class ArrayToPartsTransformerTest extends \PHPUnit_Framework_TestCase { @@ -118,7 +118,7 @@ public function testReverseTransform_completelyNull() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyNull() { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/BooleanToStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/BooleanToStringTransformerTest.php similarity index 90% rename from tests/Symfony/Tests/Component/Form/DataTransformer/BooleanToStringTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/BooleanToStringTransformerTest.php index cc15d0f26dca..ffcb7f9b8ee8 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/BooleanToStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/BooleanToStringTransformerTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\BooleanToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\BooleanToStringTransformer; class BooleanToStringTransformerTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/DataTransformerChainTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DataTransformerChainTest.php similarity index 86% rename from tests/Symfony/Tests/Component/Form/DataTransformer/DataTransformerChainTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DataTransformerChainTest.php index 0814293a182e..27773f55f725 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/DataTransformerChainTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DataTransformerChainTest.php @@ -9,20 +9,20 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\DataTransformerChain; +use Symfony\Component\Form\Extension\Core\DataTransformer\DataTransformerChain; class DataTransformerChainTest extends \PHPUnit_Framework_TestCase { public function testTransform() { - $transformer1 = $this->getMock('Symfony\Component\Form\DataTransformer\DataTransformerInterface'); + $transformer1 = $this->getMock('Symfony\Component\Form\DataTransformerInterface'); $transformer1->expects($this->once()) ->method('transform') ->with($this->identicalTo('foo')) ->will($this->returnValue('bar')); - $transformer2 = $this->getMock('Symfony\Component\Form\DataTransformer\DataTransformerInterface'); + $transformer2 = $this->getMock('Symfony\Component\Form\DataTransformerInterface'); $transformer2->expects($this->once()) ->method('transform') ->with($this->identicalTo('bar')) @@ -35,12 +35,12 @@ public function testTransform() public function testReverseTransform() { - $transformer2 = $this->getMock('Symfony\Component\Form\DataTransformer\DataTransformerInterface'); + $transformer2 = $this->getMock('Symfony\Component\Form\DataTransformerInterface'); $transformer2->expects($this->once()) ->method('reverseTransform') ->with($this->identicalTo('foo')) ->will($this->returnValue('bar')); - $transformer1 = $this->getMock('Symfony\Component\Form\DataTransformer\DataTransformerInterface'); + $transformer1 = $this->getMock('Symfony\Component\Form\DataTransformerInterface'); $transformer1->expects($this->once()) ->method('reverseTransform') ->with($this->identicalTo('bar')) diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeTestCase.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeTestCase.php similarity index 87% rename from tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeTestCase.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeTestCase.php index 9579e36c67f2..bb6eccc4cc56 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeTestCase.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeTestCase.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__.'/LocalizedTestCase.php'; diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToArrayTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformerTest.php similarity index 90% rename from tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToArrayTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformerTest.php index 5323da88bc3e..361d2559741c 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToArrayTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToArrayTransformerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__ . '/DateTimeTestCase.php'; -use Symfony\Component\Form\DataTransformer\DateTimeToArrayTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToArrayTransformer; class DateTimeToArrayTransformerTest extends DateTimeTestCase { @@ -193,7 +193,7 @@ public function testReverseTransform_completelyEmpty_subsetOfFields() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyEmpty_year() { @@ -208,7 +208,7 @@ public function testReverseTransform_partiallyEmpty_year() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyEmpty_month() { @@ -223,7 +223,7 @@ public function testReverseTransform_partiallyEmpty_month() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyEmpty_day() { @@ -238,7 +238,7 @@ public function testReverseTransform_partiallyEmpty_day() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyEmpty_hour() { @@ -253,7 +253,7 @@ public function testReverseTransform_partiallyEmpty_hour() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyEmpty_minute() { @@ -268,7 +268,7 @@ public function testReverseTransform_partiallyEmpty_minute() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyEmpty_second() { @@ -337,7 +337,7 @@ public function testReverseTransformRequiresArray() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransformWithNegativeYear() { @@ -353,7 +353,7 @@ public function testReverseTransformWithNegativeYear() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransformWithNegativeMonth() { @@ -369,7 +369,7 @@ public function testReverseTransformWithNegativeMonth() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransformWithNegativeDay() { @@ -385,7 +385,7 @@ public function testReverseTransformWithNegativeDay() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransformWithNegativeHour() { @@ -401,7 +401,7 @@ public function testReverseTransformWithNegativeHour() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransformWithNegativeMinute() { @@ -417,7 +417,7 @@ public function testReverseTransformWithNegativeMinute() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransformWithNegativeSecond() { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToLocalizedStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php similarity index 95% rename from tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToLocalizedStringTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php index d41be74bce44..dea995a7a588 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToLocalizedStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToLocalizedStringTransformerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__ . '/DateTimeTestCase.php'; -use Symfony\Component\Form\DataTransformer\DateTimeToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer; class DateTimeToLocalizedStringTransformerTest extends DateTimeTestCase { @@ -138,7 +138,7 @@ public function testTransformWrapsIntlErrors() // HOW TO REPRODUCE? - //$this->setExpectedException('Symfony\Component\Form\DataTransformer\Transdate_formationFailedException'); + //$this->setExpectedException('Symfony\Component\Form\Extension\Core\DataTransformer\Transdate_formationFailedException'); //$transformer->transform(1.5); } @@ -238,7 +238,7 @@ public function testReverseTransformWrapsIntlErrors() { $transformer = new DateTimeToLocalizedStringTransformer(); - $this->setExpectedException('Symfony\Component\Form\DataTransformer\TransformationFailedException'); + $this->setExpectedException('Symfony\Component\Form\Exception\TransformationFailedException'); $transformer->reverseTransform('12345', null); } diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformerTest.php similarity index 95% rename from tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToStringTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformerTest.php index 426e03e9b933..285bb966f68d 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToStringTransformerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__ . '/DateTimeTestCase.php'; -use Symfony\Component\Form\DataTransformer\DateTimeToStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToStringTransformer; class DateTimeToStringTransformerTest extends DateTimeTestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToTimestampTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformerTest.php similarity index 95% rename from tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToTimestampTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformerTest.php index bb6da3416718..2148d81197d3 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/DateTimeToTimestampTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/DateTimeToTimestampTransformerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__ . '/DateTimeTestCase.php'; -use Symfony\Component\Form\DataTransformer\DateTimeToTimestampTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToTimestampTransformer; class DateTimeToTimestampTransformerTest extends DateTimeTestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/LocalizedTestCase.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/LocalizedTestCase.php similarity index 87% rename from tests/Symfony/Tests/Component/Form/DataTransformer/LocalizedTestCase.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/LocalizedTestCase.php index 96ba9b0a1121..558797caa93e 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/LocalizedTestCase.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/LocalizedTestCase.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; class LocalizedTestCase extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/MoneyToLocalizedStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php similarity index 91% rename from tests/Symfony/Tests/Component/Form/DataTransformer/MoneyToLocalizedStringTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php index 2328988630e5..62209cd6606b 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/MoneyToLocalizedStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/MoneyToLocalizedStringTransformerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__ . '/LocalizedTestCase.php'; -use Symfony\Component\Form\DataTransformer\MoneyToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\MoneyToLocalizedStringTransformer; class MoneyToLocalizedStringTransformerTest extends LocalizedTestCase diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/NumberToLocalizedStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php similarity index 94% rename from tests/Symfony/Tests/Component/Form/DataTransformer/NumberToLocalizedStringTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php index 55e2dd5d1e2d..0560546d446d 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/NumberToLocalizedStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/NumberToLocalizedStringTransformerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__ . '/LocalizedTestCase.php'; -use Symfony\Component\Form\DataTransformer\NumberToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\NumberToLocalizedStringTransformer; class NumberToLocalizedStringTransformerTest extends LocalizedTestCase { @@ -115,7 +115,7 @@ public function testReverseTransformExpectsString() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransformExpectsValidNumber() { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/PercentToLocalizedStringTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php similarity index 95% rename from tests/Symfony/Tests/Component/Form/DataTransformer/PercentToLocalizedStringTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php index fdabe587af71..ce36a27a5f55 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/PercentToLocalizedStringTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; require_once __DIR__ . '/LocalizedTestCase.php'; -use Symfony\Component\Form\DataTransformer\PercentToLocalizedStringTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\PercentToLocalizedStringTransformer; class PercentToLocalizedStringTransformerTest extends LocalizedTestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/ScalarToChoiceTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ScalarToChoiceTransformerTest.php similarity index 89% rename from tests/Symfony/Tests/Component/Form/DataTransformer/ScalarToChoiceTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ScalarToChoiceTransformerTest.php index eebd718671bc..fcd231913a54 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/ScalarToChoiceTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ScalarToChoiceTransformerTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\ScalarToChoiceTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ScalarToChoiceTransformer; class ScalarToChoiceTransformerTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/DataTransformer/ValueToDuplicatesTransformerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformerTest.php similarity index 87% rename from tests/Symfony/Tests/Component/Form/DataTransformer/ValueToDuplicatesTransformerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformerTest.php index 3195b5d0ad28..95ccdaace15a 100644 --- a/tests/Symfony/Tests/Component/Form/DataTransformer/ValueToDuplicatesTransformerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/DataTransformer/ValueToDuplicatesTransformerTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\DataTransformer; +namespace Symfony\Tests\Component\Form\Extension\Core\DataTransformer; -use Symfony\Component\Form\DataTransformer\ValueToDuplicatesTransformer; +use Symfony\Component\Form\Extension\Core\DataTransformer\ValueToDuplicatesTransformer; class ValueToDuplicatesTransformerTest extends \PHPUnit_Framework_TestCase { @@ -78,7 +78,7 @@ public function testReverseTransform_completelyNull() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_partiallyNull() { @@ -92,7 +92,7 @@ public function testReverseTransform_partiallyNull() } /** - * @expectedException Symfony\Component\Form\DataTransformer\TransformationFailedException + * @expectedException Symfony\Component\Form\Exception\TransformationFailedException */ public function testReverseTransform_differences() { diff --git a/tests/Symfony/Tests/Component/Form/EventListener/FixUrlProtocolListenerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/FixUrlProtocolListenerTest.php similarity index 91% rename from tests/Symfony/Tests/Component/Form/EventListener/FixUrlProtocolListenerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/FixUrlProtocolListenerTest.php index 55291c2c71bb..88b5dfc85e1e 100644 --- a/tests/Symfony/Tests/Component/Form/EventListener/FixUrlProtocolListenerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/FixUrlProtocolListenerTest.php @@ -9,10 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\EventListener; +namespace Symfony\Tests\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\Event\FilterDataEvent; -use Symfony\Component\Form\EventListener\FixUrlProtocolListener; +use Symfony\Component\Form\Extension\Core\EventListener\FixUrlProtocolListener; class FixUrlProtocolListenerTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/EventListener/ResizeFormListenerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/ResizeFormListenerTest.php similarity index 98% rename from tests/Symfony/Tests/Component/Form/EventListener/ResizeFormListenerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/ResizeFormListenerTest.php index 12ca49ccd460..c4d7aadf5f36 100644 --- a/tests/Symfony/Tests/Component/Form/EventListener/ResizeFormListenerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/ResizeFormListenerTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\EventListener; +namespace Symfony\Tests\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\Event\DataEvent; use Symfony\Component\Form\Event\FilterDataEvent; -use Symfony\Component\Form\EventListener\ResizeFormListener; +use Symfony\Component\Form\Extension\Core\EventListener\ResizeFormListener; use Symfony\Component\Form\FormBuilder; class ResizeFormListenerTest extends \PHPUnit_Framework_TestCase diff --git a/tests/Symfony/Tests/Component/Form/EventListener/TrimListenerTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/TrimListenerTest.php similarity index 88% rename from tests/Symfony/Tests/Component/Form/EventListener/TrimListenerTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/TrimListenerTest.php index 1048b58c6684..d273665a94bd 100644 --- a/tests/Symfony/Tests/Component/Form/EventListener/TrimListenerTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/EventListener/TrimListenerTest.php @@ -9,10 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\EventListener; +namespace Symfony\Tests\Component\Form\Extension\Core\EventListener; use Symfony\Component\Form\Event\FilterDataEvent; -use Symfony\Component\Form\EventListener\TrimListener; +use Symfony\Component\Form\Extension\Core\EventListener\TrimListener; class TrimListenerTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/Type/CheckboxTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/CheckboxTypeTest.php similarity index 88% rename from tests/Symfony/Tests/Component/Form/Type/CheckboxTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/CheckboxTypeTest.php index 71e0b0a86b5c..e02844842474 100644 --- a/tests/Symfony/Tests/Component/Form/Type/CheckboxTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/CheckboxTypeTest.php @@ -9,11 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; -require_once __DIR__.'/TestCase.php'; - -class CheckboxTypeTest extends TestCase +class CheckboxTypeTest extends TypeTestCase { public function testPassValueToView() { diff --git a/tests/Symfony/Tests/Component/Form/Type/ChoiceTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/ChoiceTypeTest.php similarity index 98% rename from tests/Symfony/Tests/Component/Form/Type/ChoiceTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/ChoiceTypeTest.php index a67f48711e9d..adc7de5c27dc 100644 --- a/tests/Symfony/Tests/Component/Form/Type/ChoiceTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/ChoiceTypeTest.php @@ -9,14 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\ChoiceField; use Symfony\Component\Form\Exception\UnexpectedTypeException; -class ChoiceTypeTest extends TestCase +class ChoiceTypeTest extends TypeTestCase { private $choices = array( 'a' => 'Bernhard', diff --git a/tests/Symfony/Tests/Component/Form/Type/CollectionTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/CollectionTypeTest.php similarity index 97% rename from tests/Symfony/Tests/Component/Form/Type/CollectionTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/CollectionTypeTest.php index b34017df2f42..c5a7f378a315 100644 --- a/tests/Symfony/Tests/Component/Form/Type/CollectionTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/CollectionTypeTest.php @@ -9,14 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\CollectionForm; use Symfony\Component\Form\Form; -class CollectionFormTest extends TestCase +class CollectionFormTest extends TypeTestCase { public function testContainsOnlyCsrfTokenByDefault() { diff --git a/tests/Symfony/Tests/Component/Form/Type/CountryTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/CountryTypeTest.php similarity index 91% rename from tests/Symfony/Tests/Component/Form/Type/CountryTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/CountryTypeTest.php index 2bd67d76cfae..f9d92afe70ae 100644 --- a/tests/Symfony/Tests/Component/Form/Type/CountryTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/CountryTypeTest.php @@ -9,14 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\CountryField; use Symfony\Component\Form\FormView; -require_once __DIR__.'/TestCase.php'; - -class CountryTypeTest extends TestCase +class CountryTypeTest extends TypeTestCase { public function testCountriesAreSelectable() { diff --git a/tests/Symfony/Tests/Component/Form/Type/DateTimeTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTimeTypeTest.php similarity index 98% rename from tests/Symfony/Tests/Component/Form/Type/DateTimeTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTimeTypeTest.php index 48328f0651d0..ec20468fff79 100644 --- a/tests/Symfony/Tests/Component/Form/Type/DateTimeTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTimeTypeTest.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; require_once __DIR__ . '/LocalizedTestCase.php'; diff --git a/tests/Symfony/Tests/Component/Form/Type/DateTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTypeTest.php similarity index 99% rename from tests/Symfony/Tests/Component/Form/Type/DateTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTypeTest.php index 2b465fe4b1bb..bb4b09902c4f 100644 --- a/tests/Symfony/Tests/Component/Form/Type/DateTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/DateTypeTest.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; require_once __DIR__ . '/LocalizedTestCase.php'; diff --git a/tests/Symfony/Tests/Component/Form/Type/FieldTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/FieldTypeTest.php similarity index 92% rename from tests/Symfony/Tests/Component/Form/Type/FieldTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/FieldTypeTest.php index 50abc08847ac..51f357098117 100644 --- a/tests/Symfony/Tests/Component/Form/Type/FieldTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/FieldTypeTest.php @@ -9,23 +9,23 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; -require_once __DIR__ . '/TestCase.php'; -require_once __DIR__ . '/../Fixtures/Author.php'; -require_once __DIR__ . '/../Fixtures/FixedDataTransformer.php'; -require_once __DIR__ . '/../Fixtures/FixedFilterListener.php'; +require_once __DIR__ . '/TypeTestCase.php'; +require_once __DIR__ . '/../../../Fixtures/Author.php'; +require_once __DIR__ . '/../../../Fixtures/FixedDataTransformer.php'; +require_once __DIR__ . '/../../../Fixtures/FixedFilterListener.php'; -use Symfony\Component\Form\DataTransformer\DataTransformerInterface; +use Symfony\Component\Form\DataTransformerInterface; use Symfony\Component\Form\Util\PropertyPath; use Symfony\Component\Form\FormError; use Symfony\Component\Form\Form; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Tests\Component\Form\Fixtures\Author; use Symfony\Tests\Component\Form\Fixtures\FixedDataTransformer; use Symfony\Tests\Component\Form\Fixtures\FixedFilterListener; -class FieldTypeTest extends TestCase +class FieldTypeTest extends TypeTestCase { public function testGetPropertyPathDefaultPath() { diff --git a/tests/Symfony/Tests/Component/Form/Type/FileTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/FileTypeTest.php similarity index 97% rename from tests/Symfony/Tests/Component/Form/Type/FileTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/FileTypeTest.php index 899473af58b0..3f4d780292be 100644 --- a/tests/Symfony/Tests/Component/Form/Type/FileTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/FileTypeTest.php @@ -9,14 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\FileField; use Symfony\Component\HttpFoundation\File\File; -class FileTypeTest extends TestCase +class FileTypeTest extends TypeTestCase { public static $tmpFiles = array(); diff --git a/tests/Symfony/Tests/Component/Form/Type/FormTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/FormTypeTest.php similarity index 96% rename from tests/Symfony/Tests/Component/Form/Type/FormTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/FormTypeTest.php index ae6386e0a641..e0ded2a0057b 100644 --- a/tests/Symfony/Tests/Component/Form/Type/FormTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/FormTypeTest.php @@ -9,10 +9,10 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; -require_once __DIR__ . '/TestCase.php'; -require_once __DIR__ . '/../Fixtures/Author.php'; +require_once __DIR__ . '/TypeTestCase.php'; +require_once __DIR__ . '/../../../Fixtures/Author.php'; use Symfony\Component\Form\Form; use Symfony\Component\Form\FormView; @@ -21,7 +21,7 @@ use Symfony\Component\Form\DataError; use Symfony\Component\Form\HiddenField; use Symfony\Component\Form\Util\PropertyPath; -use Symfony\Component\Form\DataTransformer\CallbackTransformer; +use Symfony\Component\Form\CallbackTransformer; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\Validator\ConstraintViolation; @@ -61,7 +61,7 @@ public function setReferenceCopy($reference) } } -class FormTypeTest extends TestCase +class FormTypeTest extends TypeTestCase { public function testCsrfProtectionByDefault() { diff --git a/tests/Symfony/Tests/Component/Form/Type/IntegerTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/IntegerTypeTest.php similarity index 91% rename from tests/Symfony/Tests/Component/Form/Type/IntegerTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/IntegerTypeTest.php index 4e0bb2cc71c1..ec99fc2ec79e 100644 --- a/tests/Symfony/Tests/Component/Form/Type/IntegerTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/IntegerTypeTest.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; require_once __DIR__ . '/LocalizedTestCase.php'; diff --git a/tests/Symfony/Tests/Component/Form/Type/LanguageTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/LanguageTypeTest.php similarity index 91% rename from tests/Symfony/Tests/Component/Form/Type/LanguageTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/LanguageTypeTest.php index dc15385c8e21..70d734937159 100644 --- a/tests/Symfony/Tests/Component/Form/Type/LanguageTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/LanguageTypeTest.php @@ -9,14 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\LanguageField; use Symfony\Component\Form\FormView; -class LanguageTypeTest extends TestCase +class LanguageTypeTest extends TypeTestCase { public function testCountriesAreSelectable() { diff --git a/tests/Symfony/Tests/Component/Form/Type/LocaleTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/LocaleTypeTest.php similarity index 88% rename from tests/Symfony/Tests/Component/Form/Type/LocaleTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/LocaleTypeTest.php index d0428b2409d6..3f2a448bc49c 100644 --- a/tests/Symfony/Tests/Component/Form/Type/LocaleTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/LocaleTypeTest.php @@ -9,14 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\LocaleField; use Symfony\Component\Form\FormView; -class LocaleTypeTest extends TestCase +class LocaleTypeTest extends TypeTestCase { public function testLocalesAreSelectable() { diff --git a/tests/Symfony/Tests/Component/Form/Type/LocalizedTestCase.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/LocalizedTestCase.php similarity index 73% rename from tests/Symfony/Tests/Component/Form/Type/LocalizedTestCase.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/LocalizedTestCase.php index 42a73131c161..378a12ec0f0e 100644 --- a/tests/Symfony/Tests/Component/Form/Type/LocalizedTestCase.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/LocalizedTestCase.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; -require_once __DIR__ . '/TestCase.php'; +require_once __DIR__ . '/TypeTestCase.php'; -abstract class LocalizedTestCase extends TestCase +abstract class LocalizedTestCase extends TypeTestCase { protected function setUp() { diff --git a/tests/Symfony/Tests/Component/Form/Type/MoneyTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/MoneyTypeTest.php similarity index 90% rename from tests/Symfony/Tests/Component/Form/Type/MoneyTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/MoneyTypeTest.php index 68f9ee9e7420..8563cfd6b46e 100644 --- a/tests/Symfony/Tests/Component/Form/Type/MoneyTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/MoneyTypeTest.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; require_once __DIR__ . '/LocalizedTestCase.php'; diff --git a/tests/Symfony/Tests/Component/Form/Type/PasswordTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/PasswordTypeTest.php similarity index 89% rename from tests/Symfony/Tests/Component/Form/Type/PasswordTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/PasswordTypeTest.php index ed29c37c2794..d279a25ffe96 100644 --- a/tests/Symfony/Tests/Component/Form/Type/PasswordTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/PasswordTypeTest.php @@ -9,13 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\PasswordField; -class PasswordTypeTest extends TestCase +class PasswordTypeTest extends TypeTestCase { public function testEmptyIfNotBound() { diff --git a/tests/Symfony/Tests/Component/Form/Type/RadioTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/RadioTypeTest.php similarity index 91% rename from tests/Symfony/Tests/Component/Form/Type/RadioTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/RadioTypeTest.php index df84c6ac13c5..b8c84490f50f 100644 --- a/tests/Symfony/Tests/Component/Form/Type/RadioTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/RadioTypeTest.php @@ -9,11 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; -require_once __DIR__.'/TestCase.php'; - -class RadioTypeTest extends TestCase +class RadioTypeTest extends TypeTestCase { public function testPassValueToView() { diff --git a/tests/Symfony/Tests/Component/Form/Type/RepeatedTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/RepeatedTypeTest.php similarity index 93% rename from tests/Symfony/Tests/Component/Form/Type/RepeatedTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/RepeatedTypeTest.php index 2faf05a70104..9fa7f47cb0d2 100644 --- a/tests/Symfony/Tests/Component/Form/Type/RepeatedTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/RepeatedTypeTest.php @@ -9,14 +9,12 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\RepeatedField; use Symfony\Component\Form\Field; -class RepeatedTypeTest extends TestCase +class RepeatedTypeTest extends TypeTestCase { protected $form; diff --git a/tests/Symfony/Tests/Component/Form/Type/TimeTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TimeTypeTest.php similarity index 99% rename from tests/Symfony/Tests/Component/Form/Type/TimeTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/TimeTypeTest.php index f05669f4dc22..5146492b9503 100644 --- a/tests/Symfony/Tests/Component/Form/Type/TimeTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TimeTypeTest.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; require_once __DIR__ . '/LocalizedTestCase.php'; diff --git a/tests/Symfony/Tests/Component/Form/Type/TimezoneTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TimezoneTypeTest.php similarity index 87% rename from tests/Symfony/Tests/Component/Form/Type/TimezoneTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/TimezoneTypeTest.php index 50c76220dac9..5275dc100347 100644 --- a/tests/Symfony/Tests/Component/Form/Type/TimezoneTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TimezoneTypeTest.php @@ -9,13 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; - -require_once __DIR__.'/TestCase.php'; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\TimezoneField; -class TimezoneTypeTest extends TestCase +class TimezoneTypeTest extends TypeTestCase { public function testTimezonesAreSelectable() { diff --git a/tests/Symfony/Tests/Component/Form/Type/TestCase.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TypeTestCase.php similarity index 65% rename from tests/Symfony/Tests/Component/Form/Type/TestCase.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/TypeTestCase.php index 527ed6f10d26..e96ac838c9d7 100644 --- a/tests/Symfony/Tests/Component/Form/Type/TestCase.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/TypeTestCase.php @@ -9,15 +9,15 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormFactory; -use Symfony\Component\Form\Type\Loader\DefaultTypeLoader; -use Symfony\Component\Form\Type\Loader\TypeLoaderChain; +use Symfony\Component\Form\Extension\Core\CoreExtension; +use Symfony\Component\Form\Extension\Csrf\CsrfExtension; use Symfony\Component\EventDispatcher\EventDispatcher; -abstract class TestCase extends \PHPUnit_Framework_TestCase +abstract class TypeTestCase extends \PHPUnit_Framework_TestCase { protected $csrfProvider; @@ -35,29 +35,22 @@ abstract class TestCase extends \PHPUnit_Framework_TestCase protected function setUp() { - $this->csrfProvider = $this->getMock('Symfony\Component\Form\CsrfProvider\CsrfProviderInterface'); + $this->csrfProvider = $this->getMock('Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface'); $this->validator = $this->getMock('Symfony\Component\Validator\ValidatorInterface'); $this->dispatcher = $this->getMock('Symfony\Component\EventDispatcher\EventDispatcherInterface'); - $this->storage = $this->getMockBuilder('Symfony\Component\HttpFoundation\File\TemporaryStorage') ->disableOriginalConstructor() ->getMock(); - - $this->typeLoader = new TypeLoaderChain(); - - // TODO should be passed to chain constructor instead - foreach ($this->getTypeLoaders() as $loader) { - $this->typeLoader->addLoader($loader); - } - - $this->factory = new FormFactory($this->typeLoader); - + $this->factory = new FormFactory($this->getExtensions()); $this->builder = new FormBuilder(null, $this->factory, $this->dispatcher); } - protected function getTypeLoaders() + protected function getExtensions() { - return array(new DefaultTypeLoader($this->validator, $this->csrfProvider, $this->storage)); + return array( + new CoreExtension($this->validator, $this->storage), + new CsrfExtension($this->csrfProvider), + ); } public static function assertDateTimeEquals(\DateTime $expected, \DateTime $actual) diff --git a/tests/Symfony/Tests/Component/Form/Type/UrlTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/UrlTypeTest.php similarity index 96% rename from tests/Symfony/Tests/Component/Form/Type/UrlTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Type/UrlTypeTest.php index 52e6b100d4a3..8542cff8c2ff 100644 --- a/tests/Symfony/Tests/Component/Form/Type/UrlTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Type/UrlTypeTest.php @@ -9,7 +9,7 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Core\Type; require_once __DIR__ . '/LocalizedTestCase.php'; diff --git a/tests/Symfony/Tests/Component/Form/Validator/DelegatingValidatorTest.php b/tests/Symfony/Tests/Component/Form/Extension/Core/Validator/DelegatingValidatorTest.php similarity index 98% rename from tests/Symfony/Tests/Component/Form/Validator/DelegatingValidatorTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Core/Validator/DelegatingValidatorTest.php index 56381ecd6ece..c0d62febf5a8 100644 --- a/tests/Symfony/Tests/Component/Form/Validator/DelegatingValidatorTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Core/Validator/DelegatingValidatorTest.php @@ -9,13 +9,13 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Validator; +namespace Symfony\Tests\Component\Form\Extension\Core\Validator; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormError; use Symfony\Component\Form\Util\PropertyPath; -use Symfony\Component\Form\Validator\DelegatingValidator; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; +use Symfony\Component\Form\Extension\Core\Validator\DelegatingValidator; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\Validator\ConstraintViolation; use Symfony\Component\Validator\ExecutionContext; @@ -59,7 +59,7 @@ protected function getMockMetadataFactory() protected function getMockTransformer() { - return $this->getMock('Symfony\Component\Form\DataTransformer\DataTransformerInterface', array(), array(), '', false, false); + return $this->getMock('Symfony\Component\Form\DataTransformerInterface', array(), array(), '', false, false); } protected function getConstraintViolation($propertyPath) diff --git a/tests/Symfony/Tests/Component/Form/CsrfProvider/DefaultCsrfProviderTest.php b/tests/Symfony/Tests/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProviderTest.php similarity index 88% rename from tests/Symfony/Tests/Component/Form/CsrfProvider/DefaultCsrfProviderTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProviderTest.php index b38c34434764..fcefffa6764b 100644 --- a/tests/Symfony/Tests/Component/Form/CsrfProvider/DefaultCsrfProviderTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Csrf/CsrfProvider/DefaultCsrfProviderTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\CsrfProvider; +namespace Symfony\Tests\Component\Form\Extension\Csrf\CsrfProvider; -use Symfony\Component\Form\CsrfProvider\DefaultCsrfProvider; +use Symfony\Component\Form\Extension\Csrf\CsrfProvider\DefaultCsrfProvider; class DefaultCsrfProviderTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/CsrfProvider/SessionCsrfProviderTest.php b/tests/Symfony/Tests/Component/Form/Extension/Csrf/CsrfProvider/SessionCsrfProviderTest.php similarity index 92% rename from tests/Symfony/Tests/Component/Form/CsrfProvider/SessionCsrfProviderTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Csrf/CsrfProvider/SessionCsrfProviderTest.php index 115fb73a6e34..a7f7e6bb3841 100644 --- a/tests/Symfony/Tests/Component/Form/CsrfProvider/SessionCsrfProviderTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Csrf/CsrfProvider/SessionCsrfProviderTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\CsrfProvider; +namespace Symfony\Tests\Component\Form\Extension\Csrf\CsrfProvider; -use Symfony\Component\Form\CsrfProvider\SessionCsrfProvider; +use Symfony\Component\Form\Extension\Csrf\CsrfProvider\SessionCsrfProvider; class SessionCsrfProviderTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/Symfony/Tests/Component/Form/Type/CsrfTypeTest.php b/tests/Symfony/Tests/Component/Form/Extension/Csrf/Type/CsrfTypeTest.php similarity index 93% rename from tests/Symfony/Tests/Component/Form/Type/CsrfTypeTest.php rename to tests/Symfony/Tests/Component/Form/Extension/Csrf/Type/CsrfTypeTest.php index d84ba1827965..38c0e804a644 100644 --- a/tests/Symfony/Tests/Component/Form/Type/CsrfTypeTest.php +++ b/tests/Symfony/Tests/Component/Form/Extension/Csrf/Type/CsrfTypeTest.php @@ -9,11 +9,11 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type; +namespace Symfony\Tests\Component\Form\Extension\Csrf\Type; -require_once __DIR__.'/TestCase.php'; +use Symfony\Tests\Component\Form\Extension\Core\Type\TypeTestCase; -class CsrfTypeTest extends TestCase +class CsrfTypeTest extends TypeTestCase { protected $provider; @@ -21,7 +21,7 @@ protected function setUp() { parent::setUp(); - $this->provider = $this->getMock('Symfony\Component\Form\CsrfProvider\CsrfProviderInterface'); + $this->provider = $this->getMock('Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface'); } protected function getNonRootForm() diff --git a/tests/Symfony/Tests/Component/Form/Fixtures/FixedDataTransformer.php b/tests/Symfony/Tests/Component/Form/Fixtures/FixedDataTransformer.php index 9d156ddd99f5..6008e3770c41 100644 --- a/tests/Symfony/Tests/Component/Form/Fixtures/FixedDataTransformer.php +++ b/tests/Symfony/Tests/Component/Form/Fixtures/FixedDataTransformer.php @@ -2,7 +2,7 @@ namespace Symfony\Tests\Component\Form\Fixtures; -use Symfony\Component\Form\DataTransformer\DataTransformerInterface; +use Symfony\Component\Form\DataTransformerInterface; class FixedDataTransformer implements DataTransformerInterface { diff --git a/tests/Symfony/Tests/Component/Form/FormBuilderTest.php b/tests/Symfony/Tests/Component/Form/FormBuilderTest.php index 26b249091355..9c7349df8734 100644 --- a/tests/Symfony/Tests/Component/Form/FormBuilderTest.php +++ b/tests/Symfony/Tests/Component/Form/FormBuilderTest.php @@ -13,9 +13,9 @@ use Symfony\Component\Form\FormFactory; use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\Type\Guesser\Guess; -use Symfony\Component\Form\Type\Guesser\ValueGuess; -use Symfony\Component\Form\Type\Guesser\TypeGuess; +use Symfony\Component\Form\Guess\Guess; +use Symfony\Component\Form\Guess\ValueGuess; +use Symfony\Component\Form\Guess\TypeGuess; class FormBuilderTest extends \PHPUnit_Framework_TestCase { @@ -78,7 +78,7 @@ public function testAdd() public function testAddFormType() { $this->assertFalse($this->builder->has('foo')); - $this->builder->add('foo', $this->getMock('Symfony\Component\Form\Type\FormTypeInterface')); + $this->builder->add('foo', $this->getMock('Symfony\Component\Form\FormTypeInterface')); $this->assertTrue($this->builder->has('foo')); } diff --git a/tests/Symfony/Tests/Component/Form/FormFactoryTest.php b/tests/Symfony/Tests/Component/Form/FormFactoryTest.php index eb0b88fec0ad..dac741f8801d 100644 --- a/tests/Symfony/Tests/Component/Form/FormFactoryTest.php +++ b/tests/Symfony/Tests/Component/Form/FormFactoryTest.php @@ -12,26 +12,40 @@ namespace Symfony\Tests\Component\Form; use Symfony\Component\Form\FormFactory; -use Symfony\Component\Form\Type\Guesser\Guess; -use Symfony\Component\Form\Type\Guesser\ValueGuess; -use Symfony\Component\Form\Type\Guesser\TypeGuess; +use Symfony\Component\Form\Guess\Guess; +use Symfony\Component\Form\Guess\ValueGuess; +use Symfony\Component\Form\Guess\TypeGuess; class FormFactoryTest extends \PHPUnit_Framework_TestCase { - private $typeLoader; + private $extension1; + + private $extension2; + + private $guesser1; + + private $guesser2; private $factory; protected function setUp() { - $this->typeLoader = $this->getMock('Symfony\Component\Form\Type\Loader\TypeLoaderInterface'); - $this->factory = new FormFactory($this->typeLoader); + $this->guesser1 = $this->getMock('Symfony\Component\Form\FormTypeGuesserInterface'); + $this->guesser2 = $this->getMock('Symfony\Component\Form\FormTypeGuesserInterface'); + $this->extension1 = $this->getMock('Symfony\Component\Form\FormExtensionInterface'); + $this->extension1->expects($this->any()) + ->method('getTypeGuesser') + ->will($this->returnValue($this->guesser1)); + $this->extension2 = $this->getMock('Symfony\Component\Form\FormExtensionInterface'); + $this->extension2->expects($this->any()) + ->method('getTypeGuesser') + ->will($this->returnValue($this->guesser2)); + $this->factory = new FormFactory(array($this->extension1, $this->extension2)); } public function testCreateBuilderForPropertyCreatesFieldWithHighestConfidence() { - $guesser1 = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser1->expects($this->once()) + $this->guesser1->expects($this->once()) ->method('guessType') ->with('Application\Author', 'firstName') ->will($this->returnValue(new TypeGuess( @@ -40,8 +54,7 @@ public function testCreateBuilderForPropertyCreatesFieldWithHighestConfidence() Guess::MEDIUM_CONFIDENCE ))); - $guesser2 = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser2->expects($this->once()) + $this->guesser2->expects($this->once()) ->method('guessType') ->with('Application\Author', 'firstName') ->will($this->returnValue(new TypeGuess( @@ -50,7 +63,7 @@ public function testCreateBuilderForPropertyCreatesFieldWithHighestConfidence() Guess::HIGH_CONFIDENCE ))); - $factory = $this->createMockFactory(array('createNamedBuilder'), array($guesser1, $guesser2)); + $factory = $this->createMockFactory(array('createNamedBuilder')); $factory->expects($this->once()) ->method('createNamedBuilder') @@ -64,13 +77,12 @@ public function testCreateBuilderForPropertyCreatesFieldWithHighestConfidence() public function testCreateBuilderCreatesTextFieldIfNoGuess() { - $guesser = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser->expects($this->once()) + $this->guesser1->expects($this->once()) ->method('guessType') ->with('Application\Author', 'firstName') ->will($this->returnValue(null)); - $factory = $this->createMockFactory(array('createNamedBuilder'), array($guesser)); + $factory = $this->createMockFactory(array('createNamedBuilder')); $factory->expects($this->once()) ->method('createNamedBuilder') @@ -84,8 +96,7 @@ public function testCreateBuilderCreatesTextFieldIfNoGuess() public function testOptionsCanBeOverridden() { - $guesser = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser->expects($this->once()) + $this->guesser1->expects($this->once()) ->method('guessType') ->with('Application\Author', 'firstName') ->will($this->returnValue(new TypeGuess( @@ -94,7 +105,7 @@ public function testOptionsCanBeOverridden() Guess::MEDIUM_CONFIDENCE ))); - $factory = $this->createMockFactory(array('createNamedBuilder'), array($guesser)); + $factory = $this->createMockFactory(array('createNamedBuilder')); $factory->expects($this->once()) ->method('createNamedBuilder') @@ -113,8 +124,7 @@ public function testOptionsCanBeOverridden() public function testCreateBuilderUsesMaxLengthIfFound() { - $guesser1 = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser1->expects($this->once()) + $this->guesser1->expects($this->once()) ->method('guessMaxLength') ->with('Application\Author', 'firstName') ->will($this->returnValue(new ValueGuess( @@ -122,8 +132,7 @@ public function testCreateBuilderUsesMaxLengthIfFound() Guess::MEDIUM_CONFIDENCE ))); - $guesser2 = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser2->expects($this->once()) + $this->guesser2->expects($this->once()) ->method('guessMaxLength') ->with('Application\Author', 'firstName') ->will($this->returnValue(new ValueGuess( @@ -131,7 +140,7 @@ public function testCreateBuilderUsesMaxLengthIfFound() Guess::HIGH_CONFIDENCE ))); - $factory = $this->createMockFactory(array('createNamedBuilder'), array($guesser1, $guesser2)); + $factory = $this->createMockFactory(array('createNamedBuilder')); $factory->expects($this->once()) ->method('createNamedBuilder') @@ -148,8 +157,7 @@ public function testCreateBuilderUsesMaxLengthIfFound() public function testCreateBuilderUsesRequiredSettingWithHighestConfidence() { - $guesser1 = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser1->expects($this->once()) + $this->guesser1->expects($this->once()) ->method('guessRequired') ->with('Application\Author', 'firstName') ->will($this->returnValue(new ValueGuess( @@ -157,8 +165,7 @@ public function testCreateBuilderUsesRequiredSettingWithHighestConfidence() Guess::MEDIUM_CONFIDENCE ))); - $guesser2 = $this->getMock('Symfony\Component\Form\Type\Guesser\TypeGuesserInterface'); - $guesser2->expects($this->once()) + $this->guesser2->expects($this->once()) ->method('guessRequired') ->with('Application\Author', 'firstName') ->will($this->returnValue(new ValueGuess( @@ -166,7 +173,7 @@ public function testCreateBuilderUsesRequiredSettingWithHighestConfidence() Guess::HIGH_CONFIDENCE ))); - $factory = $this->createMockFactory(array('createNamedBuilder'), array($guesser1, $guesser2)); + $factory = $this->createMockFactory(array('createNamedBuilder')); $factory->expects($this->once()) ->method('createNamedBuilder') @@ -181,11 +188,11 @@ public function testCreateBuilderUsesRequiredSettingWithHighestConfidence() $this->assertEquals('builderInstance', $builder); } - private function createMockFactory(array $methods = array(), array $guessers = array()) + private function createMockFactory(array $methods = array()) { return $this->getMockBuilder('Symfony\Component\Form\FormFactory') ->setMethods($methods) - ->setConstructorArgs(array($this->typeLoader, $guessers)) + ->setConstructorArgs(array(array($this->extension1, $this->extension2))) ->getMock(); } } diff --git a/tests/Symfony/Tests/Component/Form/FormTest.php b/tests/Symfony/Tests/Component/Form/FormTest.php index 7796f6057adc..eb4e1f334eb6 100644 --- a/tests/Symfony/Tests/Component/Form/FormTest.php +++ b/tests/Symfony/Tests/Component/Form/FormTest.php @@ -18,7 +18,7 @@ use Symfony\Component\Form\FormView; use Symfony\Component\Form\FormBuilder; use Symfony\Component\Form\FormError; -use Symfony\Component\Form\DataTransformer\TransformationFailedException; +use Symfony\Component\Form\Exception\TransformationFailedException; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\EventDispatcher\EventDispatcher; @@ -868,8 +868,8 @@ public function testBindResetsErrors() public function testCreateView() { $test = $this; - $type1 = $this->getMock('Symfony\Component\Form\Type\FormTypeInterface'); - $type2 = $this->getMock('Symfony\Component\Form\Type\FormTypeInterface'); + $type1 = $this->getMock('Symfony\Component\Form\FormTypeInterface'); + $type2 = $this->getMock('Symfony\Component\Form\FormTypeInterface'); $calls = array(); $type1->expects($this->once()) @@ -966,16 +966,16 @@ protected function getInvalidForm($name) protected function getDataMapper() { - return $this->getMock('Symfony\Component\Form\DataMapper\DataMapperInterface'); + return $this->getMock('Symfony\Component\Form\DataMapperInterface'); } protected function getDataTransformer() { - return $this->getMock('Symfony\Component\Form\DataTransformer\DataTransformerInterface'); + return $this->getMock('Symfony\Component\Form\DataTransformerInterface'); } protected function getFormValidator() { - return $this->getMock('Symfony\Component\Form\Validator\FormValidatorInterface'); + return $this->getMock('Symfony\Component\Form\FormValidatorInterface'); } } \ No newline at end of file diff --git a/tests/Symfony/Tests/Component/Form/Type/Guesser/GuessTest.php b/tests/Symfony/Tests/Component/Form/Guess/GuessTest.php similarity index 89% rename from tests/Symfony/Tests/Component/Form/Type/Guesser/GuessTest.php rename to tests/Symfony/Tests/Component/Form/Guess/GuessTest.php index 584d06b88c28..1e6b95bf8d15 100644 --- a/tests/Symfony/Tests/Component/Form/Type/Guesser/GuessTest.php +++ b/tests/Symfony/Tests/Component/Form/Guess/GuessTest.php @@ -9,9 +9,9 @@ * file that was distributed with this source code. */ -namespace Symfony\Tests\Component\Form\Type\Guesser; +namespace Symfony\Tests\Component\Form\Guess; -use Symfony\Component\Form\Type\Guesser\Guess; +use Symfony\Component\Form\Guess\Guess; class TestGuess extends Guess {} diff --git a/tests/Symfony/Tests/Component/Form/Type/Loader/ArrayTypeLoaderTest.php b/tests/Symfony/Tests/Component/Form/Type/Loader/ArrayTypeLoaderTest.php deleted file mode 100644 index b66cf992e500..000000000000 --- a/tests/Symfony/Tests/Component/Form/Type/Loader/ArrayTypeLoaderTest.php +++ /dev/null @@ -1,43 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Tests\Component\Form\Type\Loader; - -use Symfony\Component\Form\FormBuilder; -use Symfony\Component\Form\Type\FormTypeInterface; -use Symfony\Component\Form\Type\Loader\ArrayTypeLoader; - -class ArrayTypeLoaderTest extends \PHPUnit_Framework_TestCase -{ - public function testHasType() - { - $type = $this->getMock('Symfony\Component\Form\Type\FormTypeInterface'); - $type->expects($this->once()) - ->method('getName') - ->will($this->returnValue('foo')); - - $loader = new ArrayTypeLoader(array($type)); - $this->assertTrue($loader->hasType('foo')); - $this->assertFalse($loader->hasType('bar')); - } - - public function testGetType() - { - $type = $this->getMock('Symfony\Component\Form\Type\FormTypeInterface'); - $type->expects($this->once()) - ->method('getName') - ->will($this->returnValue('foo')); - - $loader = new ArrayTypeLoader(array($type)); - $this->assertSame($type, $loader->getType('foo')); - $this->assertSame($loader->getType('foo'), $loader->getType('foo')); - } -} \ No newline at end of file