This PR was merged into the 3.3-dev branch.
Discussion
----------
[ClassLoader] Deprecated the component
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Follow up of #20668
Commits
-------
8a37722adb [ClassLoader] Deprecated the component
This PR was merged into the 3.3-dev branch.
Discussion
----------
[DependencyInjection] YAML: reduce the complexity of the _defaults parser
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Commits
-------
130fa1f [DependencyInjection] YAML: reduce the complexity of the _defaults parser
This PR was merged into the 2.7 branch.
Discussion
----------
[HttpKernel] Fix ArgumentValueResolver for arguments default null
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
If an argument has `null` as default value __and annotations are used for routing__, then it is not resolved by the ArgumentResolver e.g:
```php
public function showAction(Request $request) {
dump($request); // Request object
}
public function showAction(?Request $request) {
dump($request); // Request object
}
public function showAction(Request $request = null) {
dump($request); // null
}
```
To me, the last example should have been a Request object too.
Note that it is the same behavior when using `UserInterface` or whatever, I ran into this issue while trying to dump a user for a route accepting both anonymous and authenticated requests, the argument was always null while `$this->getUser()` returned the expected value. According to http://symfony.com/blog/new-in-symfony-3-2-user-value-resolver-for-controllers it should have worked through the argument.
I propose to make it works as a bugfix.
Any suggestion for improving the patch will be really welcomed. ping @iltar
Commits
-------
d3fa8a1859 Avoid setting request attributes from signature arguments in AnnotationClassLoader
This PR was merged into the 2.7 branch.
Discussion
----------
[DependencyInjection] Add some missing typehints in YamlFileLoader
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Commits
-------
34330e5136 [DependencyInjection] Add some missing typehints in YamlFileLoader
This PR was merged into the 2.7 branch.
Discussion
----------
[DependencyInjection] minor: Fix a param type
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Commits
-------
c82aa84c26 [DependencyInjection] minor: Fix a DocBlock
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes#20871).
Discussion
----------
[HttpKernel] Give higher priority to adding request formats
| Q | A
| ------------- | ---
| Branch? | 3.2
| Bug fix? | yes
| New feature? | yes
| BC breaks? | yes (unlikely to break projects*)
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | not documented
\* Only applies to the unlikely case where formats are used before this event is loaded key. Users must have specified custom formats, and actually using them should then break their application. I think that's an unlikely case.
## Problem
It's possible to extend the formats known by the `Request` using a piece of config:
```yaml
framework:
request:
formats:
json: 'application/merge-patch+json'
```
Using this in a `kernel.request` event is currently not possible, as it loads after any custom events.
## Offered solution
Increasing the priority of the AddRequestFormatsListener listener resolves this problem.
This change only impacts projects that use the `framework.request.formats` configuration key, as the listener is not loaded if it isn't defined.
Commits
-------
9edb457e44 [HttpKernel] Give higher priority to adding request formats
This PR was merged into the 2.8 branch.
Discussion
----------
[PropertyInfo] Don't try to access a property thru a static method
| Q | A
| ------------- | ---
| Branch? | 2.8
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
See also #21331.
Commits
-------
3b4858fe88 [PropertyInfo] Don't try to access a property thru a static method
This PR was merged into the 3.3-dev branch.
Discussion
----------
[Workflow] Introduce concept of SupportStrategyInterface
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets | #20751
| License | MIT
| Doc PR | -
Commits
-------
134a58b4c4 [Workflow] Fixed code and tests
184301206f [Workflow] Introduce concept of SupprtStrategyInterface to allow other support checks than class instance
This PR was merged into the 3.3-dev branch.
Discussion
----------
Added WebVTT to the list of MIME type extensions
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #20454
| License | MIT
| Doc PR | -
This is not included in the Apache list of MIME types ... but the related standard looks pretty serious:
* https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API
* https://w3c.github.io/webvtt/
Commits
-------
9e2a111e4b Added WebVTT to the list of MIME type extensions
This PR was squashed before being merged into the 3.3-dev branch (closes#21065).
Discussion
----------
Added cache data collector and profiler page
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #19297
| License | MIT
| Doc PR | n/a
Adding a first version of cache profiler page. Most things are taken from PHP-cache.
FYI: @aequasi
### What is included?
A collector, recording adapter and a profiler page.
![screen shot 2016-12-27 at 16 07 35](https://cloud.githubusercontent.com/assets/1275206/21502325/4bee2ed4-cc4f-11e6-89fc-37ed16aca864.png)
![screen shot 2016-12-27 at 16 07 45](https://cloud.githubusercontent.com/assets/1275206/21502326/4bee9450-cc4f-11e6-904d-527b7b0ce85b.png)
### What is not included?
* A good logo
* Nice design on the profiler page
This PR aims to pass as the minimum requirement for a cache page. Im happy to do fancy extra features but those should be a different PR.
Commits
-------
7497f1c6b6 Added cache data collector and profiler page
This PR was merged into the 3.2 branch.
Discussion
----------
[Workflow] Fixed support of multiple transitions with the same name.
| Q | A
| ------------- | ---
| Branch? | 3.2
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
---
The previous behavior was underterministic because it took the first
transition during the `can` and the `apply` method. But the "first"
does not mean anything. Now the workflown apply all possible transitions
with the same name.
Commits
-------
edd5431e6e [Workflow] Fixed support of multiple transition with the same name.
This PR was submitted for the master branch but it was merged into the 3.2 branch instead (closes#21271).
Discussion
----------
[Workflow] Added new validator to make sure each place has unique translation names
| Q | A
| ------------- | ---
| Branch? | 3.2
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR | n/a
A definition where a place that has transitions with the same name is an invalid definition.
```yaml
invalid1:
places: ['a', 'b', 'c']
transitions:
t1:
from: a
to: b
t1:
from: a
to: c
valid1:
places: ['a', 'b', 'c']
transitions:
t1:
from: a
to: b
t2:
from: a
to: c
valid2:
places: ['a', 'b', 'c']
transitions:
t1:
from: a
to: b
t1:
from: b
to: c
valid3:
places: ['a', 'b', 'c', 'd']
transitions:
t1:
from: ['a', 'b']
to: d
t2:
from: ['a', 'b']
to: c
```
FYI @lyrixx
Commits
-------
eece8adfdd [Workflow] Added new validator to make sure each place has unique translation names
This PR was merged into the 3.3-dev branch.
Discussion
----------
[DI] Do not set values of lazy arguments after inlining them
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | not yet
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #21299
| License | MIT
| Doc PR | n/a
Commits
-------
04da7c30d9 [DI] Do not inline values of lazy arguments
This PR was submitted for the master branch but it was merged into the 3.2 branch instead (closes#21323).
Discussion
----------
[Cache] [PdoAdapter] Fix MySQL 1170 error (blob as primary key)
| Q | A
| ------------- | ---
| Branch? | 3.2
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | n/a
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
When using a Doctrine\DBAL\Connection to initialize the PdoAdapter, PdoAdapter::createTable tries to create a table using a blob field as primary key. [This is not an option for MySQL](https://techjourney.net/mysql-error-1170-42000-blobtext-column-used-in-key-specification-without-a-key-length/), resulting in an exeption: `Syntax error or access violation: 1170 BLOB/TEXT column 'item_id' used in key specification without a key length`. This commit supplies a way to act like the non-Connection way creates the table does.
Commits
-------
08c6a650b9 [Cache] [PdoAdapter] Fix MySQL 1170 error (blob as primary key)
This PR was merged into the 3.2 branch.
Discussion
----------
Don't add csp-headers if none are required
| Q | A
| ------------- | ---
| Branch? | 3.2
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | This PR is also the ticket
| License | MIT
In 3.2 a tool to adjust Content Security Policy headers in combination with the WebProfiler was added. We encountered a bug in its behavior.
We had CSP-headers that did not have a script-src/style-src nor a default-src (it was something like `form-action: https:`). In that scenario, the ContentSecurityPolicyHandler would add `script-src: 'unsafe-inline' 'nonce-....'`, but that would actually change the "everything is allowed scenario" into "only inline and nonce-... is allowed". The result was _only_ the javascript of WebProfiler was allowed, rather than everything.
This PR fixes the scenario where no default-src nor a script-src/style-src is provided. It simply continue's rather than treats it as an empty list of rules that need additional rules.
~A bug I did find, but not fix, is the fact that that `'unsafe-inline'` is ignored in at least Firefox and Chrome due to the fact there is also a nonce-element in the rule.~
Commits
-------
6fecc94103 Don't add csp-headers if none are required