* 3.1: (24 commits)
[Yaml] fix exception contexts
Added people - person inflection
People - person singularization
[Yaml] properly handle unindented collections
[Serializer] Add test for ignored attributes during denormalization
chomp newlines only at the end of YAML documents
Fixed server status command when port has been omitted
Update UPGRADE FROM 2.x to 3.0
[Config] Allow schemed path in FileResource
fix removed commands wording in upgrade file
Catch \Throwable
Catch \Throwable
[DependencyInjection] Avoid generating call_user_func in more cases
[Validator] Support for DateTimeImmutable
[YAML] fixed "dump" signature in upgrade file
[Cache] Rename nonce to version
[FrameworkBundle] update upgrade instructions
Use levenshtein level for better Bundle matching
[WebProfilerBundle] Fix CORS ajax security issues
remove methods that were needed for PHP 5.3
...
This PR was merged into the 3.1-dev branch.
Discussion
----------
[FrameworkBundle] Default to Apcu+Filesystem cache chain
| Q | A
| ------------- | ---
| Branch? | 3.1
| Bug fix? | yes (perf)
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
In #16838, @dunglas benched that the filesystem cache is not the fastest one (not a surprise).
Yet, it is the default for now. I propose to replace this default by a dynamically created one that uses APCu when available (of course, we cannot do the check at container-build time), chained with the filesystem.
The benefit is double: APCu is automatically used when available without any configuration, and cache warming up is seeded by the filesystem cache so that the apcu cache can benefit from it.
Commits
-------
b9b57f9 [FrameworkBundle] Default to Apcu+Filesystem cache chain
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Cache] Clean RedisAdapter pipelining + FilesystemAdapter
| Q | A
| ------------- | ---
| Branch? | 3.1
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This PR refactorize Redis pipelining so that the case for handling RedisArray is abstracted, thus less bug prone.
Commits
-------
acf0075 [Cache] Clean RedisAdapter pipelining + FilesystemAdapter
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Cache] Add a Chain adapter
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets | #17556
| License | MIT
| Doc PR | -
Made in coordination with @dunglas
Commits
-------
68d9cea [Cache] Optimize Chain adapter
ebdcd16 [Cache] Add a Chain adapter
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Cache] Restrict flushes to namespace scopes
| Q | A
| ------------- | ---
| Branch | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets | -
| License | MIT
| Doc PR | -
Instead of flushing all cache namespaces all the time, we can flush only the keys in the namespace.
Commits
-------
8744443 [Cache] Restrict flushes to namespace scopes
This PR was merged into the 3.1-dev branch.
Discussion
----------
[Cache] Hash using B64+MD5 in FilesystemAdapter
| Q | A
| ------------- | ---
| Branch | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no
| Fixed tickets | -
| License | MIT
| Doc PR | -
Using MD5+B64 is good enough to avoid any hash collision, even on case-insensitive filesystems.
On Windows where the total path length is limited, this saves 44 chars worth.
Even if collisions are extremely unlikely, they are detected by adding then comparing the raw key to saved payloads. This also has the added benefit of easing debugging/grepping the cached items on the filesystem.
Commits
-------
e96bb10 [Cache] Hash using B64+MD5 in FilesystemAdapter