Return BC compatibility for `@Route` parameters and default values
[Validator] Fixed groups argument misplace for validateValue method from validator class
[DependencyInjection] Add exception for service name not dumpable in PHP
[Security] fixed issue where authentication listeners clear unrelated tokens

This commit fixes an issue where authentication listeners clear all security tokens in case of authentication failure.
This behavior makes it impossible to combine certain authentication mechanisms, notably x509 with form-based login.
[PropertyAccess] added moves to pluralMap
merged branch ianfp/ticket_8529 (PR #8531)

This PR was merged into the 2.2 branch.

Discussion
----------

[PropertyAccess] added moves to pluralMap

Fixes https://github.com/symfony/symfony/issues/8529

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #8529
| License       | MIT
| Doc PR        | none

Commits
-------

d6cafcd [PropertyAccess] added moves to pluralMap
merged branch alcaeus/ticket_8226 (PR #8528)

This PR was merged into the 2.2 branch.

Discussion
----------

[Security] fixed issue where x509 authentication clears unrelated tokens

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #8226
| License       | MIT
| Doc PR        | symfony/symfony-docs#2825
| Notes          | Replaces PR #8283

TODO:
- [x] Feedback on change to make sure security is not affected
- [x] Fix other authentication listeners (they suffer the same problem)
- [x] Write unit tests for bug and maybe a few listener classes as well

This pull request is the summary of the problem mentioned in the ticket above.
It only fixes the "disappearing token" problem for one authentication provider, not all. If acceptable, the change needs to be applied to all authentication listeners since they always clear all tokens from the security context.

Commits
-------

2317443 [Security] fixed issue where authentication listeners clear unrelated tokens
merged branch GromNaN/di-dump-exception (PR #8494)

This PR was merged into the 2.2 branch.

Discussion
----------

[DependencyInjection] Add exception for service name not dumpable in PHP

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #8485 #8030
| License       | MIT
| Doc PR        | n/a

Throws an exception when the DIC is dumped to PHP, before generating invalid PHP.
The regex comes from the PHP doc: http://www.php.net/manual/en/language.oop5.basic.php

Commits
-------

242b318 [DependencyInjection] Add exception for service name not dumpable in PHP
[DependencyInjection] Fix Container::camelize to convert beginning and ending chars

To convert a service ID exactly like Container::get
merged branch GromNaN/dic-camelize (PR #8536)

This PR was merged into the 2.2 branch.

Discussion
----------

[DependencyInjection] Fix Container::camelize to convert beginning and ending . and _

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7431
| License       | MIT
| Doc PR        | n/a

I'm using strtr to make the conversion in order to ensure that the behavior is the same as `Container::get`.

From the test cases I've added, the following were not passing:

Commits
-------

485d53a [DependencyInjection] Fix Container::camelize to convert beginning and ending chars
Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary
merged branch patrickallaert/issue-8455 (PR #8456)

This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes #8456).

Discussion
----------

[Process] Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary

Since `PHP_BINARY` is the very first approach considered, there is no way to use a workaround like setting the `PHP_PATH`.

Checking `PHP_PATH` could potentially be put before checking `PHP_BINARY`: that would avoid an extra function call (and system call), at the price of a small BC_BREAK, but I think it's better in this case to have a solution that doesn't force people to set the `PHP_PATH` environment variable.

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #8455
| License       | MIT
| Doc PR        | none

Commits
-------

35a2fe4 [Process] Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary
added missing comments to WebTestCase
merged branch Powerhamster/missing-comments (PR #8453)

This PR was submitted for the master branch but it was merged into the 2.2 branch instead (closes #8453).

Discussion
----------

added missing comments to WebTestCase

Added comments that are required for autocompletion when extending WebTestCase.

Commits
-------

d056e6b added missing comments to WebTestCase
merged branch venu/groups_argument_fix (PR #8422)

This PR was merged into the 2.2 branch.

Discussion
----------

[Validator] Fixed groups argument misplace for validateValue method from validator class

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT

Signature of validateValue method in ExecutionContext Class is this.
```
public function validateValue($value, $constraints, $subPath = '', $groups = null)
```

But this was called wrongly in Validator Class.

Commits
-------

d3eb9b7 [Validator] Fixed groups argument misplace for validateValue method from validator class
handle Optional and Required constraints from XML or YAML sources correctly
merged branch xabbuh/issue7575 (PR #7930)

This PR was submitted for the 2.1 branch but it was merged into the 2.2 branch instead (closes #7930).

Discussion
----------

handle Optional and Required constraints from XML or YAML sources correc...

...tly

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #7575
| License       | MIT
| Doc PR        | symfony/symfony-docs#2432

Commits
-------

a93a23a handle Optional and Required constraints from XML or YAML sources correctly
[Validator] fixed ConstraintViolation:: incorrect when nested
merged branch venu/ticket_8351#2.2 (PR #8421)

This PR was squashed before being merged into the 2.2 branch (closes #8421).

Discussion
----------

[Validator] fixed ConstraintViolation::$propertyPath incorrect when nested

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #8351
| License       | MIT

In nested constraints, the property path will be overwritten in the context (as there would be a recursive call to CollectionValidotor when nested). Reason is, in ConstraintValidatorFactory object is loaded from memory if exists and context is initialized with the new context. So, other constraints after the nested constraints PropertyPath would be wrong.

So I think better create a new object for CollectionValidator always.

see this https://gist.github.com/alexkappa/5851274
It shows [name][email] even though the email is not under the name node.

Commits
-------

28e0709 [Validator] fixed ConstraintViolation:: incorrect when nested
[Twig] fixed TwigEngine::exists() method when a template contains a syntax error (closes #88546)