[Finder] Fix SplFileInfo::getContents isn't working with ssh2 protocol
[Form] corrected interface bind() method defined against in deprecation notice
merged branch shieldo/correct_bind_interface (PR #8248)

This PR was merged into the 2.2 branch.

Discussion
----------

[Form] corrected interface bind() method defined against in deprecation ...

...notice

The 'bind' method is defined against `FormInterface` not `FormConfigInterface`. This corrects the deprecation notice in the `Form` implementation.

Commits
-------

de289d2 [Form] corrected interface bind() method defined against in deprecation notice
merged branch alquerci/ticket_8219 (PR #8243)

This PR was merged into the 2.2 branch.

Discussion
----------

[Finder] Fix SplFileInfo::getContents isn't working with ssh2 protocol

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

Commits
-------

849f3ed [Finder] Fix SplFileInfo::getContents isn't working with ssh2 protocol
[DomCrawler] Fix handling file:// without a host
merged branch lazyhammer/fix-crawler-file-scheme (PR #8264)

This PR was merged into the 2.2 branch.

Discussion
----------

[DomCrawler] Fix handling file:// without a host

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

4139936 [DomCrawler] Fix handling file:// without a host
fix issue where $_ENV contains array vals

There are cases where $env or $_ENV can contain a value that is an array
This will cause Process to throw an Array to String conversion exception
Initially I submitted a patch of Process.php, however Fabien indicated
that it shouldn't be fixed there (see below pull request).

Before recently, a simple work around would be in php.ini to set:

  register_argc_argv = On

However with recent changes, this seems to no longer work.

Original pull request: https://github.com/symfony/symfony/pull/7354

See ticket https://github.com/symfony/symfony/issues/7196
merged branch oodle/ticket_7196 (PR #8227)

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

Discussion
----------

[Process] fix issue where $_ENV contains array vals

There are cases where $env or $_ENV can contain a value that is an array
This will cause Process to throw an Array to String conversion exception
Initially I submitted a patch of Process.php, however Fabien indicated
that it shouldn't be fixed there (see below pull request).

Before recently, a simple work around would be in php.ini to set:

  register_argc_argv = On

However with recent changes, this seems to no longer work.

Original pull request: https://github.com/symfony/symfony/pull/7354

See ticket https://github.com/symfony/symfony/issues/7196

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

Commits
-------

2c6af95 [Process] fix issue where $_ENV contains array vals
[Process] moved env check to the Process class (refs #8227)
do not re-register commands each time a Console\Application is run
merged branch tomglue/console_reregister_commands_fix (PR #8242)

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

Discussion
----------

[FrameworkBundle] do not re-register commands each time a Console\Application is run

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

I have been experimenting with using the Symfony console application inside of a React event loop which works quite well.

In this scenario, I re-use an instances of a Console\Application to run multiple tasks. This works well apart from unnecessarily reloading the command classes from all included bundles each time doRun() is called (https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Console/Application.php#L68). This can also lead to running out of file descriptors under heavy load as bootstrap.php.cache uses a RecursiveDirectoryIterator to load the command.

Commits
-------

1983fc3 [FrameworkBundle] do not re-register commands each time a Console\Application is run
[FrameworkBundle] tweaked previous merge (refs #8242)
fixed date type format pattern regex
merged branch bamarni/date-format-regex (PR #8198)

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

Discussion
----------

[Form] fixed date type format pattern regex

| Q             | A
| ------------- | ---
| Bug fix?      | [yes]
| New feature?  | [no]
| BC breaks?    | [no]
| Deprecations? | [no]
| Tests pass?   | [yes]
| License       | MIT

I don't understand what is the rationale behind the current regex, why is there mandatory in-between characters?

The current regex passes with the format option set to ```dMyyyy``` while it doesn't with ```dMy```, on the linked icu documentation it is stated that ```y``` is equivalent to ```yyyy```.

So when setting this format option to dMy, fields are rendered in a wrong order because of the fallback (year, month, day).

Commits
-------

6a91bbb [Form] fixed date type format pattern regex
Throw exception if value is passed to VALUE_NONE input, long syntax
merged branch tiagojsag/console_input_options_fix (PR #8199)

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

Discussion
----------

[Console] Throw exception if value is passed to VALUE_NONE input optin, long syntax

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

Input options with InputOption::VALUE_NONE accept values in both short and long syntaxes:
- When using the long syntax, no exception is thrown;
- When using short, a "The %s option does not exist" exception is thrown.

This PR only addresses the long syntax case. The short syntax case would require considerable refactoring of the parse code, which I believe should be discussed.

I included a test that illustrates the above mentioned problem for the long syntax scenario.

Commits
-------

32ea77f Throw exception if value is passed to VALUE_NONE input, long syntax
Merge branch '2.2' into 2.3

* 2.2:
  Throw exception if value is passed to VALUE_NONE input, long syntax
  fixed date type format pattern regex
  [FrameworkBundle] tweaked previous merge (refs #8242)
  do not re-register commands each time a Console\Application is run
  [Process] moved env check to the Process class (refs #8227)
  fix issue where $_ENV contains array vals
  [DomCrawler] Fix handling file:// without a host
  [Form] corrected interface bind() method defined against in deprecation notice
  [Finder] Fix SplFileInfo::getContents isn't working with ssh2 protocol

Conflicts:
	src/Symfony/Component/Console/Tests/Input/ArgvInputTest.php
	src/Symfony/Component/DomCrawler/Link.php
	src/Symfony/Component/Form/Form.php