This PR was squashed before being merged into the 2.2 branch (closes#8924).
Discussion
----------
[Process][2.2] Fix Process component on windows
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8836, #8799, #7078
| License | MIT
This PR fixes Process on windows (almost, see note below).
- Some unit tests were not Windows compatible
- Use a file handle for STDERR as well as STDOUT to avoid blocking
- Decouple pipes and descriptors from Process
As this move some a part of Process in a sub class, I hope merging this in 2.3 and master would not be a PITA. I'm here to make some adjustments after theses merge if needed.
**Important note** :
We are using file handles instead of streams for `proc_open` pipes as described in the code (see [PHP bug #51800](https://bugs.php.net/bug.php?id=51800)). Unfortunately, this workaround may produce corrupted output/error output in some race conditions. That's why `AbstractProcessTest::testProcessPipes` randomly fails when using file handles (on unix and windows).
Commits
-------
4a76c76 [Process][2.2] Fix Process component on windows
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8882).
Discussion
----------
[HttpFoundation] Request->getPort() should prefer HTTP_HOST over SERVER_PORT
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/3420
| License | MIT
| Doc PR | none
What is this?
----
_Note to reviewer: This follows on from a previous pull request: https://github.com/symfony/symfony/pull/8184
Since the introduction of `Request->setTrustedHosts()` — the implementation of this fix has been simplified._
This fixes the semantics of the `Request#getPort()` method to prefer the HTTP_HOST header over SERVER_PORT.
This is relevant in situations where the web server is running on a different port to the public facing website. e.g. load balancers, proxies, port forwarding.
Consistency
----
This change makes Symfony more consistent with other popular web frameworks.
Preferring HTTP_HOST over SERVER_NAME and SERVER_PORT is the strategy used by Ruby's Rack and Python's Django.
Python has a PEP that describes how to reconstruct URLs:
http://www.python.org/dev/peps/pep-0333/#url-reconstructionb6290a184c/lib/rack/request.rb (L92)
Commits
-------
fa97d80 Request->getPort() should prefer HTTP_HOST over SERVER_PORT
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8952).
Discussion
----------
[HttpFoundation] Fixing broken http auth digest in some circumstances.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | can be refered in issue #1813
| License | MIT
| Doc PR | n/a
With some apache + php-fpm setup we need to set ```PHP_AUTH_DIGEST``` value if not already setted in GLOBAL vars.
Added some unit tests too.
Commits
-------
9fc994b [HttpFoundation] Fixing broken http auth digest in some circumstances (php-fpm + apache).
This PR was merged into the 2.2 branch.
Discussion
----------
[Security] fixed a leak in the ContextListener
| 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
Trying to fix leaks when using the same Kernel to handle several requests in a row without resetting the Container or shutting down the Kernel.
Commits
-------
899f176 [Security] fixed a leak in ExceptionListener
2fd8a7a [Security] fixed a leak in the ContextListener
This PR was merged into the 2.2 branch.
Discussion
----------
Fixed some random leaks
| 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
Commits
-------
970405f fixed some circular references
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8943).
Discussion
----------
[PropertyAccess] Fixing singular form for kisses, accesses and addresses.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Plural form of noums finishing by *sses* is always *ss* (contrary to plural form of noums finishing by *ses*).
Commits
-------
ebae88f Fixing singular form for kisses, accesses and addresses.
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8939).
Discussion
----------
[Console] Ignore posix_istatty warnings
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
When input stream is ``php://memory`` or ``php://temp`` function ``posix_isatty`` throws following warning
> posix_isatty(): could not use stream of type 'MEMORY' in ....
Commits
-------
cc255dd Ignore posix_istatty warnings
This PR was merged into the 2.2 branch.
Discussion
----------
[2.2] Return BC compatibility for `@Route` parameters and default values
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #7724
| License | MIT
Commits
-------
d400b5a Return BC compatibility for `@Route` parameters and default values
This PR was merged into the 2.2 branch.
Discussion
----------
[HttpKernel] fixed route parameters storage in the Request data collector (closes#8867)
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8867
| License | MIT
| Doc PR | n/a
Commits
-------
c931eb7 [HttpKernel] fixed route parameters storage in the Request data collector (closes#8867)
This PR was merged into the 2.2 branch.
Discussion
----------
[BrowserKit] fixed the redirect behavior according to the RFC
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Commits
-------
2d34e78 [BrowserKit] fixed method/files/content when redirecting a request
64e1655 [BrowserKit] removed some headers when redirecting a request
96a4b00 [BrowserKit] fixed headers when redirecting if history is set to false (refs #8697)
This PR was merged into the 2.2 branch.
Discussion
----------
[2.2] [BrowserKit] Pass headers when `followRedirect()` is called
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Tests pass? | yes
| Fixed tickets | #7929
| License | MIT
Commits
-------
0d07af8 [BrowserKit] Pass headers when `followRedirect()` is called
This PR was merged into the 2.2 branch.
Discussion
----------
Made fragment URLs relative instead of absolute by default
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8458
| License | MIT
| Doc PR | n/a
This fixes a regression introduced with the new fragment system where fragment URLs were generated as absolute URLs. As per the ESI spec, there is no need to generate an absolute URL and this can even be problematic when dealing with internal sub-requests in a more "complex" hosting environment.
Commits
-------
91234cd [HttpKernel] changed fragment URLs to be relative by default (closes#8458)
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8887).
Discussion
----------
[Process] Fixed PHPDoc Blocks
These ```RunTimeExceptions``` are NOT the native ones, therefor the should not be ```\``` in front of them.
| Q | A
| ------------- | ---
| Fixed tickets | none
| License | MIT
Commits
-------
26e9717 Fixed PHPDoc Blocks
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8891).
Discussion
----------
[DependencyInjection] optimized circular reference checker
| Q | A
| ------------- | ---
| Bug fix? | [no]
| New feature? | [no]
| BC breaks? | [no]
| Deprecations? | no]
| Tests pass? | [yes]
| Fixed tickets | []
| License | MIT
| Doc PR | []
It is an addtion to my previous PR https://github.com/symfony/symfony/pull/7699
There is no need to check again previously checked sub-trees.
In our tightly coupled services graph, this circular reference check runs avg 1,5ms, before that: 100ms
Commits
-------
67ebf8f optimized circular reference checker
This PR was merged into the 2.2 branch.
Discussion
----------
[FrameworkBundle] added support for double-quoted strings in the extractor (closes#8797)
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8797
| License | MIT
| Doc PR | n/a
Commits
-------
4922a80 [FrameworkBundle] added support for double-quoted strings in the extractor (closes#8797)
This PR was squashed before being merged into the 2.2 branch (closes#8840).
Discussion
----------
[SecurityBundle] Move format-dependent tests from SecurityExtensionTest
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | —
| License | MIT
| Doc PR | —
This PR solves issue with tests in the SecurityBundle: current structure of tests force to repeat the same test case for every format (PHP, XML, YAML) even if it doesn't depend on them (see #8782).
Commits
-------
d463e25 [SecurityBundle] Move format-dependent tests from SecurityExtensionTest
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8830).
Discussion
----------
clearToken exception is thrown at wrong place.
The PR https://github.com/symfony/symfony/pull/8528 has added a problem when logger is enabled.
The log message for clearToken exception throw actually a fatal error because $failed doesn't exist in clearToken method. I have moved the log message to the handle method.
Commits
-------
701c25b clearToken exception is thrown at wrong place.
This PR was merged into the 2.2 branch.
Discussion
----------
[2.2][Form] Dereferenced Form::&all() since it is not supported for PHP <= 5.3.3
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
see 00bc2708bc
Commits
-------
ea480bd [Form] Fixed Form::all() signature for PHP 5.3.3
This PR was submitted for the 2.1 branch but it was merged into the 2.2 branch instead (closes#8855).
Discussion
----------
[HttpFoundation] [Tests] fix typo in Memcached tests skipped message
| Q | A
| ------------- | ---
| Typo fix | yes
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
| Fixed tickets | -
| Doc PR | -
Commits
-------
83e4fcf fix typo in test skipped message
This PR was merged into the 2.2 branch.
Discussion
----------
[Translation] Fixed regression: When only one rule is passed to transChoice(), this rule should be used
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
There was one regression introduced by #8789, namely when exactly one message is passed to `transChoice()`. Before, the following code was perfectly valid:
```php
$translator = new IdentityTranslator(new MessageSelector());
echo $translator->transChoice('There are two apples', 2, array('%count%' => 2));
```
This didn't fail, because internally, the locale `null` was passed to `MessageSelector`, which always returned the index `0` in that case.
Now, the user's locale is passed, and if the selector returns anything but `0`, an exception is thrown.
I removed this exception for the case that exactly one standard message (without explicit interval) is passed. In that case, this message is returned (just like from `trans()`). If the message key contains more than one message, or if the message has explicit intervals, the exception will still be thrown. See the tests for clarification.
A use case for why no exception should be thrown is validation:
```php
/**
* @Assert\Length(min=2, minMessage="Please enter at least two characters")
*/
```
Commits
-------
2b3dcb9 [Translation] Grammar fix
0951b8d [Translation] Fixed regression: When only one rule is passed to transChoice(), this rule should be used