This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#8287).
Discussion
----------
[CssSelector] added a node about HTML extension in readme
It's a common mistake to use `CssSelector` with XML without knowing that `HTML` extension must be disbaled first (see #8286). This PR adds a note about that in the component's readme file.
Commits
-------
4235b26 [CssSelector] added a node about HTML extension in readme
This PR was merged into the 2.3 branch.
Discussion
----------
[Console] Fixed the table rendering with multi-byte strings.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8284
| License | MIT
| Doc PR | -
Commits
-------
ab1439e [Console] Fixed the table rendering with multi-byte strings.
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#8275).
Discussion
----------
Feature/fix unit tests
Fixed two cases where tests were relying on the pcntl extension
Commits
-------
39477dd Feature/fix unit tests
This PR was merged into the 2.3 branch.
Discussion
----------
[Security] fixed usage of the salt for the bcrypt encoder (refs #8210)
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8210
| License | MIT
| Doc PR | n/a
see #8210
Commits
-------
b5ded81 [Security] fixed usage of the salt for the bcrypt encoder (refs #8210)
* 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
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
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
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
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
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
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
This PR was merged into the 2.3 branch.
Discussion
----------
fix-progressbar-start
lastMessagesLength and barCharOriginal should be reset if you want to use 2 or more Progress Bars in the same command flow.
Commits
-------
e65723c fix-progressbar-start
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
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
* 2.2:
Revert "[Console] ensure exit code between 0-254"
fix many-to-many Propel1 ModelChoiceList
[Console] ensure exit code between 0-254
[DomCrawler] Fixed a fatal error when setting a value in a malformed field name.
[Console] fix status code when Exception::getCode returns something like 0.1
Fixed exit code for exceptions with error code 0
instantiate valid commands only
Conflicts:
src/Symfony/Component/Console/Application.php
* 2.1:
Revert "[Console] ensure exit code between 0-254"
[Console] ensure exit code between 0-254
[Console] fix status code when Exception::getCode returns something like 0.1
Fixed exit code for exceptions with error code 0
This PR was merged into the 2.1 branch.
Discussion
----------
[Console] fix status and exit code
Fix https://github.com/symfony/symfony/pull/8183#discussion_r4525267
and
http://www.php.net/manual/en/function.exit.php
> Exit statuses should be in the range 0 to 254, the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.
Commits
-------
6b9180a [Console] ensure exit code between 0-254
445b2e3 [Console] fix status code when Exception::getCode returns something like 0.1
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#8236).
Discussion
----------
Added missing galician (gl) translations
Commits
-------
e179510 Added missing galician (gl) translations
This PR was merged into the 2.2 branch.
Discussion
----------
[DomCrawler] Fixed a fatal error when setting a value in a malformed field name
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Hi,
I found a case where a fatal error happen when trying to set a value in a form field with a malformed name.
```
Fatal error: Call to a member function setValue() on a non-object in /home/pierreyves/projects/symfony2/symfony/src/Symfony/Component/DomCrawler/FormFieldRegistry.php on line 128
Call Stack:
0.0001 231832 1. {main}() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/composer/bin/phpunit:0
0.0035 688768 2. PHPUnit_TextUI_Command::main() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/composer/bin/phpunit:63
0.0035 689000 3. PHPUnit_TextUI_Command->run() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129
0.0224 2705448 4. PHPUnit_TextUI_TestRunner->doRun() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:176
0.0301 2997392 5. PHPUnit_Framework_TestSuite->run() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:349
0.0477 3613296 6. PHPUnit_Framework_TestSuite->runTest() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:745
0.0477 3613296 7. PHPUnit_Framework_TestCase->run() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:775
0.0477 3613296 8. PHPUnit_Framework_TestResult->run() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:776
0.0478 3614208 9. PHPUnit_Framework_TestCase->runBare() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php:648
0.0478 3630992 10. PHPUnit_Framework_TestCase->runTest() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:831
0.0478 3631856 11. ReflectionMethod->invokeArgs() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:976
0.0478 3631888 12. Symfony\Component\DomCrawler\Tests\FormTest->testSetValueOnMultiValuedFieldsWithMalformedName() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:976
0.0481 3635560 13. Symfony\Component\DomCrawler\Form->offsetSet() /home/pierreyves/projects/symfony2/symfony/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:255
0.0481 3635560 14. Symfony\Component\DomCrawler\FormFieldRegistry->set() /home/pierreyves/projects/symfony2/symfony/src/Symfony/Component/DomCrawler/Form.php:320
```
In this case, `FormFieldRegistry::getSegments('foo[bar')` method is called and it will return `array('foo')` only. Therefore the return of `FormFieldRegistry::get('foo[bar')` returns an array instead of a `FormField` and so the `setValue()` call happen on the array which leads to the fatal error.
I tried to fix that. I don't know if it's the best way to do this so, as always, comments are welcome.
Commits
-------
bce6bd2 [DomCrawler] Fixed a fatal error when setting a value in a malformed field name.
This PR was submitted for the master branch but it was merged into the 2.3 branch instead (closes#8225).
Discussion
----------
[Validator] Added Greek translation
| Q | A
| ------------- | ---
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
Commits
-------
278090b [Validator] Added Greek translation
This PR was merged into the 2.3 branch.
Discussion
----------
[FrameworkBundle] Fixed OutOfBoundException when session handler_id is null
[FrameworkBundle] Fixed OutOfBoundException when session handler_id is null
When a null is provided for framework.session.handler_id the FrameworkExtension attempts to set the session storage to null for the 'session.storage.php_bridge' by altering the second argument. According to the session.xml service definition, there is no second argument, and it is in fact the first (read, 0 index) argument that should be changed.
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #8228
| License | MIT
| Doc PR | N/A
Commits
-------
e3561ce [FrameworkBundle] Fixed OutOfBoundException when session handler_id is null
When a null is provided for framework.session.handler_id the FrameworkExtension attempts to set the session storage to null for the 'session.storage.php_bridge' by altering the second argument. According to the session.xml service definition, there is no second argument, and it is in fact the first (read, 0 index) argument that should be changed.
This PR was merged into the 2.3 branch.
Discussion
----------
[DI] Fixes access of aliases shared services
Fixes#8096 and I noticed that the aliases methods weren't really needed anymore so I removed them. I think it's fine since they were protected, but did it in a separate commit in case you just want the bugfix.
Note that while the DI tests pass, I didn't run this patch as part of a real app. I'd appreciate if someone has the time to verify it still works given it's slightly critical code.
Commits
-------
81b122d [DependencyInjection] Add support for aliases of aliases + regression test
d8c0ef7 [DependencyInjection] Rename ContainerBuilder::$aliases to avoid conflicting with the parent class
bb797ee [DependencyInjection] Remove get*Alias*Service methods from compiled containers
379f5e0 [DependencyInjection] Fix aliased access of shared services, fixes#8096