This PR was merged into the 3.1-dev branch.
Discussion
----------
[Cache] Use generator in ArrayAdapter
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #17435
| License | MIT
| Doc PR | -
Commits
-------
367e784 [Cache] Use generator in ArrayAdapter
This PR was squashed before being merged into the 3.1-dev branch (closes#16164).
Discussion
----------
[Serializer] Add a data: URI normalizer
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | not yet
A new normalizer to transform `\SplFileInfo`, `\SplFileObject` and `\Symfony\Component\HttpFoundation\File\File` to [`data:` URI](https://en.wikipedia.org/wiki/Data_URI_scheme) and the opposite.
It's convenient when dealing with the JavaScript `FileReader` API.
Usage:
```php
$normalizer = new DataUriNormalizer();
echo $normalizer->normalize(new File(__DIR__.'/test.gif'));
// data:image/gif;base64,R0lGODdhAQABAIAAAP///////ywAAAAAAQABAAACAkQBADs=
echo $normalizer->normalize(new File(__DIR__.'/test.txt'));
// data:text/plain,K%C3%A9vin%20Dunglas%0A
var_dump($normalizer->denormalize('data:image/gif;base64,R0lGODdhAQABAIAAAP///////ywAAAAAAQABAAACAkQBADs=', 'SplFileObject');
// a SplFileObject (also supports HttpFoundation file if the composant is installed)
```
cc @clementtalleu
Commits
-------
cc7b5af [Serializer] Add a data: URI normalizer
This PR was submitted for the 2.8 branch but it was merged into the 3.1-dev branch instead (closes#15279).
Discussion
----------
Added {{ value }} message placeholder to UniqueEntityValidator
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15268
| License | MIT
| Doc PR | -
Apologize if I missed something. This is my first contribution to a large scale project.
Commits
-------
9cf1ce9 Added {{ value }} message placeholder to UniqueEntityValidator
This PR was submitted for the 2.8 branch but it was merged into the 3.1-dev branch instead (closes#16652).
Discussion
----------
[console] Add truncate method to FormatterHelper
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #11977
| License | MIT
| Doc PR | -
This PR adds a `truncate` method to `FormatterHelper`.
Message is truncated to the given length, then the suffix is appended to end of that string.
If the length is negative, number of letters to truncate is counted from the end of the message.
Suffix is always appended, unless truncate length is longer than message and suffix length.
Commits
-------
a16b1a0 [console] Add truncate method to FormatterHelper
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Cache] Allow and use generators in AbstractAdapter
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
The most important enhancement is allowing doFetch to return a generator, which wasn't possible before.
The other changes add strictness.
Commits
-------
0ba851a [Cache] Allow and use generators in AbstractAdapter
This PR was submitted for the 2.8 branch but it was merged into the 3.1-dev branch instead (closes#16635).
Discussion
----------
[Security] add USERNAME_NONE_PROVIDED constant
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | no
| License | MIT
| Doc PR | no
I think that is better if we use a constant to define this string.
Commits
-------
3f60598 [Security] add USERNAME_NONE_PROVIDED constant
This PR was submitted for the 2.8 branch but it was merged into the 3.1-dev branch instead (closes#17111).
Discussion
----------
[HttpKernel] added a setter for the headers property in the HttpException
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR | symfony/symfony-docs#6076
Added this setter, because it's now impossible to use those handy, meaningful, already implemented exceptions (like NotFound...) if one wants to set some custom headers. This PR solves this problem.
It's a backward compatible solution in this way, but maybe it would be better if the `HttpExceptionInterface` would contain the `setHeaders` function as well. Of course this would be a BC break, that's why it is missing now.
TODO:
- [x] submit changes to the documentation
Commits
-------
6a1080f [HttpKernel] added a setter for the headers property in the HttpException
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Process] Allow a callback whenever the output is disabled
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | Related to #17390
| License | MIT
This was not allowed in the past. However, it's possible with these changes
Commits
-------
02f0fc7 [Process] Allow a callback whenever the output is disabled
This PR was merged into the 3.1-dev branch.
Discussion
----------
Allows access to payload in callback validator
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #15092
| License | MIT
| Doc PR | none
Commits
-------
26cd91d allows access to payload in callback validator
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Profiler] make it possible to omit the link var
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Currently, when you do not want to have a section in the web profiler,
you would have to explicitly pass `false` as value for the `link`
variable. With this change you can omit it when including the toolbar
item template.
Commits
-------
c430a47 [Profiler] make it possible to omit the link var
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Serializer] Add a new DateTime normalizer
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | todo
This PR add support for dates and times to the Normalizer component. It supports all date and time formats supported by PHP. Dates and times are normalized in the RFC 3339 format by default. The output format can be customized using the `$context` parameter. The default format can be changed using a constructor parameter.
Usage:
```php
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
use Symfony\Component\Serializer\Serializer;
$serializer = new Serializer(array(new DateTimeNormalizer()));
echo $serializer->normalize(new \DateTimeImmutable('2016/01/01'));
// 2016-01-01T00:00:00+00:00
echo $serializer->normalize(new \DateTime('2016/01/01'));
// 2016-01-01T00:00:00+00:00
echo $serializer->normalize(new \DateTime('2016/01/01'), null, array(DateTimeNormalizer::FORMAT_KEY => 'Y'))
// 2016
var_dump($serializer->denormalize('2016-01-01T00:00:00+00:00', \DateTimeInterface::class));
// class DateTimeImmutable#1 (3) {
// public $date =>
// string(26) "2016-01-01 00:00:00.000000"
// public $timezone_type =>
// int(1)
// public $timezone =>
// string(6) "+00:00"
// }
var_dump($serializer->denormalize('2016-01-01T00:00:00+00:00', \DateTime::class));
// class DateTime#1 (3) {
// public $date =>
// string(26) "2016-01-01 00:00:00.000000"
// public $timezone_type =>
// int(1)
// public $timezone =>
// string(6) "+00:00"
// }
```
Commits
-------
6749a70 [Serializer] Add a new DateTime normalizer
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Yaml] deprecate parsing the !!php/object tag
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #16877
| License | MIT
| Doc PR |
Commits
-------
3380346 [Yaml] deprecate parsing the !!php/object tag
f146c8d tag for dumped PHP objects must be a local one
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Form] Make tests compatible with master
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
I wrote tests in this PR: #17406 which was compatible only with 2.7. @xabbuh fixed it in 2.8 and 3.0 here: #17463. And this PR fixes deprecated notices in master.
Kind of an unfortunate situation...
Commits
-------
96e40b2 Fix unit tests in master
This PR was merged into the 2.8 branch.
Discussion
----------
[FrameworkBundle][Validator] Fix apc cache service deprecation
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Related to #16795
I guess the deprecation was on the wrong service.
Also, no deprecation notice was triggered about using `"apc"` as the value of the `framework.validation.cache` configuration option. This PR adds the missing deprecation.
> 📝 _NOTE_: The standard edition will need to be updated [here](https://github.com/symfony/symfony-standard/blob/2.8/app/config/config_prod.yml#L6).
Commits
-------
907bbec [FrameworkBundle][Validator] Fix apc cache service deprecation
This PR was merged into the 2.8 branch.
Discussion
----------
[Form] make tests compatible with Symfony 2.8 and 3.0
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
4d2930e make tests compatible with Symfony 2.8 and 3.0
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes#17456).
Discussion
----------
[DX] Remove default match from AbstractConfigCommand::findExtension
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | none
Previously, `findExtension` would return the first extension that might not even match the `$name` parameter, which would quite confuse the user:
```
$ app/console config:debug TotallyNonExistentBundle
# Current configuration for "TotallyNonExistentBundle"
knp_paginator:
default_options:
sort_field_name: sort
sort_direction_name: direction
filter_field_name: filterField
filter_value_name: filterValue
page_name: page
distinct: true
template:
pagination: 'KnpPaginatorBundle:Pagination:sliding.html.twig'
filtration: 'KnpPaginatorBundle:Pagination:filtration.html.twig'
sortable: 'KnpPaginatorBundle:Pagination:sortable_link.html.twig'
page_range: 5
```
Same problem goes for the `config:dump` command. When you dumped the config for a bundle you thought you've registered, but, for example, you'd use a name that's not exactly matching, you'd get confusing output for a different bundle's configuration.
The problem was, an `Extension` [was always fetched in the finder method](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Command/AbstractConfigCommand.php#L51), and name/alias misses were ignored.
Commits
-------
b85059a Remove default match from AbstractConfigCommand::findExtension