This PR was merged into the 4.4 branch.
Discussion
----------
Optimized some strlen() calls when possible
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Done with PhpStorm refactoring tools and only when it's safe to do.
Commits
-------
53aaa9ef7d Optimized some strlen() calls when possible
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
Use is_iterable() function when possible
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
PHP added `is_iterable()` in PHP 7.1.0 (see https://www.php.net/manual/en/function.is-iterable.php) and Symfony 4.4 requires `>=7.1.3`, so maybe we can use this function to simplify some code.
Commits
-------
6919c1317d Use is_iterable() function when possible
This PR was merged into the 4.4 branch.
Discussion
----------
[Validator] Add German expression language syntax constraint violation message
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
1d6d57d179 Add German expression language syntax constraint violation message
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[HttpFoundation] fix FileBag under PHP 8.1
| Q | A
| ------------- | ---
| Branch? | 4.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 #... <!-- 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 -->
See https://php.watch/versions/8.1/$_FILES-full-path - in \Symfony\Component\HttpFoundation\FileBag::convertFileInformation() we check against a list of hardcoded keys. This logic breaks in PHP 8.1 because of the new key.
Commits
-------
dc3504989b [HttpFoundation] fix FileBag under PHP 8.1
This PR was submitted for the 5.4 branch but it was merged into the 4.4 branch instead.
Discussion
----------
[PhpUnitBridge] Fix composer resolution on Windows
| Q | A
| ------------- | ---
| Branch? | 4.4 and next
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#42129
| License | MIT
<!--
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.
- Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
-->
This prepends the php executable to the resolved composer path even when `COMPOSER_BINARY` is set on Windows. Please see #42129 for description.
Commits
-------
746f83adbc Fix composer resolution on windows
This PR was merged into the 4.4 branch.
Discussion
----------
[FrameworkBundle] Fix broken mock
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
Backport from #42109. The mocked implementations of `getInheritData()` and `getName()` will currently return `null` which is something the real implementation would never do.
Commits
-------
6d2f428911 [FrameworkBundle] Fix broken mock
This PR was merged into the 4.4 branch.
Discussion
----------
[DependencyInjection] Support for intersection types
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #41552
| License | MIT
| Doc PR | N/A
Commits
-------
d28cf24258 [DependencyInjection] Support for intersection types
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpFoundation] Fix return types of SessionHandler::gc()
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #41552
| License | MIT
| Doc PR | N/A
`SessionHandler::gc()` should return the number of garbage-collected sessions. We often return `true` which violates that contract.
Commits
-------
1261a4139d [HttpFoundation] Fix return types of SessionHandler::gc()
This PR was merged into the 4.4 branch.
Discussion
----------
[VarDumper] Support for intersection types
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #41552
| License | MIT
| Doc PR | N/A
Commits
-------
3cf105766a [VarDumper] Support for intersection types
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Cache] Support decorated Dbal drivers in PdoAdapter
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Explanation in this PR
| License | MIT
Doctrine v3 supports middleware for Drivers. Upon creating the Connection, `middleware->wrap(Driver): Driver` [is called](https://github.com/doctrine/dbal/blob/3.1.x/src/DriverManager.php#L210), in which the middleware can wrap/decorate the Driver class. So that it can perform tracing [for example](https://github.com/getsentry/sentry-symfony/blob/master/src/Tracing/Doctrine/DBAL/TracingDriverMiddleware.php#L37).
When this happens, the Driver class inside the Connection is no longer one of Doctrine's well known Driver classes. The `PdoAdapter ` uses this class to determine the database platform. Which breaks once the Driver is decorated and no longer one of the classes [listed](https://github.com/symfony/symfony/blob/5.4/src/Symfony/Component/Cache/Adapter/PdoAdapter.php#L452) in the `PdoAdapter`.
Since Dbal exposes this middleware as a feature, I think it would be nice for the `PdoAdapter` to support this.
To solve this, the `getDatabasePlatform` can be used. This returns a `Doctrine\DBAL\Platforms\AbstractPlatform` which defines the abstract method `getName`. This returns a value very similar to the list in the `PdoAdapter`. The names don't match exactly, so therefor a small mapping is done to get right the name used in the adapter. As far as a I know, there'd be no other implications with this change.
Related: https://github.com/getsentry/sentry-symfony/issues/530
Commits
-------
58d74e30be [Cache] Support decorated Dbal drivers in PdoAdapter
This PR was merged into the 4.4 branch.
Discussion
----------
[EventDispatcher] Declare return type of `getSubscribedEvents()`
Fixes
Method getSubscribedEvents() return type has no value type specified in iterable type array.
💡 See: https://phpstan.org/blog/solving-phpstan-no-value-type-specified-in-iterable-type
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | kinda
| New feature? | no
| Deprecations? | no
| Tickets | Fix
| License | MIT
| Doc PR |
Commits
-------
9ba0a9118a Declare returned type.
This PR was submitted for the 5.4 branch but it was merged into the 4.4 branch instead.
Discussion
----------
[Workflow] qa: add missing type-hints to workflow `Transition`
| Q | A
| ------------- | ---
| Branch? | 5.4
| Bug fix? | not really
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| License | MIT
<!--
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.
- Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
-->
Hey there, I am using the `Workflow` component and realized that `Transition` lacks method type-hints. I've added a PHPDoc to reflect the return types.
If this is considered a bug fix, I can rebase against 5.3. If anything else is missing, please let me know.
Commits
-------
660037858f qa: add missing type-hints to workflow `Transition`
This PR was merged into the 4.4 branch.
Discussion
----------
Add a Special Case for Translating Choices in en_US_POSIX
| Q | A
| ------------- | ---
| Branch? | 4.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 https://github.com/symfony/symfony/issues/42036 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | n/a <!-- required for new features -->
This adds a special case similar to `pt_BR` for handling `en_US_POSIX`
which is set as the default locale on some operating systems.
~Two tests here might be over the top, not sure.~
Not over the top! One of them caught the same issue in the translation component itself 🎉
Commits
-------
f0bb7a36c5 Add a Special Case for Translating Choices in en_US_POSIX
This PR was merged into the 4.4 branch.
Discussion
----------
Fix ctype_digit deprecation
| Q | A
| ------------- | ---
| Branch? | 4.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 #... <!-- 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 -->
Running the Yaml unit tests on PHP 8.1 built: Jul 12 2021 00:22:13 results in the following PHP Notices:
```
Testing /Users/alex/dev/symfony/src/Symfony/Component/Yaml/Tests
............................................................... 63 / 689 ( 9%)
............................................................... 126 / 689 ( 18%)
............................................................... 189 / 689 ( 27%)
............................................................... 252 / 689 ( 36%)
............................................................... 315 / 689 ( 45%)
............................................................... 378 / 689 ( 54%)
............................................................... 441 / 689 ( 64%)
............................................................... 504 / 689 ( 73%)
............................................................... 567 / 689 ( 82%)
............................................................... 630 / 689 ( 91%)
........................................................... 689 / 689 (100%)
Time: 00:00.336, Memory: 20.00 MB
OK (689 tests, 984 assertions)
Unsilenced deprecation notices (131)
109x: ctype_digit(): Argument of type int will be interpreted as string in the future
53x in DumperTest::testSpecifications from Symfony\Component\Yaml\Tests
21x in DumperTest::testInlineLevel from Symfony\Component\Yaml\Tests
16x in InlineTest::testDump from Symfony\Component\Yaml\Tests
7x in DumperTest::testDumpingArrayObjectInstancesWithNumericKeysInlined from Symfony\Component\Yaml\Tests
7x in DumperTest::testDumpingArrayObjectInstancesWithNumericKeysRespectsInlineLevel from Symfony\Component\Yaml\Tests
3x in DumperTest::testIndentationInConstructor from Symfony\Component\Yaml\Tests
1x in DumperTest::testObjectSupportEnabled from Symfony\Component\Yaml\Tests
1x in DumperTest::testObjectSupportDisabledButNoExceptions from Symfony\Component\Yaml\Tests
22x: ctype_digit(): Argument of type float will be interpreted as string in the future
15x in DumperTest::testSpecifications from Symfony\Component\Yaml\Tests
6x in InlineTest::testDump from Symfony\Component\Yaml\Tests
1x in InlineTest::testDumpNumericValueWithLocale from Symfony\Component\Yaml\Tests
```
Commits
-------
5c57324117 Fix ctype_digit deprecation
This PR was merged into the 4.4 branch.
Discussion
----------
[Yaml] Fixed an exception message
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
I'd prefer to group tiny fixes like this in a single PR, but they are for different branches.
Commits
-------
7036f2f561 [Yaml] Fixed an exception message
This PR was merged into the 4.4 branch.
Discussion
----------
[WebProfilerBundle] Fix the values of some CSS properties
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
You can check the valid values of these properties at:
* https://developer.mozilla.org/en-US/docs/Web/CSS/max-width
* https://developer.mozilla.org/en-US/docs/Web/CSS/min-height
Commits
-------
e335c28d44 [WebProfilerBundle] Fix the values of some CSS properties
See https://github.com/symfony/symfony/issues/42036
This adds a special case similar to `pt_BR` for handling `en_US_POSIX`
which is set as the default locale on some operating systems (Alpine
Linux, for instance).
This PR was merged into the 4.4 branch.
Discussion
----------
[DoctrineBridge] fix setting default mapping type to attribute/annotation on php 8/7 respectively
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
This PR fixes a DX issue with the default recipe: right now, the mapping type has to be explicitly defined. This forces [the default recipe](https://github.com/symfony/recipes/blob/master/doctrine/doctrine-bundle/2.4/config/packages/doctrine.yaml#L15) to stick to "annotation", while the world is moving to "attribute".
Commits
-------
f06f85fbd8 [DoctrineBridge] fix setting default mapping type to attribute/annotation on php 8/7 respectively