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
merged branch GromNaN/2.3-di-dump-exception (PR #8524)

This PR was merged into the 2.3 branch.

Discussion
----------

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

Same as #8494 for branch 2.3 since the DI component has been refactored (bb797ee75591f8461dbcc6fdc8a50b5d3aa8fe5a, f1c2ab78af69d5cfa1db2c244dbf22e0303036f2)

| 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
-------

9ac3556 [DependencyInjection] Add exception for service name not dumpable in PHP
Merge branch '2.2' into 2.3

* 2.2:
  [PropertyAccess] added moves to pluralMap
  [Security] fixed issue where authentication listeners clear unrelated tokens
  fix issue #8499 modelChoiceList call getPrimaryKey on a non object
  [DependencyInjection] Add exception for service name not dumpable in PHP

Conflicts:
	src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php
	src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php
	src/Symfony/Component/Security/Tests/Http/Firewall/BasicAuthenticationListenerTest.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
Added missing files .gitignore
merged branch hason/gitignore (PR #8498)

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

Discussion
----------

Added missing .gitignore

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

Commits
-------

60bc41d Added missing files .gitignore
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
merged branch biozshock/patch-form-fix (PR #8362)

This PR was merged into the 2.3 branch.

Discussion
----------

[Form] Fix of "PATCH'ed forms are never valid". Fixes #8111

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

Commits
-------

a2b1535 [Form] Fix of "PATCH'ed forms are never valid"
[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
Merge branch '2.2' into 2.3

* 2.2:
  [Validator] fixed ConstraintViolation:: incorrect when nested
  handle Optional and Required constraints from XML or YAML sources correctly
  added missing comments to WebTestCase
  Fixed #8455: PhpExecutableFinder::find() does not always return the correct binary
  [DependencyInjection] Fix Container::camelize to convert beginning and ending chars
  [Validator] Fixed groups argument misplace for validateValue method from validator class

Conflicts:
	src/Symfony/Component/Validator/Tests/Constraints/CollectionTest.php
	src/Symfony/Component/Validator/Tests/GraphWalkerTest.php