This PR was merged into the 3.4 branch.
Discussion
----------
[PhpUnitBridge] Implement startTest rather than startTestSuite
Passing a TestSuite instance to CoverageListenerTrait::testStart() will
have no effect.
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Closes#28481
Commits
-------
63671d1633 Implement startTest rather than startTestSuite
This PR was submitted for the master branch but it was squashed and merged into the 3.4 branch instead (closes#28480).
Discussion
----------
[DI] Detect circular references with ChildDefinition parent
| Q | A
| ------------- | ---
| Branch? | 3.4 (be careful when merging)
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #28312
| License | MIT
| Doc PR |
I will provide a test case if the fix looks good for you :)
Commits
-------
2a59c8e3e6 [DI] Detect circular references with ChildDefinition parent
This PR was squashed before being merged into the 3.4 branch (closes#28497).
Discussion
----------
[VarDumper] Fix global dump function return value for PHP7
Retarget of PR #28491. Reposting description below, with relevant updates.
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
In 3.4, the global `dump()` helper function in the VarDumper component was updated to return the arguments passed in to it. However, due to reusing the argument variable in the function, this introduces a bug in PHP7 in the return value of the function.
The variable used in the `foreach` loop overwrites the value passed in by the first argument. In PHP5, this is okay. In PHP7, even though the argument is passed by value, the value returned by `func_get_args()` is affected by changes to the arguments inside the function. This is a change from PHP5.
From the documentation for [`func_get_args()`](http://php.net/manual/en/function.func-get-args.php):
> If the arguments are passed by reference, any changes to the arguments will be reflected in the values returned by this function. As of PHP 7 the current values will also be returned if the arguments are passed by value.
This PR simply changes the name of the variable used in the `foreach` loop. It also adds a test file to test the return value of the global `dump()` function.
This is my first contribution to Symfony, so please let me know if the issue should be resolved in a different manner, or if the test should be modified in any way.
Thanks,
Patrick
Commits
-------
0def211b9b [VarDumper] Fix global dump function return value for PHP7
This PR was merged into the 2.8 branch.
Discussion
----------
[Ldap] Use shut up operator on connection errors at ldap_start_tls
| Q | A
| ------------- | ---
| Branch? | 2.8
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #28426
| License | MIT
| Doc PR | n/a
Added shut-up operator to php function `ldap_start_tls()` so connection errors are ignored.
Commits
-------
af54189dfc [Ldap] Use shut up operator on connection errors at ldap_start_tls
This PR was merged into the 2.8 branch.
Discussion
----------
[HttpFoundation] don't override StreamedResponse::setNotModified()
| Q | A
| ------------- | ---
| Branch? | 2.8
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Alternative implementation to #27937, because `Response::setNotModified()` has been made final in 4.0 so we shouldn't override it.
Commits
-------
9ef7f7038d [HttpFoundation] don't override StreamedResponse::setNotModified()
This PR was merged into the 4.2-dev branch.
Discussion
----------
Trigger deprecation notices when inherited class calls parent method but misses adding new arguments
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | yes
| Tests pass? | yes
| Fixed tickets |
| License | MIT
| Doc PR |
This Pull Request concern severals components, the purpose here is to notify in dev mode that in a case of inherit class, a function will have a new or severals arguments in Symfony 5.0, therefore not implement it is deprecated since Symfony 4.2
The function is made by these conditions :
1- ```(func_num_args() < $x)``` where [x] is the number of arguments we will have in Symfony 5.0
this check allow to verify that the arguments are missing
2- ```(__CLASS__ !== \get_class($this))```
this check allow to verify that the name of the class is different than the base class, therefore that we are in the child class
3- ```(__CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName())```
this check allow to verify that the class of the current function is different than the base class, therefore the function has been rewrote into the child class
Code exemple :
```
public function method(/* void $myNewArgument = null */)
{
if ((func_num_args() < 1) && (__CLASS__ !== \get_class($this)) && (__CLASS__ !== (new \ReflectionMethod($this, __FUNCTION__))->getDeclaringClass()->getName())){
@trigger_error(sprintf('The "%s()" method will have one `void $myNewArgument = null` argument in version 5.0 and higher.Not defining it is deprecated since Symfony 4.2.', __METHOD__ ), E_USER_DEPRECATED);
}
// do something
}
```
The unit test are made by creating a child Class using for the tested function ```return parent::function()``` and by calling this child class and catching the expected depreciation message
Commits
-------
f75fffa997 Trigger deprecation notices when inherited class calls parent method but misses adding new arguments
This PR was merged into the 2.8 branch.
Discussion
----------
[Form] Fix DateTimeType html5 input format
| Q | A
| ------------- | ---
| Branch? | 2.8
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | #27233, #27254
| License | MIT
| Doc PR | N/A
Fix DateTimeType' HTML input format according to HTML specs. Currently `DateTimeType` produces html with format `yyyy-MM-dd'T'HH:mm:ssZ` but the HTML5 spec expects `yyyy-MM-dd'T'HH:mm:ss` (i.e. no `Z`). Chrome presents an empty date picker meaning edits or having a default date are broken.
Also the reverseTransform was expect to have a timezone attached, which it does not - and incorrectly marks it as being a UTC time in this case, instead of using the Transformers output TZ.
This is same as @franzwilding https://github.com/symfony/symfony/pull/27254 but with change to just straight use of `DateTime::format` and handling TZ in reverseTransform
Commits
-------
e21a1a4df1 Added relevent links for parsing to the phpdoc
4f06f1524d Add stricter checking for valid date time string
253d0a683b [Form] Fix DateTimeType html5 input format
This PR was squashed before being merged into the 4.2-dev branch (closes#28456).
Discussion
----------
[Cache][Contracts] We must save the item or the trait does not have any effect
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR |
Using the trait must result in that items gets saved.
We could use `saveDeferred` instead, it might be a performance improvement but you also may have side-effects. Say you are using two cache pool objects for the same storage.
Example use of the trait:
```php
use Psr\Cache\CacheItemInterface;
use Psr\Cache\CacheItemPoolInterface;
use Symfony\Contracts\Cache\CacheInterface;
use Symfony\Contracts\Cache\GetForCacheItemPoolTrait;
class AcmeCache implements CacheInterface
{
use GetForCacheItemPoolTrait;
private $cache;
public function __construct(CacheItemPoolInterface $cache)
{
$this->cache = $cache;
}
public function getItem(string $key): CacheItemInterface
{
return $this->cache->getItem($key);
}
public function save(CacheItemInterface $item): bool
{
return $this->cache->save($item);
}
}
```
Commits
-------
06cd8dca8f [Cache][Contracts] We must save the item or the trait does not have any effect
This PR was submitted for the master branch but it was squashed and merged into the 3.4 branch instead (closes#28458).
Discussion
----------
[OptionsResolver] remove dead code and useless else
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| License | MIT
<!--
remove dead method and useless else
-->
Commits
-------
0c1484b849 [OptionsResolver] remove dead code and useless else
This PR was merged into the 4.1 branch.
Discussion
----------
[FrameworkBundle] Don't register MessengerDataCollector if messenger is not enabled
| Q | A
| ------------- | ---
| Branch? | 4.1
| Bug fix? | no (not yet released)
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Will fix `deps=high` SecurityBundle's build once merged up to master which is broken since #28418
Commits
-------
e64ceb5 [FrameworkBundle] Don't register MessengerDataCollector if messenger is not enabled
* 4.1:
[Console] Fix typo in tests
[Console] Correct Command::initialize() and InputInterface::bind() phpdoc regarding thrown exceptions
[Console] fixed corrupt error output for unknown multibyte short option
[Console] fixed PHPDoc for setArgument/setOption in InputInterface
Register the messenger data collector only when the profiler is enabled
[Intl] Blacklist Eurozone and United Nations in Region Data Generator
* 3.4:
[Console] Fix typo in tests
[Console] Correct Command::initialize() and InputInterface::bind() phpdoc regarding thrown exceptions
[Console] fixed corrupt error output for unknown multibyte short option
[Console] fixed PHPDoc for setArgument/setOption in InputInterface
[Intl] Blacklist Eurozone and United Nations in Region Data Generator
* 2.8:
[Console] Correct Command::initialize() and InputInterface::bind() phpdoc regarding thrown exceptions
[Console] fixed corrupt error output for unknown multibyte short option
[Console] fixed PHPDoc for setArgument/setOption in InputInterface
[Intl] Blacklist Eurozone and United Nations in Region Data Generator
This PR was submitted for the master branch but it was merged into the 2.8 branch instead (closes#28472).
Discussion
----------
[Validator] Add Japanese translations
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
- Bug fixes must be submitted against the lowest branch where they apply
(lowest branches are regularly merged to upper ones so they get the fixes too).
- Features and deprecations must be submitted against the master branch.
-->
Commits
-------
7d78e3672b [Validator] Add Japanese translations
Since 278c26f589, `ConsoleHandler` tries to pass a verbosity level into `Output::write()`.
In order to make this work, the change 749fba54f9 is required which was first released in 2.8.0.
When using MonologBridge ^3.3 with a lower version of symfony/console than 2.8, an `InvalidArgumentException` with the message `Unknown output type given` will be thrown.
Not sure how to add a test for this... 🤷♂️ :
This PR was merged into the 4.2-dev branch.
Discussion
----------
[Messenger] Throw an exception when the serializer component is not loaded
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | ø
| License | MIT
| Doc PR | ø
This adds a sensible exception when trying to build the class without the Symfony Serializer component.
Commits
-------
c4415cfd67 Throw an exception when the serializer component is not loaded
This PR was squashed before being merged into the 4.2-dev branch (closes#28373).
Discussion
----------
[Console] Support max column width in Table
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | #22156, #27832
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/issues/10300
Continuation of #22225 to better preserve spaces (which preserves background colors), using `wordwrap` it caused some issues.
Also the wrapping was plain wrong by not taking the current line length into account.
While at it, it comes with `Table` integration :)
Given
```php
$table = new Table($output);
$table->setColumnMaxWidth(0, 2);
$table->setRow(0, ['pre <error>foo bar baz</error> post']);
$table->render();
$table = new Table($output);
$table->setColumnMaxWidth(0, 3);
$table->setRow(0, ['pre <error>foo bar baz</error> post']);
$table->render();
$table = new Table($output);
$table->setColumnMaxWidth(0, 4);
$table->setRow(0, ['pre <error>foo bar baz</error> post']);
$table->render();
```
![image](https://user-images.githubusercontent.com/1047696/45101516-f19b5880-b12b-11e8-825f-6a1d84f68f47.png)
Commits
-------
175f68f [Console] Support max column width in Table
This PR was merged into the 3.4 branch.
Discussion
----------
[Console] Fix typo in tests
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| BC breaks? | no <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass? | yes <!-- please add some, will be required by reviewers -->
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
Spotted in #28373
cc @chalasr
Commits
-------
01e491e [Console] Fix typo in tests
This PR was merged into the 4.2-dev branch.
Discussion
----------
Remove all usages of call_user_func_array()
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
Because it's cleaner :) (and it saves creating one extra dummy array)
Commits
-------
b2718d7666 Remove all usages of call_user_func_array()
This PR was merged into the 4.2-dev branch.
Discussion
----------
[VarExporter] fix more edge cases
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
As found while preparing #28417
Commits
-------
443bd119b1 [VarExporter] fix more edge cases