From a868048a829bf0f4f045369254048d63e48b807c Mon Sep 17 00:00:00 2001 From: Bernhard Schussek Date: Wed, 17 Apr 2013 18:02:12 +0200 Subject: [PATCH] [Validator] Moved constraints Optional and Required to the Constraints\ namespace --- UPGRADE-3.0.md | 34 +++++++++++++++++++ src/Symfony/Component/Validator/CHANGELOG.md | 7 ++++ .../Component/Validator/Constraints/All.php | 2 ++ .../Component/Validator/Constraints/Blank.php | 2 ++ .../Validator/Constraints/Callback.php | 2 ++ .../Validator/Constraints/Choice.php | 2 ++ .../Validator/Constraints/Collection.php | 6 ++-- .../Constraints/Collection/Optional.php | 15 ++++---- .../Constraints/Collection/Required.php | 15 ++++---- .../Constraints/CollectionValidator.php | 2 +- .../Component/Validator/Constraints/Count.php | 2 ++ .../Validator/Constraints/Country.php | 2 ++ .../Component/Validator/Constraints/Date.php | 2 ++ .../Validator/Constraints/DateTime.php | 2 ++ .../Component/Validator/Constraints/Email.php | 2 ++ .../Validator/Constraints/Existence.php | 27 +++++++++++++++ .../Component/Validator/Constraints/False.php | 2 ++ .../Component/Validator/Constraints/File.php | 2 ++ .../Validator/Constraints/GroupSequence.php | 1 + .../Component/Validator/Constraints/Ip.php | 1 + .../Validator/Constraints/Language.php | 2 ++ .../Validator/Constraints/Length.php | 2 ++ .../Validator/Constraints/Locale.php | 2 ++ .../Validator/Constraints/NotBlank.php | 2 ++ .../Constraints/NotBlankValidator.php | 2 ++ .../Validator/Constraints/NotNull.php | 2 ++ .../Component/Validator/Constraints/Null.php | 2 ++ .../Validator/Constraints/Optional.php | 21 ++++++++++++ .../Component/Validator/Constraints/Range.php | 2 ++ .../Component/Validator/Constraints/Regex.php | 2 ++ .../Validator/Constraints/Required.php | 21 ++++++++++++ .../Component/Validator/Constraints/Time.php | 2 ++ .../Component/Validator/Constraints/True.php | 2 ++ .../Component/Validator/Constraints/Type.php | 2 ++ .../Component/Validator/Constraints/Url.php | 2 ++ .../Component/Validator/Constraints/Valid.php | 2 ++ .../Tests/Constraints/CollectionTest.php | 4 +-- .../Constraints/CollectionValidatorTest.php | 5 ++- 38 files changed, 185 insertions(+), 24 deletions(-) create mode 100644 src/Symfony/Component/Validator/Constraints/Existence.php create mode 100644 src/Symfony/Component/Validator/Constraints/Optional.php create mode 100644 src/Symfony/Component/Validator/Constraints/Required.php diff --git a/UPGRADE-3.0.md b/UPGRADE-3.0.md index 50120a3611..ad7d5faa93 100644 --- a/UPGRADE-3.0.md +++ b/UPGRADE-3.0.md @@ -113,3 +113,37 @@ UPGRADE FROM 2.x to 3.0 ``` Yaml::parse(file_get_contents($fileName)); ``` + +### Validator + + * The constraints `Optional` and `Required` were moved to the + `Symfony\Component\Validator\Constraints\` namespace. You should adapt + the path wherever you used them. + + Before: + + ``` + use Symfony\Component\Validator\Constraints as Assert; + + /** + * @Assert\Collection({ + * "foo" = @Assert\Collection\Required(), + * "bar" = @Assert\Collection\Optional(), + * }) + */ + private $property; + ``` + + After: + + ``` + use Symfony\Component\Validator\Constraints as Assert; + + /** + * @Assert\Collection({ + * "foo" = @Assert\Required(), + * "bar" = @Assert\Optional(), + * }) + */ + private $property; + ``` diff --git a/src/Symfony/Component/Validator/CHANGELOG.md b/src/Symfony/Component/Validator/CHANGELOG.md index fa26425aef..b6e27b8337 100644 --- a/src/Symfony/Component/Validator/CHANGELOG.md +++ b/src/Symfony/Component/Validator/CHANGELOG.md @@ -1,6 +1,13 @@ CHANGELOG ========= +2.3.0 +----- + + * copied the constraints `Optional` and `Required` to the + `Symfony\Component\Validator\Constraints\` namespace and deprecated the original + classes. + 2.2.0 ----- diff --git a/src/Symfony/Component/Validator/Constraints/All.php b/src/Symfony/Component/Validator/Constraints/All.php index 80c336e3ef..537168625c 100644 --- a/src/Symfony/Component/Validator/Constraints/All.php +++ b/src/Symfony/Component/Validator/Constraints/All.php @@ -17,6 +17,8 @@ use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class All extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Blank.php b/src/Symfony/Component/Validator/Constraints/Blank.php index b6db62a796..509479d5e6 100644 --- a/src/Symfony/Component/Validator/Constraints/Blank.php +++ b/src/Symfony/Component/Validator/Constraints/Blank.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Blank extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Callback.php b/src/Symfony/Component/Validator/Constraints/Callback.php index 4470b7093b..e93efa4b99 100644 --- a/src/Symfony/Component/Validator/Constraints/Callback.php +++ b/src/Symfony/Component/Validator/Constraints/Callback.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Callback extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Choice.php b/src/Symfony/Component/Validator/Constraints/Choice.php index 70d6fd4da9..50508aeed2 100644 --- a/src/Symfony/Component/Validator/Constraints/Choice.php +++ b/src/Symfony/Component/Validator/Constraints/Choice.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Choice extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Collection.php b/src/Symfony/Component/Validator/Constraints/Collection.php index 6e537e8d60..956c14ac48 100644 --- a/src/Symfony/Component/Validator/Constraints/Collection.php +++ b/src/Symfony/Component/Validator/Constraints/Collection.php @@ -12,13 +12,15 @@ namespace Symfony\Component\Validator\Constraints; use Symfony\Component\Validator\Constraint; -use Symfony\Component\Validator\Constraints\Collection\Required; -use Symfony\Component\Validator\Constraints\Collection\Optional; +use Symfony\Component\Validator\Constraints\Required; +use Symfony\Component\Validator\Constraints\Optional; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Collection extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Collection/Optional.php b/src/Symfony/Component/Validator/Constraints/Collection/Optional.php index 8d4c7746db..904d62e08f 100644 --- a/src/Symfony/Component/Validator/Constraints/Collection/Optional.php +++ b/src/Symfony/Component/Validator/Constraints/Collection/Optional.php @@ -11,17 +11,16 @@ namespace Symfony\Component\Validator\Constraints\Collection; -use Symfony\Component\Validator\Constraint; +use Symfony\Component\Validator\Constraints\Optional as BaseOptional; /** * @Annotation + * + * @author Bernhard Schussek + * + * @deprecated Deprecated in 2.3, to be removed in 3.0. Use + * {@link \Symfony\Component\Validator\Constraints\Optional} instead. */ -class Optional extends Constraint +class Optional extends BaseOptional { - public $constraints = array(); - - public function getDefaultOption() - { - return 'constraints'; - } } diff --git a/src/Symfony/Component/Validator/Constraints/Collection/Required.php b/src/Symfony/Component/Validator/Constraints/Collection/Required.php index 5dda7434dc..51af2de09c 100644 --- a/src/Symfony/Component/Validator/Constraints/Collection/Required.php +++ b/src/Symfony/Component/Validator/Constraints/Collection/Required.php @@ -11,17 +11,16 @@ namespace Symfony\Component\Validator\Constraints\Collection; -use Symfony\Component\Validator\Constraint; +use Symfony\Component\Validator\Constraints\Required as BaseRequired; /** * @Annotation + * + * @author Bernhard Schussek + * + * @deprecated Deprecated in 2.3, to be removed in 3.0. Use + * {@link \Symfony\Component\Validator\Constraints\Required} instead. */ -class Required extends Constraint +class Required extends BaseRequired { - public $constraints = array(); - - public function getDefaultOption() - { - return 'constraints'; - } } diff --git a/src/Symfony/Component/Validator/Constraints/CollectionValidator.php b/src/Symfony/Component/Validator/Constraints/CollectionValidator.php index 9249b70531..f59afe79ee 100644 --- a/src/Symfony/Component/Validator/Constraints/CollectionValidator.php +++ b/src/Symfony/Component/Validator/Constraints/CollectionValidator.php @@ -14,7 +14,7 @@ namespace Symfony\Component\Validator\Constraints; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; use Symfony\Component\Validator\Exception\UnexpectedTypeException; -use Symfony\Component\Validator\Constraints\Collection\Optional; +use Symfony\Component\Validator\Constraints\Optional; /** * @author Bernhard Schussek diff --git a/src/Symfony/Component/Validator/Constraints/Count.php b/src/Symfony/Component/Validator/Constraints/Count.php index e441073260..4a233c19f6 100644 --- a/src/Symfony/Component/Validator/Constraints/Count.php +++ b/src/Symfony/Component/Validator/Constraints/Count.php @@ -17,6 +17,8 @@ use Symfony\Component\Validator\Exception\MissingOptionsException; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Count extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Country.php b/src/Symfony/Component/Validator/Constraints/Country.php index 5e81df4534..81fa7e05fd 100644 --- a/src/Symfony/Component/Validator/Constraints/Country.php +++ b/src/Symfony/Component/Validator/Constraints/Country.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Country extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Date.php b/src/Symfony/Component/Validator/Constraints/Date.php index c34851e286..f9923052e0 100644 --- a/src/Symfony/Component/Validator/Constraints/Date.php +++ b/src/Symfony/Component/Validator/Constraints/Date.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Date extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/DateTime.php b/src/Symfony/Component/Validator/Constraints/DateTime.php index a2059b03e9..0618bc9b99 100644 --- a/src/Symfony/Component/Validator/Constraints/DateTime.php +++ b/src/Symfony/Component/Validator/Constraints/DateTime.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class DateTime extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Email.php b/src/Symfony/Component/Validator/Constraints/Email.php index db250dfc4d..581dfb985f 100644 --- a/src/Symfony/Component/Validator/Constraints/Email.php +++ b/src/Symfony/Component/Validator/Constraints/Email.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Email extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Existence.php b/src/Symfony/Component/Validator/Constraints/Existence.php new file mode 100644 index 0000000000..dbe122b77a --- /dev/null +++ b/src/Symfony/Component/Validator/Constraints/Existence.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Validator\Constraints; + +use Symfony\Component\Validator\Constraint; + +/** + * @author Bernhard Schussek + */ +abstract class Existence extends Constraint +{ + public $constraints = array(); + + public function getDefaultOption() + { + return 'constraints'; + } +} diff --git a/src/Symfony/Component/Validator/Constraints/False.php b/src/Symfony/Component/Validator/Constraints/False.php index 1a1f1636f3..fec54456fb 100644 --- a/src/Symfony/Component/Validator/Constraints/False.php +++ b/src/Symfony/Component/Validator/Constraints/False.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class False extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/File.php b/src/Symfony/Component/Validator/Constraints/File.php index 49880ad679..9144c60472 100644 --- a/src/Symfony/Component/Validator/Constraints/File.php +++ b/src/Symfony/Component/Validator/Constraints/File.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class File extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/GroupSequence.php b/src/Symfony/Component/Validator/Constraints/GroupSequence.php index c19f5f8848..304fab8c94 100644 --- a/src/Symfony/Component/Validator/Constraints/GroupSequence.php +++ b/src/Symfony/Component/Validator/Constraints/GroupSequence.php @@ -15,6 +15,7 @@ namespace Symfony\Component\Validator\Constraints; * Annotation for group sequences * * @Annotation + * * @author Bernhard Schussek * * @api diff --git a/src/Symfony/Component/Validator/Constraints/Ip.php b/src/Symfony/Component/Validator/Constraints/Ip.php index 1698d1154c..099f2aabd7 100644 --- a/src/Symfony/Component/Validator/Constraints/Ip.php +++ b/src/Symfony/Component/Validator/Constraints/Ip.php @@ -18,6 +18,7 @@ use Symfony\Component\Validator\Constraint; * Validates that a value is a valid IP address * * @Annotation + * * @author Bernhard Schussek * @author Joseph Bielawski * diff --git a/src/Symfony/Component/Validator/Constraints/Language.php b/src/Symfony/Component/Validator/Constraints/Language.php index a0a099bac7..d14bcd922b 100644 --- a/src/Symfony/Component/Validator/Constraints/Language.php +++ b/src/Symfony/Component/Validator/Constraints/Language.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Language extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Length.php b/src/Symfony/Component/Validator/Constraints/Length.php index 9419490b87..84c7303e22 100644 --- a/src/Symfony/Component/Validator/Constraints/Length.php +++ b/src/Symfony/Component/Validator/Constraints/Length.php @@ -17,6 +17,8 @@ use Symfony\Component\Validator\Exception\MissingOptionsException; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Length extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Locale.php b/src/Symfony/Component/Validator/Constraints/Locale.php index 9a9025e361..9cdd7880d0 100644 --- a/src/Symfony/Component/Validator/Constraints/Locale.php +++ b/src/Symfony/Component/Validator/Constraints/Locale.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Locale extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/NotBlank.php b/src/Symfony/Component/Validator/Constraints/NotBlank.php index c3281ad715..4365ca298a 100644 --- a/src/Symfony/Component/Validator/Constraints/NotBlank.php +++ b/src/Symfony/Component/Validator/Constraints/NotBlank.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class NotBlank extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/NotBlankValidator.php b/src/Symfony/Component/Validator/Constraints/NotBlankValidator.php index dd3dbdd849..8d3efae0d5 100644 --- a/src/Symfony/Component/Validator/Constraints/NotBlankValidator.php +++ b/src/Symfony/Component/Validator/Constraints/NotBlankValidator.php @@ -15,6 +15,8 @@ use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; /** + * @author Bernhard Schussek + * * @author Bernhard Schussek * * @api diff --git a/src/Symfony/Component/Validator/Constraints/NotNull.php b/src/Symfony/Component/Validator/Constraints/NotNull.php index 2608ab3c0f..6b1c7c0836 100644 --- a/src/Symfony/Component/Validator/Constraints/NotNull.php +++ b/src/Symfony/Component/Validator/Constraints/NotNull.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class NotNull extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Null.php b/src/Symfony/Component/Validator/Constraints/Null.php index e110bf8549..e0a00221d1 100644 --- a/src/Symfony/Component/Validator/Constraints/Null.php +++ b/src/Symfony/Component/Validator/Constraints/Null.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Null extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Optional.php b/src/Symfony/Component/Validator/Constraints/Optional.php new file mode 100644 index 0000000000..3f286e6340 --- /dev/null +++ b/src/Symfony/Component/Validator/Constraints/Optional.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Validator\Constraints; + +/** + * @Annotation + * + * @author Bernhard Schussek + */ +class Optional extends Existence +{ +} diff --git a/src/Symfony/Component/Validator/Constraints/Range.php b/src/Symfony/Component/Validator/Constraints/Range.php index a3ead32634..e705175521 100644 --- a/src/Symfony/Component/Validator/Constraints/Range.php +++ b/src/Symfony/Component/Validator/Constraints/Range.php @@ -17,6 +17,8 @@ use Symfony\Component\Validator\Exception\MissingOptionsException; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Range extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Regex.php b/src/Symfony/Component/Validator/Constraints/Regex.php index 6ed380c23f..beec99b1d1 100644 --- a/src/Symfony/Component/Validator/Constraints/Regex.php +++ b/src/Symfony/Component/Validator/Constraints/Regex.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Regex extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Required.php b/src/Symfony/Component/Validator/Constraints/Required.php new file mode 100644 index 0000000000..609fffd841 --- /dev/null +++ b/src/Symfony/Component/Validator/Constraints/Required.php @@ -0,0 +1,21 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Validator\Constraints; + +/** + * @Annotation + * + * @author Bernhard Schussek + */ +class Required extends Existence +{ +} diff --git a/src/Symfony/Component/Validator/Constraints/Time.php b/src/Symfony/Component/Validator/Constraints/Time.php index 3ff8a50b18..e7982ac6d6 100644 --- a/src/Symfony/Component/Validator/Constraints/Time.php +++ b/src/Symfony/Component/Validator/Constraints/Time.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Time extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/True.php b/src/Symfony/Component/Validator/Constraints/True.php index a5bfc85832..9e1d994ba2 100644 --- a/src/Symfony/Component/Validator/Constraints/True.php +++ b/src/Symfony/Component/Validator/Constraints/True.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class True extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Type.php b/src/Symfony/Component/Validator/Constraints/Type.php index 11dec3c983..cdcc10c91a 100644 --- a/src/Symfony/Component/Validator/Constraints/Type.php +++ b/src/Symfony/Component/Validator/Constraints/Type.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Type extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Url.php b/src/Symfony/Component/Validator/Constraints/Url.php index 4b4e96cdc5..3585e1b018 100644 --- a/src/Symfony/Component/Validator/Constraints/Url.php +++ b/src/Symfony/Component/Validator/Constraints/Url.php @@ -16,6 +16,8 @@ use Symfony\Component\Validator\Constraint; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Url extends Constraint diff --git a/src/Symfony/Component/Validator/Constraints/Valid.php b/src/Symfony/Component/Validator/Constraints/Valid.php index 38b4c1fa2d..ab4676d3df 100644 --- a/src/Symfony/Component/Validator/Constraints/Valid.php +++ b/src/Symfony/Component/Validator/Constraints/Valid.php @@ -17,6 +17,8 @@ use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * @Annotation * + * @author Bernhard Schussek + * * @api */ class Valid extends Constraint diff --git a/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php b/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php index a0e121bba9..e7fed4bf7f 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php @@ -12,8 +12,8 @@ namespace Symfony\Component\Validator\Tests\Constraints; use Symfony\Component\Validator\Constraints\Collection; -use Symfony\Component\Validator\Constraints\Collection\Required; -use Symfony\Component\Validator\Constraints\Collection\Optional; +use Symfony\Component\Validator\Constraints\Required; +use Symfony\Component\Validator\Constraints\Optional; use Symfony\Component\Validator\Constraints\Valid; /** diff --git a/src/Symfony/Component/Validator/Tests/Constraints/CollectionValidatorTest.php b/src/Symfony/Component/Validator/Tests/Constraints/CollectionValidatorTest.php index 2593ee91cd..4a13234b69 100644 --- a/src/Symfony/Component/Validator/Tests/Constraints/CollectionValidatorTest.php +++ b/src/Symfony/Component/Validator/Tests/Constraints/CollectionValidatorTest.php @@ -11,11 +11,10 @@ namespace Symfony\Component\Validator\Tests\Constraints; -use Symfony\Component\Validator\ExecutionContext; use Symfony\Component\Validator\Constraints\Range; use Symfony\Component\Validator\Constraints\NotNull; -use Symfony\Component\Validator\Constraints\Collection\Required; -use Symfony\Component\Validator\Constraints\Collection\Optional; +use Symfony\Component\Validator\Constraints\Required; +use Symfony\Component\Validator\Constraints\Optional; use Symfony\Component\Validator\Constraints\Collection; use Symfony\Component\Validator\Constraints\CollectionValidator;