* 2.7:
[DependencyInjection] use/fix newest Definition::setFactory
fixed unit tests
[2.7] print deprecation summary at end of tests
[Bridge] [Propel] minor improvements to the Propel bridge.
[FrameworkBundle] Allow custom services for validator mapping cache.
This PR was merged into the 2.5 branch.
Discussion
----------
[FrameworkBundle] Allow custom services for validator mapping cache.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12803
| License | MIT
| Doc PR | -
#9892 introduced `DoctrineCache`, but it's not really used by the FrameworkBundle. This was overlooked, therefore I think it should go into 2.5.
This PR will let us to configure a service id, instead of a driver name. The only exception is apc, which is converted to `validator.mapping.cache.apc` to keep BC.
Examples:
```yaml
framework:
validation:
cache: apc # converted to validator.mapping.cache.apc
```
```yaml
framework:
validation:
cache: my_custom_cache_service
```
It would be nice to be able to provide a doctrine service id, instead of `CacheInterface` implementation. It could be automatically decorated with `DoctrineCache`:
```yaml
framework:
validation:
cache:
doctrine: my_doctrine_cache_service # could be provided by DoctrineCacheBundle
```
I'll work on it next.
Commits
-------
4cdcf10 [FrameworkBundle] Allow custom services for validator mapping cache.
This PR was merged into the 2.7 branch.
Discussion
----------
[2.7] Print deprecation summary at end of tests
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #12973
| License | MIT
| Doc PR | -
This will show deprecations in the logs of the tests, but still allow them to be green.
This is not done on each component on purpose.
This is the first step to make 2.7 free from any deprecation notice.
Next steps are:
1. remove all deprecation warnings that are related to 2.7 *wrongly* using deprecated interfaces. That will still leave notices related to BC layers.
2. isolate all tests related to BC layers in their own "Legacy"-prefixed test classes.
3. switch `off` then `on` again deprecations using `error_reporting` in setUp/tearDown for each of these legacy- test classes
4. revert this PR and put back error_reporting to E_ALL in every phpunit.xml.dist file
This process will:
- make tests green again,
- ensure over time that "pure" 2.7 API does not rely on deprecated one
- ensure over time that the 2.7 BC-layer keeps working
Commits
-------
f268cbd [2.7] print deprecation summary at end of tests
This PR was merged into the 2.3 branch.
Discussion
----------
[2.3] [Bridge] [Propel] minor improvements to the Propel bridge.
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
Commits
-------
6d9d460 [Bridge] [Propel] minor improvements to the Propel bridge.
* 2.7:
Add LegacyPdoSessionHandler class
fix dependency on ExtensionInterface over implementation
[Console] Remove $this in closure
[FrameworkBundle] forward error reporting level to insulated Client
[VarDumper] fix and test PdoCaster
[Config] fix error handler restoration in test
* 2.6:
Add LegacyPdoSessionHandler class
fix dependency on ExtensionInterface over implementation
[FrameworkBundle] forward error reporting level to insulated Client
[VarDumper] fix and test PdoCaster
[Config] fix error handler restoration in test
* 2.5:
fix dependency on ExtensionInterface over implementation
[FrameworkBundle] forward error reporting level to insulated Client
[Config] fix error handler restoration in test
This PR was submitted for the 2.7 branch but it was merged into the 2.6 branch instead (closes#13068).
Discussion
----------
Add LegacyPdoSessionHandler class
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #12833
| License | MIT
| Doc PR | N/A
Fix for #12994 on the 2.7 branch.
The changes made to the PdoSessionHandler in 2.6 introduced a
backwards-compatability break for users upgrading from 2.5. This update
introduces a LegacyPdoSessionHandler class that uses the old service's
functionality.
Users who cannot make schema updates or do not want to lose sessions can
use LegacyPdoSessionHandler until 3.0.
Commits
-------
3bd1616 Add LegacyPdoSessionHandler class
The changes made to the PdoSessionHandler in 2.6 introduced a
backwards-compatability break for users upgrading from 2.5. This update
introduces a LegacyPdoSessionHandler class that uses the old service's
functionality.
Users who cannot make schema updates or do not want to lose sessions can
use LegacyPdoSessionHandler until 3.0.
This PR was merged into the 2.3 branch.
Discussion
----------
[Config] fix error handler restoration in test
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
266afeb [Config] fix error handler restoration in test
This PR was merged into the 2.6 branch.
Discussion
----------
[VarDumper] fix and test PdoCaster
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #13042
| License | MIT
| Doc PR | -
Commits
-------
0b1be13 [VarDumper] fix and test PdoCaster
This PR was merged into the 2.5 branch.
Discussion
----------
[FrameworkBundle] Fix dependency on ExtensionInterface over implementation
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no (but anyway, they didn't pass previously)
| Fixed tickets | #13084
| License | MIT
When implementing `ExtensionInterface` through classes not inheriting the core `Extension`, the command `config:dump` throws.
This bug was introduced in 2.5 and could be fixed up to 2.7 with the same patch.
Commits
-------
5e1a5f7 fix dependency on ExtensionInterface over implementation
This PR was merged into the 2.7 branch.
Discussion
----------
[Console] Remove $this in closure
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ~
| License | MIT
| Doc PR | ~
Removed the call to the method ``checkMultipleResults`` as in PHP 5.3 it breaks and inlined it as the method is used only once.
Commits
-------
de0fe5d [Console] Remove $this in closure
This PR was merged into the 2.3 branch.
Discussion
----------
[FrameworkBundle] forward error reporting level to insulated Client
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Especially if deprecation notices are silenced on the main php instance, we should also silence them in the insulated Client
Commits
-------
d82e062 [FrameworkBundle] forward error reporting level to insulated Client
* 2.7:
[2.3] CS And DocBlock Fixes
[Serializer] Serialization groups support
[2.3] CS Fixes
Fixed the issue 11116
[Security] Fixed tests
[Debug] use ternary operator to simplify the getClassLoader() method in DebugClassLoader class.
[FrameworkBundle] Fixed Translation loader and update translation command.
[Console] remove « use » statement for PHP built-in exception classes.
[SecurityBundle] replaced deprecated SecurityContextInterface dependency by new TokenStorageInterface instance in SecurityDataCollector. Also added unit tests suite for SecurityDataCollector class.
[SecurityBundle] use TokenStorageInterface instead of deprecated SecurityContextInterface in SecurityDataCollector and added unit tests suite.
[SecurityBundle] adds unit tests suite for SecurityDataCollector class.
[Serializer] Add xml_format_output context option. Close#12517.
[WebProfilerBundle] Fixed IE8 support
This PR was squashed before being merged into the 2.3 branch (closes#13066).
Discussion
----------
[2.3] CS And DocBlock Fixes
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
##### This pull request provides some cs and docblock fixes.
@fabpot The second commit of the two applies the docblock fixes you wanted, using https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/887. I made 3 or 4 minor manual changes because people had put bulleted lists in the "short description" which is not allowed, so we were ending up with colons followed by full stops. I've moved those lists to be part of a "long description".
// cc @keradus
Commits
-------
83c15db [2.3] CS And DocBlock Fixes
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes#12092).
Discussion
----------
[Serializer] Serialization groups support
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
| Doc PR | symfony/symfony-docs#4675
This PR is a first attempt adding serialization groups to the `Serializer` component. Btw, it also add supports of ignored attributes for denormalization (only normalization is currently supported).
Groups support is totally optional and is not enabled by default (in that case, the `Serializer` will have the current behavior). No BC spotted for now.
To use it:
```php
use Symfony\Component\Serializer\Annotation\Groups;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer;
use Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader;
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory;
class MyObj
{
/**
* @Groups({"group1", "group2"})
*/
public $foo;
/**
* @Groups({"group3"})
*/
public $bar;
}
$obj = new MyObj();
$obj->foo = 'foo';
$obj->bar = 'bar';
$classMetadataFactory = new ClassMetadataFactory(new AnnotationLoader(new AnnotationReader()));
$normalizer = new PropertyNormalizer($classMetadataFactory);
$serializer = new Serializer([$normalizer]);
$data = $serializer->normalize($obj, null, ['groups' => ['group1']]);
// $data = ['foo' => 'foo'];
$obj2 = $serializer->denormalize(['foo' => 'foo', 'bar' => 'bar'], 'MyObj', null, ['groups' => ['group1', 'group3']);
// $obj2 = MyObj(foo: 'foo', bar: 'bar')
```
Some work still need to be done:
- [x] Add XML mapping
- [x] Add YAML mapping
- [x] Refactor tests
The `ClassMetadata` code is largely inspired from the code of the `Validator` component. Duplicated code in `PropertyNormalizer` and `GetSetMethodNormalizer` has been moved in a new `AbstractNormalizer` class.
This PR also make the interface of `PropertyNormalizer` fluent (like the current behavior of `GetSetMethodNormalizer`.
Commits
-------
57a191b [Serializer] Serialization groups support
This PR was squashed before being merged into the 3.0-dev branch (closes#12994).
Discussion
----------
Add LegacyPdoSessionHandler class
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #12833
| License | MIT
| Doc PR | N/A
The changes made to the PdoSessionHandler in 2.6 introduced a
backwards-compatability break for users upgrading from 2.5. This update
introduces a LegacyPdoSessionHandler class that uses the old service's
functionality.
Users who cannot make schema updates or do not want to lose sessions can
use LegacyPdoSessionHandler until 3.0.
Commits
-------
22b183c Add LegacyPdoSessionHandler class
This PR was squashed before being merged into the 3.0-dev branch (closes#12994).
Discussion
----------
Add LegacyPdoSessionHandler class
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #12833
| License | MIT
| Doc PR | N/A
The changes made to the PdoSessionHandler in 2.6 introduced a
backwards-compatability break for users upgrading from 2.5. This update
introduces a LegacyPdoSessionHandler class that uses the old service's
functionality.
Users who cannot make schema updates or do not want to lose sessions can
use LegacyPdoSessionHandler until 3.0.
Commits
-------
20cb713 Add LegacyPdoSessionHandler class