7 * added support for validation groups to the `Valid` constraint
8 * not setting the `strict` option of the `Choice` constraint to `true` is
9 deprecated and will throw an exception in Symfony 4.0
10 * setting the `checkDNS` option of the `Url` constraint to `true` is deprecated in favor of
11 the `Url::CHECK_DNS_TYPE_*` constants values and will throw an exception in Symfony 4.0
12 * added min/max amount of pixels check to `Image` constraint via `minPixels` and `maxPixels`
13 * added a new "propertyPath" option to comparison constraints in order to get the value to compare from an array or object
18 * added `AddValidatorInitializersPass`
19 * added `AddConstraintValidatorsPass`
20 * added `ContainerConstraintValidatorFactory`
25 * deprecated `Tests\Constraints\AbstractContraintValidatorTest` in favor of `Test\ConstraintValidatorTestCase`
26 * added support for PHP constants in YAML configuration files
31 * deprecated `DateTimeValidator::PATTERN` constant
32 * added a `format` option to the `DateTime` constraint
37 * added the BIC (SWIFT-Code) validator
42 * deprecated `DefaultTranslator` in favor of `Symfony\Component\Translation\IdentityTranslator`
43 * deprecated PHP7-incompatible constraints (Null, True, False) and related validators (NullValidator, TrueValidator, FalseValidator) in favor of their `Is`-prefixed equivalent
48 * [BC BREAK] `FileValidator` disallow empty files
49 * [BC BREAK] `UserPasswordValidator` source message change
50 * [BC BREAK] added internal `ExecutionContextInterface::setConstraint()`
51 * added `ConstraintViolation::getConstraint()`
52 * [BC BREAK] The `ExpressionValidator` will now evaluate the Expression even when the property value is null or an empty string
53 * deprecated `ClassMetadata::hasMemberMetadatas()`
54 * deprecated `ClassMetadata::getMemberMetadatas()`
55 * deprecated `ClassMetadata::addMemberMetadata()`
56 * [BC BREAK] added `Mapping\MetadataInterface::getConstraints()`
57 * added generic "payload" option to all constraints for attaching domain-specific data
58 * [BC BREAK] added `ConstraintViolationBuilderInterface::setCause()`
63 * deprecated `ApcCache` in favor of `DoctrineCache`
64 * added `DoctrineCache` to adapt any Doctrine cache
65 * `GroupSequence` now implements `ArrayAccess`, `Countable` and `Traversable`
66 * [BC BREAK] changed `ClassMetadata::getGroupSequence()` to return a `GroupSequence` instance instead of an array
67 * `Callback` can now be put onto properties (useful when you pass a closure to the constraint)
68 * deprecated `ClassBasedInterface`
69 * deprecated `MetadataInterface`
70 * deprecated `PropertyMetadataInterface`
71 * deprecated `PropertyMetadataContainerInterface`
72 * deprecated `Mapping\ElementMetadata`
73 * added `Mapping\MetadataInterface`
74 * added `Mapping\ClassMetadataInterface`
75 * added `Mapping\PropertyMetadataInterface`
76 * added `Mapping\GenericMetadata`
77 * added `Mapping\CascadingStrategy`
78 * added `Mapping\TraversalStrategy`
79 * deprecated `Mapping\ClassMetadata::accept()`
80 * deprecated `Mapping\MemberMetadata::accept()`
81 * removed array type hint of `Mapping\ClassMetadata::setGroupSequence()`
82 * deprecated `MetadataFactoryInterface`
83 * deprecated `Mapping\BlackholeMetadataFactory`
84 * deprecated `Mapping\ClassMetadataFactory`
85 * added `Mapping\Factory\MetadataFactoryInterface`
86 * added `Mapping\Factory\BlackHoleMetadataFactory`
87 * added `Mapping\Factory\LazyLoadingMetadataFactory`
88 * deprecated `ExecutionContextInterface`
89 * deprecated `ExecutionContext`
90 * deprecated `GlobalExecutionContextInterface`
91 * added `Context\ExecutionContextInterface`
92 * added `Context\ExecutionContext`
93 * added `Context\ExecutionContextFactoryInterface`
94 * added `Context\ExecutionContextFactory`
95 * deprecated `ValidatorInterface`
96 * deprecated `Validator`
97 * deprecated `ValidationVisitorInterface`
98 * deprecated `ValidationVisitor`
99 * added `Validator\ValidatorInterface`
100 * added `Validator\RecursiveValidator`
101 * added `Validator\ContextualValidatorInterface`
102 * added `Validator\RecursiveContextualValidator`
103 * added `Violation\ConstraintViolationBuilderInterface`
104 * added `Violation\ConstraintViolationBuilder`
105 * added `ConstraintViolation::getParameters()`
106 * added `ConstraintViolation::getPlural()`
107 * added `Constraints\Traverse`
108 * deprecated `$deep` property in `Constraints\Valid`
109 * added `ValidatorBuilderInterface::setApiVersion()`
110 * added `Validation::API_VERSION_2_4`
111 * added `Validation::API_VERSION_2_5`
112 * added `Exception\OutOfBoundsException`
113 * added `Exception\UnsupportedMetadataException`
114 * made `Exception\ValidatorException` extend `Exception\RuntimeException`
115 * added `Util\PropertyPath`
116 * made the PropertyAccess component an optional dependency
117 * deprecated `ValidatorBuilder::setPropertyAccessor()`
118 * deprecated `validate` and `validateValue` on `Validator\Context\ExecutionContext` use `getValidator()` together with `inContext()` instead
123 * added a constraint the uses the expression language
124 * added `minRatio`, `maxRatio`, `allowSquare`, `allowLandscape`, and `allowPortrait` to Image validator
129 * fixed compatibility with PHP7 and up by introducing new constraints (IsNull, IsTrue, IsFalse) and related validators (IsNullValidator, IsTrueValidator, IsFalseValidator)
134 * added the ISBN, ISSN, and IBAN validators
135 * copied the constraints `Optional` and `Required` to the
136 `Symfony\Component\Validator\Constraints\` namespace and deprecated the original
138 * added comparison validators (EqualTo, NotEqualTo, LessThan, LessThanOrEqualTo, GreaterThan, GreaterThanOrEqualTo, IdenticalTo, NotIdenticalTo)
143 * added a CardScheme validator
144 * added a Luhn validator
145 * moved @api-tags from `Validator` to `ValidatorInterface`
146 * moved @api-tags from `ConstraintViolation` to the new `ConstraintViolationInterface`
147 * moved @api-tags from `ConstraintViolationList` to the new `ConstraintViolationListInterface`
148 * moved @api-tags from `ExecutionContext` to the new `ExecutionContextInterface`
149 * [BC BREAK] `ConstraintValidatorInterface::initialize` is now type hinted against `ExecutionContextInterface` instead of `ExecutionContext`
150 * [BC BREAK] changed the visibility of the properties in `Validator` from protected to private
151 * deprecated `ClassMetadataFactoryInterface` in favor of the new `MetadataFactoryInterface`
152 * deprecated `ClassMetadataFactory::getClassMetadata` in favor of `getMetadataFor`
153 * created `MetadataInterface`, `PropertyMetadataInterface`, `ClassBasedInterface` and `PropertyMetadataContainerInterface`
154 * deprecated `GraphWalker` in favor of the new `ValidationVisitorInterface`
155 * deprecated `ExecutionContext::addViolationAtPath`
156 * deprecated `ExecutionContext::addViolationAtSubPath` in favor of `ExecutionContextInterface::addViolationAt`
157 * deprecated `ExecutionContext::getCurrentClass` in favor of `ExecutionContextInterface::getClassName`
158 * deprecated `ExecutionContext::getCurrentProperty` in favor of `ExecutionContextInterface::getPropertyName`
159 * deprecated `ExecutionContext::getCurrentValue` in favor of `ExecutionContextInterface::getValue`
160 * deprecated `ExecutionContext::getGraphWalker` in favor of `ExecutionContextInterface::validate` and `ExecutionContextInterface::validateValue`
161 * improved `ValidatorInterface::validateValue` to accept arrays of constraints
162 * changed `ValidatorInterface::getMetadataFactory` to return a `MetadataFactoryInterface` instead of a `ClassMetadataFactoryInterface`
163 * removed `ClassMetadataFactoryInterface` type hint from `ValidatorBuilderInterface::setMetadataFactory`.
164 As of Symfony 2.3, this method will be typed against `MetadataFactoryInterface` instead.
165 * [BC BREAK] the switches `traverse` and `deep` in the `Valid` constraint and in `GraphWalker::walkReference`
166 are ignored for arrays now. Arrays are always traversed recursively.
167 * added dependency to Translation component
168 * violation messages are now translated with a TranslatorInterface implementation
169 * [BC BREAK] inserted argument `$message` in the constructor of `ConstraintViolation`
170 * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `ExecutionContext`
171 * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `GraphWalker`
172 * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `ValidationVisitor`
173 * [BC BREAK] inserted arguments `$translator` and `$translationDomain` in the constructor of `Validator`
174 * [BC BREAK] added `setTranslator()` and `setTranslationDomain()` to `ValidatorBuilderInterface`
175 * improved the Validator to support pluralized messages by default
176 * [BC BREAK] changed the source of all pluralized messages in the translation files to the pluralized version
177 * added ExceptionInterface, BadMethodCallException and InvalidArgumentException
182 * added support for `ctype_*` assertions in `TypeValidator`
183 * improved the ImageValidator with min width, max width, min height, and max height constraints
184 * added support for MIME with wildcard in FileValidator
185 * changed Collection validator to add "missing" and "extra" errors to
187 * changed default value for `extraFieldsMessage` and `missingFieldsMessage`
188 in Collection constraint
189 * made ExecutionContext immutable
190 * deprecated Constraint methods `setMessage`, `getMessageTemplate` and
191 `getMessageParameters`
192 * added support for dynamic group sequences with the GroupSequenceProvider pattern
193 * [BC BREAK] ConstraintValidatorInterface method `isValid` has been renamed to
194 `validate`, its return value was dropped. ConstraintValidator still contains
196 * [BC BREAK] collections in fields annotated with `Valid` are not traversed
197 recursively anymore by default. `Valid` contains a new property `deep`
198 which enables the BC behavior.
199 * added Count constraint
200 * added Length constraint
201 * added Range constraint
202 * deprecated the Min and Max constraints
203 * deprecated the MinLength and MaxLength constraints
204 * added Validation and ValidatorBuilderInterface
205 * deprecated ValidatorContext, ValidatorContextInterface and ValidatorFactory