This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/UPGRADE-3.1.md
Fabien Potencier 813e61a03d feature #17553 [Validator] Added a format option to the DateTime constraint. (dosten)
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.
2016-03-01 08:25:10 +01:00

126 lines
3.2 KiB
Markdown

UPGRADE FROM 3.0 to 3.1
=======================
DependencyInjection
-------------------
* Using unsupported configuration keys in YAML configuration files has been
deprecated and will raise an exception in Symfony 4.0.
* Using unsupported options to configure service aliases has been deprecated
and will raise an exception in Symfony 4.0.
Form
----
* The `choices_as_values` option of the `ChoiceType` has been deprecated and
will be removed in Symfony 4.0.
* Support for data objects that implements both `Traversable` and `ArrayAccess`
in `ResizeFormListener::preSubmit` method has been deprecated and will be
removed in Symfony 4.0.
HttpKernel
----------
* Passing objects as URI attributes to the ESI and SSI renderers has been
deprecated and will be removed in Symfony 4.0. The inline fragment
renderer should be used with object attributes.
Serializer
----------
* Passing a Doctrine `Cache` instance to the `ClassMetadataFactory` has been
deprecated and will not be supported in Symfony 4.0. You should use the
`CacheClassMetadataFactory` class instead.
Yaml
----
* Deprecated usage of `%` at the beginning of an unquoted string.
* The `Dumper::setIndentation()` method is deprecated and will be removed in
Symfony 4.0. Pass the indentation level to the constructor instead.
* Deprecated support for passing `true`/`false` as the second argument to the
`parse()` method to trigger exceptions when an invalid type was passed.
Before:
```php
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', true);
```
After:
```php
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE);
```
* Deprecated support for passing `true`/`false` as the third argument to the
`parse()` method to toggle object support.
Before:
```php
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', false, true);
```
After:
```php
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_OBJECT);
```
* Deprecated support for passing `true`/`false` as the fourth argument to the
`parse()` method to parse objects as maps.
Before:
```php
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', false, false, true);
```
After:
```php
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_OBJECT_FOR_MAP);
```
* Deprecated support for passing `true`/`false` as the fourth argument to the
`dump()` method to trigger exceptions when an invalid type was passed.
Before:
```php
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, true);
```
After:
```php
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE);
```
* Deprecated support for passing `true`/`false` as the fifth argument to the `dump()` method to toggle object support.
Before:
```php
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, true);
```
After:
```php
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, Yaml::DUMP_OBJECT);
```
* The `!!php/object` tag to indicate dumped PHP objects has been deprecated
and will be removed in Symfony 4.0. Use the `!php/object` tag instead.
Validator
---------
* The `DateTimeValidator::PATTERN` constant is deprecated and will be removed in
Symfony 4.0.