This PR was merged into the 3.1-dev branch.
Discussion
----------
[Validator] Added a format option to the DateTime constraint.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #14521
| License | MIT
This PR adds a `format` option to the `DateTime` constraint, this allows to validate dates in custom formats, for example:
```php
use Symfony\Component\Validator\Constraints\DateTime;
use Symfony\Component\Validator\Validation;
$validator = Validation::createValidator();
$validator->validate('December 31, 1999', new DateTime(['format' => 'F d, Y']));
$validator->validate('01:02:03', new DateTime(['format' => 'H:i:s']));
$validator->validate('2010/01/01 01:02', new DateTime(['format' => 'Y/m/d H:i']));
```
As you can see this new option allows to use the `DateTime` constraint to validate dates and times, so, maybe the `Date` and `Time` constraints can be deprecated in this PR.
Commits
-------
9e94c9f
Added a format option to the DateTime constraint.
2.9 KiB
UPGRADE FROM 3.x to 4.0
DependencyInjection
-
Using unsupported configuration keys in YAML configuration files raises an exception.
-
Using unsupported options to configure service aliases raises an exception.
Form
- The
choices_as_values
option of theChoiceType
has been removed. - Support for data objects that implements both
Traversable
andArrayAccess
inResizeFormListener::preSubmit
method has been removed
HttpKernel
- Possibility to pass objects as URI attributes to the ESI and SSI renderers has been removed. The inline fragment renderer should be used with object attributes.
Serializer
- The ability to pass a Doctrine
Cache
instance to theClassMetadataFactory
class has been removed. You should use theCacheClassMetadataFactory
class instead.
Yaml
-
Starting an unquoted string with
%
leads to aParseException
. -
The
Dumper::setIndentation()
method was removed. Pass the indentation level to the constructor instead. -
Removed support for passing
true
/false
as the second argument to theparse()
method to trigger exceptions when an invalid type was passed.Before:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', true);
After:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE);
-
Removed support for passing
true
/false
as the third argument to theparse()
method to toggle object support.Before:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', false, true);
After:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_OBJECT);
-
Removed support for passing
true
/false
as the fourth argument to theparse()
method to parse objects as maps.Before:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', false, false, true);
After:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_OBJECT_FOR_MAP);
-
Removed support for passing
true
/false
as the fourth argument to thedump()
method to trigger exceptions when an invalid type was passed.Before:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, true);
After:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE);
-
Removed support for passing
true
/false
as the fifth argument to thedump()
method to toggle object support.Before:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, true);
After:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, Yaml::DUMP_OBJECT);
-
The
!!php/object
tag to indicate dumped PHP objects was removed in favor of the!php/object
tag.
Validator
- The
DateTimeValidator::PATTERN
constant was removed.