This PR was merged into the 3.4 branch.
Discussion
----------
[Stopwatch] updated phpdoc due to the addition of optional float precision
| Q | A
| ------------- | ---
| Branch? | 3.4/4.0
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/26204
| License | MIT
| Doc PR | -
Commits
-------
8278a47 updated StopwatchEvent phpdoc due to the additional of optional float precision introduced in 0db8d7fb6a
This PR was squashed before being merged into the 3.4 branch (closes#26230).
Discussion
----------
[WebProfilerBundle] Fix anchor CSS
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes/no
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!--highly recommended for new features-->
Empty source lines overlap in `/_profiler/open?file=x`. AFAIK it's a regression after #23296, but it's the first time i noticed so maybe it's related to a chrome change in between. No real CSS expert.. but this seems to fix it.
Before:
![image](https://user-images.githubusercontent.com/1047696/36377240-ba3f897a-1576-11e8-8660-8b04a6f7bd76.png)
After:
![image](https://user-images.githubusercontent.com/1047696/36377574-f99bd73a-1577-11e8-913c-d4287d5115a2.png)
I can confirm both chrome and firefox render as shown in the after screenshot. Firefox worked before as well, chrome not.
cc @ogizanagi
Commits
-------
ee45992 [WebProfilerBundle] Fix anchor CSS
* 2.7:
Clean calls to http_build_query()
[HttpFoundation] Fix missing "throw" in JsonResponse
Improve the documentation of
Suppress warning from sapi_windows_vt100_support on stream other than STDIO
removed extra-verbose comments
Fixes#26136: Avoid emitting warning in hasParameterOption()
Added a README entry to the PR template
[HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
[DI] Add null check for removeChild
This PR was merged into the 4.1-dev branch.
Discussion
----------
[Process] Allow writing portable "prepared" command lines
| Q | A
| ------------- | ---
| Branch? | 4.1
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #23778
| License | MIT
| Doc PR | symfony/symfony-docs#9295
This give the opportunity to create process commands that allow to changes only the values instead of changing the code.
Commits
-------
d1e4f489d1 [Process] Allow writing portable "prepared" command lines
This PR was merged into the 4.1-dev branch.
Discussion
----------
[Serializer] add a constructor arguement to return csv always as collection
| Q | A
| ------------- | ---
| Branch? | 4.1
| Bug fix? | yes
| New feature? | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks? | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass? | yes
| Fixed tickets | #21616
| License | MIT
| Doc PR | TODO create a doc PR for the 3 ways of getting csv collection, or a single
Coding in the train again ;).
![img_9980](https://user-images.githubusercontent.com/3451634/33417042-f13063e4-d59f-11e7-8f30-143da768b1d7.JPG)
This is to be able to add a new behaviour to the csv encoder when passing the alwaysAsCollection context key, this will return a collection even if there is only one element.
Commits
-------
d19d05dc5d [Serializer] add a context key to return csv always as collection
This PR was merged into the 4.1-dev branch.
Discussion
----------
[Serializer] add a context key to return always as collection for XmlEncoder
| Q | A
| ------------- | ---
| Branch? | 4.1
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass? | yes
| Fixed tickets | #25227
| License | MIT
| Doc PR |
This PR add a new `as_collection` context key in order to return always as a collection instead of returning a single elements when there are only one array.
there are only one PR for the CsvEncoder don't wanted to have only One PR containing the two changes. It feel better to have two PR that fix the behaviour on two different things. it's easy to review and to revert if it break something (which should not since we are testing the behaviour).
Commits
-------
adb428d314 [Serializer] add a context key to return always as collection for XmlEncoder
This allows migrating away from the deprecated DbalSessionHandler when
DBAL was used for its ability to be configured through a URL (which is
what is provided on Heroku and some other PaaS).
This PR was squashed before being merged into the 4.1-dev branch (closes#26140).
Discussion
----------
[Serializer] deserialize as a null when inner object cannot be created and type hint allows null
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
```php
class ObjectConstructorDummy
{
protected $foo;
public $bar;
private $baz;
public function __construct($foo, $bar, $baz)
{
$this->foo = $foo;
$this->bar = $bar;
$this->baz = $baz;
}
}
class DummyWithNullableConstructorObject
{
private $id;
private $inner;
public function __construct($id, ?ObjectConstructorDummy $inner)
{
$this->id = $id;
$this->inner = $inner;
}
public function getId()
{
return $this->id;
}
public function getInner()
{
return $this->inner;
}
}
```
Trying to deserialize to `DummyWithNullableConstructorObject` with the following data currently fails:
```php
[
'id' => 10,
'inner' => null
]
```
With this PR `DummyWithNullableConstructorObject ` would be constructed with `null` passed as `$inner` because of the type hint.
Commits
-------
2fe9eb1aba [Serializer] deserialize as a null when inner object cannot be created and type hint allows null
This PR was squashed before being merged into the 2.7 branch (closes#26215).
Discussion
----------
Improve the documentation of `Filesystem::mirror()`
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? |no
| New feature? |no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks? |no
| Deprecations? |no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass? | ?
| Fixed tickets |
| License | MIT
| Doc PR |
I always end up reading the code of the method to understand what really happens with the default parameters. Hopefully this will clear things up for future me and others.
Replaces #26209 to target the 2.7 branch.
Commits
-------
0e4d26a568 Improve the documentation of
This PR was merged into the 3.4 branch.
Discussion
----------
[WebProfilerBundle] Tweak default route name
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes-ish
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes/no
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!--highly recommended for new features-->
Use `n/a` instead of `NONE` which is consistent and less loud.
![image](https://user-images.githubusercontent.com/1047696/36351462-ae2da6ca-14aa-11e8-860c-6c583d721f3a.png)
Commits
-------
5c4566ca73 [WebProfilerBundle] Tweak default route name
This PR was squashed before being merged into the 4.1-dev branch (closes#26213).
Discussion
----------
[FrameworkBundle] Add support to 307/308 HTTP status codes in RedirectController
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #26171
| License | MIT
| Doc PR |
With this PR `RedirectController` will allow to create redirections with use of 307/308 HTTP status codes together with 301/302. Related RFC documents:
* https://tools.ietf.org/html/rfc7231
* https://tools.ietf.org/html/rfc7538
Commits
-------
64fb5a5663 [FrameworkBundle] Add support to 307/308 HTTP status codes in RedirectController
This PR was merged into the 4.1-dev branch.
Discussion
----------
[Routing] Fix same-prefix aggregation
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
The blog post on http://symfony.com/blog/new-in-symfony-4-1-fastest-php-router made me review the aggregation logic, and discover issues.
So now, instead of this:
```
.'|/(en|fr)/admin/post/?(*:82)'
.'|/(en|fr)/admin/post/new(*:166)'
.'|/(en|fr)/admin/post/(\\d+)(*:253)'
.'|/(en|fr)/admin/post/(\\d+)/edit(*:345)'
.'|/(en|fr)/admin/post/(\\d+)/delete(*:442)'
.'|/(en|fr)/blog/?(*:519)'
.'|/(en|fr)/blog/rss\\.xml(*:603)'
.'|/(en|fr)/blog/page/([^/]++)(*:694)'
.'|/(en|fr)/blog/posts/([^/]++)(*:784)'
.'|/(en|fr)/blog/comment/(\d+)/new(*:880)'
.'|/(en|fr)/blog/search(*:962)'
.'|/(en|fr)/login(*:1038)'
.'|/(en|fr)/logout(*:1116)'
.'|/(en|fr)?(*:1188)'
```
we generate this:
```
.'|/(en|fr)(?'
.'|/admin/post(?'
.'|/?(*:34)'
.'|/new(*:45)'
.'|/(\\d+)(?'
.'|(*:61)'
.'|/edit(*:73)'
.'|/delete(*:87)'
.')'
.')'
.'|/blog(?'
.'|/?(*:106)'
.'|/rss\\.xml(*:123)'
.'|/p(?'
.'|age/([^/]++)(*:148)'
.'|osts/([^/]++)(*:169)'
.')'
.'|/comments/(\\d+)/new(*:197)'
.'|/search(*:212)'
.')'
.'|/log(?'
.'|in(*:230)'
.'|out(*:241)'
.')'
.')'
.'|/(en|fr)?(*:260)'
```
This is not only another perf fix, but a real bug fix, as I found ordering issues.
Commits
-------
d514f819dc [Routing] Fix same-prefix aggregation
This PR was merged into the 4.0 branch.
Discussion
----------
[Serializer] remove unneeded php doc line
| Q | A
| ------------- | ---
| Branch? | 4.0
| Bug fix? | no
| New feature? | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks? | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass? | yes
| Fixed tickets | none
| License | MIT
| Doc PR | not needed
This is just a little cleaning of the uneeded doc blocks.
Commits
-------
bbcaaef [Serializer] remove unneeded php doc line
This PR was merged into the 2.7 branch.
Discussion
----------
[Console] Suppress warning from sapi_windows_vt100_support
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #26210
| License | MIT
Suppresses warning from `sapi_windows_vt100_support()` for non-STDIO streams, e. g. `php://memory`.
Commits
-------
43f9421 Suppress warning from sapi_windows_vt100_support on stream other than STDIO
This PR was merged into the 3.4 branch.
Discussion
----------
Retro-fit proxy code to make it deterministic for older proxy manager implementations
Follow up on https://github.com/symfony/symfony/issues/25958#issuecomment-365543535
ProxyManager >= 7.2 already implements a deterministic identifier naming strategy which is critical for reproducible builds (https://github.com/symfony/symfony/issues/25958). but versions below that don’t. This is what this PR fixes. Here is more context: https://github.com/Ocramius/ProxyManager/pull/411
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Commits
-------
0f16056 Retro-fit proxy code to make it deterministic for older proxy manager implementations
This PR was squashed before being merged into the 3.4 branch (closes#25787).
Discussion
----------
Yaml parser regression with comments and non-strings
| Q | A
| ------------- | ---
| Branch? | 3.3 <!-- see below -->
| Bug fix? | yes
| New feature? | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks? | no
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md files -->
| Tests pass? | no
| Fixed tickets | #25786
| License | MIT
| Doc PR | symfony/symfony-docs#... <!--highly recommended for new features-->
<!--
- Bug fixes must be submitted against the lowest branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against the master branch.
- Replace this comment by a description of what your PR is solving.
-->
Commits
-------
a7e2a49 Yaml parser regression with comments and non-strings
This PR was merged into the 2.7 branch.
Discussion
----------
[HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | no
| New feature? | yes (kinda)
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | N/A
| License | MIT
| Doc PR | N/A
Zip files uploaded on Windows often have a mime type of `x-zip-compressed`. This patch adds support for this mime type to `MimeTypeExtensionGuesser`.
The mime type seems to be a valid mime type for zip files according to http://filext.com/file-extension/ZIP
Commits
-------
ba3e19ae21 [HttpFoundation] Add x-zip-compressed to MimeTypeExtensionGuesser.
This PR was squashed before being merged into the 2.7 branch (closes#26156).
Discussion
----------
Fixes#26136: Avoid emitting warning in hasParameterOption()
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #26136
| License | MIT
| Doc PR | n/a
When hasParameterOption / getParameterOption is passed invalid parameters, a warning may be emitted. While the root cause of the warning is an invalid parameter supplied by the caller, earlier versions of Symfony accepted these parameters, which were effectively ignored.
In the context of these methods, what I mean by "invalid parameter" is an empty string, which is the correct datatype, but is not ever a useful thing to provide to these methods. Since empty strings here did not cause a problem in previous versions, and since Symfony is used by all sorts of projects for all sorts of purposes, it seems best to continue to be flexible about the parameters accepted by Symfony APIs.
Commits
-------
b32fdf1ca3Fixes#26136: Avoid emitting warning in hasParameterOption()
This PR was merged into the 2.7 branch.
Discussion
----------
Added a README entry to the PR template
| Q | A
| ------------- | ---
| Branch? | 2.7
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | -
| Fixed tickets | -
| License | MIT
| Doc PR | -
Recently, in the [Diversity Initiative post]() @fabpot mentioned: "A major version of a project should be about improving all aspects of it: community, docs, and code in this order of importance." Also, Symfony advocates that [“an undocumented line is a line that does not exist”](https://symfony.com/six-good-reasons).
This order of importance is not yet followed. Most of the resources are spent on the code, instead of the docs. And with good reason: there's a way bigger contributor base to take care of in the code, compared to the docs.
During a doc meeting this evening, @symfony/team-symfony-docs has discussed this problem. We think it can be improved by two pragmatic changes in the Code repository:
* Focus on creating a Doc PR before a feature is merged. We used to do this, but it seems to not be the case anymore.
* Add a `README` section to the PR template, as done by this PR. This readme section should contain a readme focused entry of the feature introduced by the PR. This has multiple advantages, among which: it helps the PR author to focus on usage ([Readme driven development](http://tom.preston-werner.com/2010/08/23/readme-driven-development.html)); it can function as a great bootstrap for the doc team; it helps reviewers to understand the PR more easily.
Of course, I've just created this PR to start the discussion. I'm happy to change all wording in the PR template.
Commits
-------
bc1b652b17 Added a README entry to the PR template
Zip files uploaded on Windows often have a mime type of `x-zip-compressed`. This patch adds support for this mime type to `MimeTypeExtensionGuesser`.
The mime type seems to be a valid mime type for zip files according to http://filext.com/file-extension/ZIP
This PR was merged into the 3.4 branch.
Discussion
----------
Fix undiscoverablility of SymfonyTestsListenerForV7
| Q | A
| ------------- | ---
| Branch? | `3.4@dev` (and `4@dev`)
| 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
As class is in wrong namespace, it's not discoverable by autoloader and during execution of aliasing we face following crash:
```
ker@dus:~/github/PHP-CS-Fixer λ vendor/bin/phpunit
Class 'Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerForV7' not found
```
-----------------
replaces #26180, which was wrongly sent (and merged) for `master` branch instead of `3.4`, sorry for mistake.
Commits
-------
538b257 Fix undiscoverablility of SymfonyTestsListenerForV7