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
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"
{HttpFoundation] [Session] fixed session compatibility with memcached/redis session storage
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"
This PR was submitted for the 2.3 branch but it was merged into the 2.2 branch instead (closes#8768).
Discussion
----------
[Console] Fixes for hasParameterOption and getParameterOption methods of ArgvInput
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
7ca9340 Fixes for hasParameterOption and getParameterOption methods of ArgvInput
This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes#8767).
Discussion
----------
Added sleep() workaround for windows php rename bug
For more info see links in issue #8766
Commits
-------
b3c815b Added sleep() workaround for windows php rename bug
This PR was merged into the 2.2 branch.
Discussion
----------
[Process] Fix#8746 : slowness added in unit tests since #8741
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8746
| License | MIT
Commits
-------
8c4bae3 [Process] Revert change
8d9c7c6 [Process] Fix#8746 : slowness added in unit tests since #8741
This PR was merged into the 2.2 branch.
Discussion
----------
[Process][2.2] Fix#8739
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8739
| License | MIT
This adds a fix to #8739. Whenever a call is done to to any non-blocking methods (`Process::isRunning`, `Process::isStopped`, `Process::isTerminated`, `Process::getStatus`, `Process::getPid`...), buffers are read, and callback executed.
Such code will now work :
```
$process->start(function ($type, $data) {
echo $data;
});
while ($process->isRunning()) {
// some stuff
// callback is executed
}
```
Commits
-------
fa769a2 [Process] Add more precision to Process::stop timeout
57d4159 [Process] Avoid zombie process in case of unit tests failure
3ef517b [Process] Fix#87397716fb2 [Process] Add failing test for #8739bff6f3c [Process] Fix CS
This PR was merged into the 2.2 branch.
Discussion
----------
Grammar fix
Commits
-------
d74eaf9 corrected English grammar (s/does not exists/does not exist)