This PR was merged into the 4.4 branch.
Discussion
----------
[Serializer] Exclude non-initialized properties accessed with getters
| 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 | no <!-- 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 -->
Allow to serialize
```php
final class Php74DummyPrivate
{
private string $uninitializedProperty;
private string $initializedProperty = 'defaultValue';
public function getUninitializedProperty(): string
{
return $this->uninitializedProperty;
}
public function getInitializedProperty(): string
{
return $this->initializedProperty;
}
}
```
Similar to #34791
Commits
-------
da9100320e Exclude non-initialized properties accessed with getters
This PR was merged into the 4.4 branch.
Discussion
----------
[Serializer] Fix tests wrongly marked as incomplete
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
https://github.com/symfony/symfony/pull/30907 has been merged meanwhile.
Commits
-------
e632302004 [Serializer] Fix tests marked as incomplete
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Translator] fix handling plural for floating numbers
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#30215
| License | MIT
Commits
-------
533cd7ef6c [Translator] fix handling plural for floating numbers
This PR was submitted for the 5.1 branch but it was merged into the 4.4 branch instead.
Discussion
----------
[Messenger] fix redis messenger options with dsn
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39834
| License | MIT
This will fix the fact that you can use framework.messenger.transports.*.options to complete/default your redis configuration
Commits
-------
a0e7bf4c0d fix redis messenger options with dsn
This PR was submitted for the 5.x branch but it was merged into the 4.4 branch instead.
Discussion
----------
[Console] Fix typo in console.command description
input and output can be handed to the command, handed off to the command, or can be handled by the command, but handled to the command doesn't work
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | N/A <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
Commits
-------
38fd86f34e Update ConsoleEvents.php
This PR was merged into the 4.4 branch.
Discussion
----------
[Messenger] Fix transporting non-UTF8 payloads by encoding them using base 64
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#33913
| License | MIT
| Doc PR | -
Replaces #33920
When using the Doctrine transport, sending emails with binary attachments currently requires a custom Messenger serializer because the "body" column is created for UTF-8 only.
In #33920, it is proposed to change the TEXT type to a BLOB. It leaves at least one problem unhandled: the conversion of existing messenger tables.
This PR takes a more conservative approach, by encoding messages to base 64, only if they are non-UTF8.
Compatibility with the existing format is preserved.
The drawback of this approach is that the size of eg email attachments is going to increase by 33% because of the extra encoding. I think this drawback is acceptable for 4.4, and that this PR is the most pragmatic way to make attachments just work.
Commits
-------
6fc9e51722 [Messenger] Fix transporting non-UTF8 payloads by encoding them using base 64
This PR was merged into the 4.4 branch.
Discussion
----------
[FrameworkBundle] add doctrine/persistence as a dev requirement
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix https://github.com/symfony/symfony/pull/39941#discussion_r563736775
| License | MIT
| Doc PR |
Otherwise, we are testing something that will never be possible in a real application.
Commits
-------
6ea9e4d7ca add doctrine/persistence as a dev requirement
This PR was merged into the 4.4 branch.
Discussion
----------
Changed private static array-properties to const
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| License | MIT
This changes all private static properties (just screened arrays) to private const. I left out those which have write access obviously and also those with `static::` access.
It is a new implementation of #38213. Based on 4.4 this time.
If merging it up creates several conflicts, you could ignore all changes of 4.4 and I create a new branch for 5.1 or 5.2. I'll do this anyway if any new private static arrays are existing there.
Commits
-------
aa79381fe4 Changed private static array-properties to const
This PR was merged into the 4.4 branch.
Discussion
----------
[PhpUnitBridge] Allow relative path to composer cache
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | fix#37652
| License | MIT
| Doc PR | -
When users defines a relative path in the `COMPOSER_CACHE_DIR` env variable,
The `simple-phpunit` code, by changing the directory (with `chdir`), give to composer a different context. At the end, composer stores its cache inside the `vendor/bin/.phpunit` folder, and inside the `vendor/bin/.phpunit/phpunit-X.Y.Z` folder.
This PR convert the relative path provided by the user into Absolute path.
Commits
-------
cde0ffdc83 Allow relative path to composer cache
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpKernel] Configure the ErrorHandler even when it is overriden
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Fixes the part of https://github.com/getsentry/sentry-symfony/issues/421 that is about `DebugHandlersListener`.
Commits
-------
31817b48e2 [HttpKernel] Configure the ErrorHandler even when it is overriden
This PR was merged into the 4.4 branch.
Discussion
----------
"export-ignore" contracts and phpunit-bridge
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39934
| License | MIT
| Doc PR | -
Since these directories are not autoloaded.
Commits
-------
12e19a9a3d "export-ignore" contracts and phpunit-bridge
This PR was merged into the 4.4 branch.
Discussion
----------
[Console] [Command] Fix Closure code binding when it is a static anonymous function
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
I'm building a single command application and I did:
```php
->setCode(static function (InputInterface $input, OutputInterface $output): void {
// my code
})
```
and it results in a warning `Cannot bind an instance to a static closure` + an exception `You must override the execute() method in the concrete command class.` I guess we should silently fail here if the Closure is not bindable.
Commits
-------
18d426871e [Console][Command] Fix Closure code binding when it is a static anonymous function
This PR was merged into the 4.4 branch.
Discussion
----------
Use class const in test
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
super minor
Commits
-------
39181f4fdf Use class const in test
This PR was merged into the 4.4 branch.
Discussion
----------
[SecurityBundle] Remove wrong test
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
This tests, asserts that all links to logout are identical, which is wrong and incompatible with BREACH mitigation #39919
Commits
-------
91c360ec75 Remove wrong test
This PR was merged into the 4.4 branch.
Discussion
----------
[MonologBridge] Typo in consoleFormatterOptions property name
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Fixes a typo in the property name, see also https://github.com/symfony/monolog-bundle/pull/384
Commits
-------
a70b71b50e Fix typo in property name
This PR was merged into the 4.4 branch.
Discussion
----------
[DoctrineBridge] Add username to UserNameNotFoundException
| 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#39878 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | <!-- 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.
-->
Adds username to UserNameNotFoundException when thrown from EntityUserProvider.
In other places there are no tests for this and I am not sure if the current setup even allows asserting if exceptions contain fields, besides the default ones.
Commits
-------
ee5b51af78 bug symfony/symfony#39878 [doctrine-bridge] Add username to UserNameNotFoundException
This PR was merged into the 4.4 branch.
Discussion
----------
[Translator] Added $translator->addLoader() to README example
For the example to work it needs the line with $translator->addLoader().
Fixed it for request at https://github.com/symfony/symfony/issues/39854#issuecomment-762283989
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| 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
-------
ba29d2a2f0 Added $translator->addLoader()
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpFoundation] Drop int return type from parseFilesize()
| Q | A
| ------------- | ---
| Branch? | 4.4 <!-- see below -->
| 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 [octobercms/october#5410](https://github.com/octobercms/october/issues/5410)
| License | MIT
| Doc PR |
Related: #34516, #34508, 93685026b0, https://github.com/octobercms/october/issues/5410
Commits
-------
a1b31f840c [HttpFoundation] Drop int return type from parseFilesize()
This PR was merged into the 4.4 branch.
Discussion
----------
Update PHP CS Fixer config to v2.18
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| 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 -->
<!--
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
-------
734361bb0e Update PHP CS Fixer config to v2.18
This PR was merged into the 4.4 branch.
Discussion
----------
[Validator] fix spelling
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38744
| 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
-------
c488ff0089 fix spelling
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpClient] Add check for constant in Curl client
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
After updating Curl on a server, I started receiving the following warning:
```
Warning: Use of undefined constant CURLHEADER_SEPARATE - assumed 'CURLHEADER_SEPARATE'
```
This is a bit of a strange issue, so I'm not 100% sure if this fix is correct (or even if it needs fixing here or in PHP).
The `CURLOPT_HEADEROPT` and `CURLHEADER_SEPARATE` have been added in [Curl 7.37.0](https://curl.se/libcurl/c/CURLHEADER_SEPARATE.html). The update on the server installed Curl `7.29.0`.
So technically these constants should not exist, but in fact the `CURLOPT_HEADEROPT` constant is defined but not the `CURLHEADER_SEPARATE` constant.
This seems a bit weird since both constants have been introduced in the same version.
**PHP Version**: 7.4.14
**Curl Version**: 7.29.0
**CentOs Version**: CentOS Linux release 7.9.2009
**symfony/http-client Version**: 5.0.3
```bash
Psy Shell v0.10.6 (PHP 7.4.14 — cli) by Justin Hileman
>>> defined('CURLOPT_HEADEROPT')
=> true
>>> defined('CURLHEADER_SEPARATE')
=> false
>>> curl_version()
=> [
"version_number" => 466176,
"age" => 3,
"features" => 558781,
"ssl_version_number" => 0,
"version" => "7.29.0",
"host" => "x86_64-redhat-linux-gnu",
"ssl_version" => "NSS/3.53.1",
"libz_version" => "1.2.7",
"protocols" => [
"dict",
"file",
"ftp",
"ftps",
"gopher",
"http",
"https",
"imap",
"imaps",
"ldap",
"ldaps",
"pop3",
"pop3s",
"rtsp",
"scp",
"sftp",
"smtp",
"smtps",
"telnet",
"tftp",
],
"ares" => "",
"ares_num" => 0,
"libidn" => "1.28",
"iconv_ver_num" => 0,
"libssh_version" => "libssh2/1.8.0",
]
>>>
```
```bash
$ yum info libcurl
Installed Packages
Name : curl
Arch : x86_64
Version : 7.29.0
Release : 59.el7_9.1
Size : 528 k
Repo : installed
From repo : updates
```
Curl PHP info:
```
cURL support => enabled
cURL Information => 7.29.0
Age => 3
Features
AsynchDNS => Yes
CharConv => No
Debug => No
GSS-Negotiate => Yes
IDN => Yes
IPv6 => Yes
krb4 => No
Largefile => Yes
libz => Yes
NTLM => Yes
NTLMWB => Yes
SPNEGO => No
SSL => Yes
SSPI => No
TLS-SRP => No
Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host => x86_64-redhat-linux-gnu
SSL Version => NSS/3.53.1
ZLib Version => 1.2.7
libSSH Version => libssh2/1.8.0
```
Commits
-------
c888797313 Add check for constant in Curl client
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpFoundation] Revert #38614 and add assert to avoid regressions
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39882
| License | MIT
#38614 introduced a BC, this PR revert the PR, update tests and add an assert to avoid regressions.
Commits
-------
3058cd0ec6 Revert #38614, add assert to avoid regression
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
Fix problem when SYMFONY_PHPUNIT_VERSION is empty string value
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? |
| 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 -->
This should fix that when `SYMFONY_PHPUNIT_VERSION` is set again on empty:
```
SYMFONY_PHPUNIT_VERSION= vendor/bin/simple-phpunit
```
it does not error with:
```bash
Creating a "phpunit/phpunit" project at "./phpunit--1"
[UnexpectedValueException]
Could not parse version constraint .*: Invalid version string ".*"
```
Commits
-------
72ce010c0b Fix problem when SYMFONY_PHPUNIT_VERSION is empty string value
This PR was merged into the 4.4 branch.
Discussion
----------
[DependencyInjection] Skip deprecated definitions in CheckTypeDeclarationsPass
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
When a definition uses a deprecated class , `CheckTypeDeclarationsPass` (with `$autoload = true`) will autoload the class, which triggers a deprecation notice. That breaks the CI in #39802 because the compiler pass is registered inside the SecurityBundle test suite.
I propose to stop checking deprecated definitions. Makes sense?
Commits
-------
531c81a06e [DI] Skip deprecated definitions in CheckTypeDeclarationsPass