This PR was squashed before being merged into the 3.4 branch.
Discussion
----------
[DoctrineBridge] indexBy could reference to association columns
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix#37982 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | -
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/releases):
- Always add tests and ensure they pass.
- Never break backward compatibility (see https://symfony.com/bc).
- Bug fixes must be submitted against the lowest maintained 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 branch 5.x.
-->
This is my approach to solve #37982. It partials reverts @xabbuh PR #38604
This is my first Symfony contribution, so please, tell me if I need to do something more or something is wrong.
Also, this bug affects 4.x and 5.x versions. I think merging in this branches is done automatically. If not, please tell me.
Thanks you
Commits
-------
f9a0e000e9 failing test for issue 38861
4c36145664 [DoctrineBridge] indexBy could reference to association columns
This PR was merged into the 4.4 branch.
Discussion
----------
[DoctrineBridge] also reset id readers
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38890
| License | MIT
| Doc PR |
Commits
-------
784bd0080d also reset id readers
This PR was merged into the 4.4 branch.
Discussion
----------
[ProxyManagerBridge] replace ProxyManager\Version by feature detection
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
I'd like to get rid of this `Version` class, which is the source of so many issues with deps.
This won't remove the class from ocramius/proxy-manager, but that's a separate story that this change could enable in the end :)
Commits
-------
5f77aad6ca [ProxyManagerBridge] replace ProxyManager\Version by feature detection
This PR was merged into the 4.4 branch.
Discussion
----------
[CI] Fix invalid Doctrine parameter syntax
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39008
| License | MIT
| Doc PR | no
~~I cannot reproduce locally.. So Im trying to fix this with the help of the CI~~
I have reproduced locally. This fix will help.
```
❯ phpunit Tests/Transport/DoctrineIntegrationTest.php
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.
.E.... 6 / 6 (100%)
Time: 111 ms, Memory: 6.00 MB
There was 1 error:
1) Symfony\Component\Messenger\Bridge\Doctrine\Tests\Transport\DoctrineIntegrationTest::testSendWithDelay
Doctrine\DBAL\SQLParserUtilsException: Value for :body not found in params array. Params array key should be "body"
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/SQLParserUtilsException.php:21
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/SQLParserUtils.php:277
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/SQLParserUtils.php:203
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/Connection.php:1019
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/Query/QueryBuilder.php:210
src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineIntegrationTest.php:66
ERRORS!
Tests: 6, Assertions: 8, Errors: 1.
```
Apply patch:
```
❯ phpunit Tests/Transport/DoctrineIntegrationTest.php
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.
...... 6 / 6 (100%)
Time: 94 ms, Memory: 6.00 MB
OK (6 tests, 9 assertions)
```
Commits
-------
0ab3032c52 [CI] Fixed invalid doctrine parameter syntax
This PR was merged into the 4.4 branch.
Discussion
----------
[Console] Fix ANSI when stdErr is not a tty
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38981
| License | MIT
| Doc PR | -
Taking the @wouterj 's comment into account (https://github.com/symfony/symfony/issues/38981#issuecomment-721915428)
This PR prevents using the same Formatter for stdOut and stdErr when possible.
When user send a custom formatter (or call `setFormatter`) the previous logic is kept.
Otherwise, symfony is asked to create the Formatter, and thus is able to clone the formatter.
In a future PR targeting 5.3, we could improve the constructor to let people inject 2 distinguished formatters
Commits
-------
f3a398b5af Fix ANSI when stdErr is not a tty
This PR was merged into the 4.4 branch.
Discussion
----------
[DependencyInjection] Fix circular reference with Factory + Lazy Iterrator
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38970
| License | MIT
| Doc PR | -
The issue, occurs when a `factory` iterates over services (think tagged iterator) that also need the `factory`.
The PhpDumper is not able to detect the loop because the TaggedService iterator is flaged as "lazy" which is ignored in the loop detection. 2d7e0b02c6/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php (L474-L476)
See test case for a reproduce case.
This PR takes into account lazy services when computing loops.
I'm not sure this is the right thing to do /cc @nicolas-grekas .
A better solution could be to do this ONLY when the service is used as a factory?
Commits
-------
51ff060603 Fix circular referene with Factory and LazyIterator
This PR was merged into the 4.4 branch.
Discussion
----------
Rename security.pt_PT.xlf to security.pt.xlf
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38774
| License | MIT
Missing translations for Portuguese (pt).
As agreed in https://github.com/symfony/symfony/issues/38739#issuecomment-721210579 the common Portuguese translation file for security domain should be ``security.pt.xlf`` rather than ``security.pt_PT.xlf``
Commits
-------
3dd385f319 Rename security.pt_PT.xlf to security.pt.xlf
This PR was merged into the 4.4 branch.
Discussion
----------
[PhpUnitBridge] fix replaying skipped tests
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Spotted while working on https://github.com/symfony/polyfill/pull/310
See also https://3v4l.org/D6Gro for the newly skipped tests in symfony/intl
Commits
-------
849d1b3845 [PhpUnitBridge] fix replaying skipped tests
This PR was merged into the 4.4 branch.
Discussion
----------
Switch nightly run to 8.0snapshot
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
It's too early to test on php 8.1, so let's switch to 8.0 instead.
Commits
-------
b4730cbe1d Switch nightly run to 8.0snapshot
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpKernel] Fix session initialized several times
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
The session injected in the request is a factory. When the request is **cloned** (ie sub-request) while the session is not yet used in the master request (the session is still a factory), both Master and Sub request will have a factory.
If both requests attempt to read the session afterward, they both triggers the factory, and both initialize the session.
It's not a dead end for the `SessionListener` because the session come from the container and is shared, but:
- the session is initialized ($storage->setOptions(['cookie_secure' => true])) twice
- if we replace the sesssion from container to a factory, it could be an issue
Commits
-------
30a3c7c87b Fix session called initized several time
This PR was merged into the 4.4 branch.
Discussion
----------
[DependencyInjection] Improve performances in CircualReference detection
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37850
| License | MIT
| Doc PR | -
This PR change the way circular references are detected. And improve the project submitted in #37850 [by **86%**](https://blackfire.io/profiles/compare/cc4aa41d-5b63-4caa-9a1b-fc282dc5d64a/graph) (Build the container in 1.1 sec instead of 10)
Issue is: When a project contains a lot Circular Reference, the Dumper [spend a lot of time](https://blackfire.io/profiles/54f6eba2-b93c-4f2b-a268-1e58883faecb/graph) in merging those circular references.
note: a circular reference is not an issue when an service is not injected by constructor, but this Can not be known until all references are resolved (performed previously by connectCircularReferences)
This PR removed the connectCircularReferences and generate a flatten tree of dependencies:
- the key is the service ID
- the value is the list of direct **AND** indirect dependency + path to join the dependency
I also [benched the PR with a project with few references](https://blackfire.io/profiles/compare/2f9902e6-3347-40b3-8421-e1fd09c067d2/graph) and result are almost the same before/after.
Commits
-------
d4db75692b Improve performances in CircualReference detection
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Process] Dont test TTY if there is no TTY support
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38946
| License | MIT
| Doc PR |
Commits
-------
e918e5ab30 [Process] Dont test TTY if there is no TTY support
This PR was merged into the 4.4 branch.
Discussion
----------
[PHPUnitBridge] Fixed crash on Windows with PHP 8
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | no
| License | MIT
| Doc PR | no
The install command crashed with the message "The filename, directory name, or volume label syntax is incorrect.".
It happens only on Windows with PHP 8.
Probably due to https://github.com/php/php-src/blob/PHP-8.0/UPGRADING#L1121-L1123
I have a small repo to show the problem and how it is fixed: https://github.com/villfa/test-phpunit-bridge
Commits
-------
4b958917fd [PHPUnitBridge] Fixed crash on Windows with PHP 8
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
Fixing some Mongolian
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38916
| License | MIT
| Doc PR |
Hey @luffy1727, could you help me with the last two strings here?
Commits
-------
5c848d9796 Fixing some Mongolian
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
translating the validators for european portuguese language
| Q | A
| ------------- | ---
| Branch? | 5.x for features / 4.4 or 5.1 for bug fixes <!-- see below -->
| Bug fix? | yes/no
| New feature? | yes/no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | yes/no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | symfony/symfony-docs#... <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.
Additionally (see https://symfony.com/releases):
- Always add tests and ensure they pass.
- Never break backward compatibility (see https://symfony.com/bc).
- Bug fixes must be submitted against the lowest maintained 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 branch 5.x.
-->
Commits
-------
c0524197a0 translating the validators for european portuguese language
This PR was merged into the 4.4 branch.
Discussion
----------
[Validator] Merge RecursiveValidatorTest with its parents
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
`RecursiveValidatorTest` as two abstract parent classes that to my understanding exist mainly for historic reasons: We used to have different validator implementations and those abstract classes contained some shared test cases. This is not the case anymore, which leaves `RecursiveValidatorTest` as the only child class of those two abstract classes.
This PR suggests to merge the three classes into one.
I've executed the test suite before and after the change and PHPUnit reported the same number of assertions and test cases.
I've also checked how the merge to 5.1 and 5.x would look like. The merge to 5.1 works without conflicts. From 5.1 to 5.x, two additional test cases have to be moved down and the reference to a few fixture classes needs to be adjusted.
Commits
-------
6822774d37 [Validator] Merge RecursiveValidatorTest with its parents.