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
This PR was merged into the 2.2 branch.
Discussion
----------
[2.2][Locale] Fixed: StubLocale::setDefault() throws no exception when "en" is passed
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This is necessary to fix `IntlTestHelper::requireIntl()` when ICU is not installed and the Icu component 1.0.0 is used instead. In that case, `IntlTestHelper::requireIntl()` calls `\Locale::setDefault('en')` and fails. Consequently, the Form component test cases are partially red when running without ICU installed.
This PR fixes that.
Commits
-------
d0faf55 [Locale] Fixed: StubLocale::setDefault() throws no exception when "en" is passed
This PR was merged into the 2.2 branch.
Discussion
----------
fixed request format when forwarding a request
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #6932
| License | MIT
| Doc PR | n/a
When calling forward() in a controller, the format is not the same as for the master request.
Commits
-------
7e87eb1 fixed request format when forwarding a request
This PR was merged into the 2.2 branch.
Discussion
----------
fixed locale management in sub-requests
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #6932, #5532, #8604
| License | MIT
| Doc PR | n/a
Same fix as #8821 but for `_locale`, and a rebase of #8604.
Commits
-------
7117328 [HttpKernel] added a comment to warn about possible inconsistencies
c4636e1 added a functional test for locale handling in sub-requests
05fdb12 Fixed issue #6932 - Inconsistent locale handling in subrequests
b3c3159 fixed locale of sub-requests when explicitely set by the developer (refs #8821)
This PR was merged into the 2.2 branch.
Discussion
----------
[Form][2.2] Fixed Form::submit() to react to dynamic form modifications
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
ref #3767, #3768, #4548, #8748
cc @Burgov
This PR ensures that fields that are added during the submission process of a form are submitted as well. For example:
```php
$builder = $this->createFormBuilder()
->add('country', 'choice', ...)
->getForm();
$builder->get('country')->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
$form = $event->getForm()->getParent();
$country = $event->getForm()->getData();
$form->add('province', 'choice', /* ... something with $country ... */);
});
```
Currently, the field "province" will not be submitted, because the submission loop uses `foreach`, which ignores changes in the underyling array.
Additionally, this PR ensures that `setData()` is called on *every* element of a form (except those inheriting their parent data) when `setData()` is called on the root element (i.e., during initialization). Currently, when some of the intermediate nodes (e.g. embedded forms) are submitted with an empty value, `setData()` won't be called on the nodes below (i.e. the fields of the embedded form) until `get*Data()` is called on them. If `getData()` is *not* called before `createView()`, any effects of `*_DATA` event listeners attached to those fields will not be visible in the view.
Commits
-------
cd27e1f [Form] Extracted ReferencingArrayIterator out of VirtualFormAwareIterator
ccaaedf [Form] PropertyPathMapper::mapDataToForms() *always* calls setData() on every child to ensure that all *_DATA events were fired when the initialization phase is over (except for virtual forms)
19b483f [Form] Removed superfluous reset() call
00bc270 [Form] Fixed: submit() reacts to dynamic modifications of the form children
This PR was squashed before being merged into the 2.2 branch (closes#8824).
Discussion
----------
[Yaml] Fix comment containing a colon on a scalar line being parsed as a hash.
| 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
Note: I only ran the Yaml Component tests.
This PR fixes a bug in YAML parsing where a comment containing a colon followed by a space, like this:
foo # warning: this is a scalar with a comment, not a hash
was parsed as a hash, resulting in:
array( 'foo # warning' => 'this is a scalar with a comment, not a hash' )
instead of:
'foo'
Commits
-------
4563f1b [Yaml] Fix comment containing a colon on a scalar line being parsed as a hash.
This PR was merged into the 2.2 branch.
Discussion
----------
Sets _format attribute only if it wasn't set previously by the user
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8787, #8791
| License | MIT
| Doc PR |
Commits
-------
9bb7a3d fixed request format of sub-requests when explicitely set by the developer (closes#8787)
fa35597 Sets _format attribute only if it wasn't set previously by the user.
This PR was merged into the 2.2 branch.
Discussion
----------
[HttpKernel] Fix request _format duplication for HttpKernel's ExceptionListener
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8777, #8778
| License | MIT
This is a better fix for #8777.
Commits
-------
f946108 fixed the format of the request used to render an exception
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8804).
Discussion
----------
Exclude little words of 'ee' to 'oo' plural transformation
The plural form of 'bee' and 'fee' are not 'foo' and 'boo'. In general words smaller than 3 letters doesn't change to a 'oo' form.
Commits
-------
0ffdb11 Exclude little words of 'ee' to 'oo' plural transformation
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8782).
Discussion
----------
[SecurityBundle] Fix typo in the check_path validator
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #3005, #2954
| License | MIT
Actually, validator of `check_path` value is broken by #3005. It doesn't throw any exception even if `check_path` is an URI.
I've faced with wrong tests class hierarchy: `SecurityExtensionTest` is abstract test and I have to create the same test configuration for every format: PHP, XML, YAML. It looks like we test `Dependency Injection` and `Yaml` components. Issue with `check_path` does not depend on format, but such class hierarchy leaves me no choice. And I can't put test case into `ConfigurationTest`, because it doesn't know anything about security factories.
It looks like it's better to create new class for `SecurityExtension` tests.
Commits
-------
155dca0 [SecurityBundle] Fix typo in the check_path validator
This PR was merged into the 2.2 branch.
Discussion
----------
[Process] fix for Process:isSuccessful()
| Q | A
| ------------- | ---
| Bug fix? | [yes]
| New feature? | [no]
| BC breaks? | [no]
| Deprecations? | [no]
| Tests pass? | [yes]
| Fixed tickets | []
| License | MIT
| Doc PR | []
This is a rebase of https://github.com/symfony/symfony/pull/8801
If you call isSuccessful() on a running process you would get true because of 0 == null. I think that is not the expected behavior and that is not what phpdoc @return block said so.
Commits
-------
262879d fix for Process:isSuccessful()
This PR was merged into the 2.2 branch.
Discussion
----------
[MonologBridge] Allow SwiftMailerHandler to listen to kernel.terminate.event
This PR accompanies symfony/MonologBundle#51. Both are intended to fixsymfony/symfony-standard#425.
MonologBundle configures SwiftMailerHandler as a Monolog handler and injects the proper transport service.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | 425
| License | MIT
| Doc PR | 2905
Commits
-------
62238b8 CS fix
c6ecd83 SwiftMailerHandler in Monolog bridge now able to react to kernel.terminate event
This PR was merged into the 2.2 branch.
Discussion
----------
[2.2][Process] Use a consistent way to reset data of the process latest run
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
It is actually useful when cloning or running again a process.
Commits
-------
0723c10 [Process] Use a consistent way to reset data of the process latest run
This PR was merged into the 2.2 branch.
Discussion
----------
[Validation] Fixed IdentityTranslator to pass correct Locale to MessageSelector
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This PR fixes the following case:
```php
\Locale::setDefault('en');
$translator = new IdentityTranslator(new MessageSelector());
echo $translator->transChoice('There is one apple|There are %count% apples', 10, array('%count' => 10));
```
Result before PR:
```
There are 1 apples
```
Result after PR:
```
There is one apple
```
The reason for the current behavior is that the locale `null` is passed to `MessageSelector`, but `MessageSelector` is not programmed to accept `null` values.
Commits
-------
191d320 [Validation] Fixed IdentityTranslator to pass correct Locale to MessageSelector
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8776).
Discussion
----------
{HttpFoundation] [Session] fixed session compatibility with memcached/re...
...dis session storage
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | no (no new failng/errors introduced)
| Fixed tickets | 7380
| License | MIT
Per https://bugs.php.net/bug.php?id=61470, and in fixing #7380, the following error occurs when using a Memcache or Redis session store w/ Symfony security: "Authentication exception occurred; redirecting to authentication entry point (A Token was not found in the SecurityContext.)". This patch applies the first fix only if the session store is "files"
Commits
-------
eb8d8eb {HttpFoundation] [Session] fixed session compatibility with memcached/redis session storage