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 5.3-dev branch.
Discussion
----------
[Notifier] Fix HttpClient TransportException handling
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Right now, when exceptions are coming from HttpClient component, we always assume that there is a response and use it to throw a Notifier's `TransportException`.
But with this approach, `TransportExceptionInterface` and `DecodingExceptionInterface` aren't handled properly because they aren't containing a response at all.
This PR fix the exception handling when such exceptions are thrown.
Commits
-------
bb32beb488 [Notifier] Fix HttpClient TransportException handle
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[Uid] Unable to extend Uuid/Ulid and use fromString()
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | -
Before:
```php
CustomUuid::fromString(...) // returns `Uuid`
```
After:
```php
CustomUuid::fromString(...) // returns `CustomUuid`
```
same for `Ulid` class.
cc @fancyweb
Commits
-------
824777938d [Uid] Unable to extend Uuid/Ulid and use fromString()
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Console] add option `--short` to the `list` command
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
This PR is a follow up of https://github.com/symfony/symfony/pull/39851, triggered by @wouterj's comment at https://github.com/symfony/symfony/pull/39851#pullrequestreview-572147186.
This new option should enable creating fast shell auto-completion, by allowing the `list` command to run fast.
Commits
-------
81d5728f4a [Console] add option `--short` to the `list` command
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 5.3-dev branch.
Discussion
----------
[FrameworkBundle] do not fail when MercureBundle is not installed
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
8cdbdcb1c9 do not fail when MercureBundle is not installed
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Console] enable describing commands in ways that make the `list` command lazy
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | Fix#33804
| License | MIT
| Doc PR | -
This PR improves the way one can describe a command so that the `list` command can be made lazy:
- when provided using the `$defaultName` property or the `console.command` tag, the name of a command is now exploded using the `|` character. The first name in the list defines the name of the command, the other ones its aliases. When the first name is the empty string, the second name is used instead, and the command is declared as hidden.
- a new `$defaultDescription` static property and a new `description` tag attribute allow for defining the commands' description while registering them.
Together, this is enough to make the `list` command lazy, because this command only accesses each command's name, aliases, hidden-status, and description.
On the implementation side, this PR adds a `LazyCommand` class that proxies regular commands to make them lazy for the target purpose.
This PR will enable support for attributes for configuring a command name+description+etc.
e.g. using the concepts in #39804:
`#[CommandAutoTag(name: 'foo:bar', desc: 'boo', hidden: true)]#`
The attribute could very well split the `hidden` and `aliases` settings apart - while the underlying code and pre-PHP8 apps would use the compact form, because dealing with many static properties + methods would be a maintenance pain imho.
Commits
-------
8a1a1b8171 [Console] enable describing commands in ways that make the `list` command lazy
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Notifier] Add mercure bridge
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | Fix#36481
| License | MIT
| Doc PR | https://github.com/symfony/symfony-docs/pull/14840
Add a Notifier bridge for Mercure.
In this PR, Mercure is considered as a chatter (I'm still wondering if it's the most appropriate type).
The first approach for the DSN is `mercure://jwtToken@host:port/hubPath?topic=/foo/1&secure=false` with:
- `topic` optional (defaults to `null`)
- `secure` optional (defaults to `true`)
I'm not sure about the current way to deal with http/https. Maybe we can just replace the `mercure` scheme by `http|https`?
The notification representation is following [Activity Streams](https://www.w3.org/TR/activitystreams-core/#jsonld)
#SymfonyHackday
Commits
-------
19c6544f42 [Notifier] Add mercure bridge
* 5.2:
[HttpFoundation] Drop int return type from parseFilesize()
Added $translator->addLoader()
bug symfony/symfony#39878 [doctrine-bridge] Add username to UserNameNotFoundException
[Uid] Clarify the format returned by getTime()
fix spelling
Add check for constant in Curl client
Revert #38614, add assert to avoid regression
Fix container injection with TypedReference
Fix problem when SYMFONY_PHPUNIT_VERSION is empty string value
Update PHP CS Fixer config to v2.18
* 5.1:
[HttpFoundation] Drop int return type from parseFilesize()
Added $translator->addLoader()
bug symfony/symfony#39878 [doctrine-bridge] Add username to UserNameNotFoundException
[Uid] Clarify the format returned by getTime()
fix spelling
Add check for constant in Curl client
Revert #38614, add assert to avoid regression
Fix container injection with TypedReference
Fix problem when SYMFONY_PHPUNIT_VERSION is empty string value
Update PHP CS Fixer config to v2.18
* 4.4:
[HttpFoundation] Drop int return type from parseFilesize()
Added $translator->addLoader()
bug symfony/symfony#39878 [doctrine-bridge] Add username to UserNameNotFoundException
fix spelling
Add check for constant in Curl client
Revert #38614, add assert to avoid regression
Fix problem when SYMFONY_PHPUNIT_VERSION is empty string value
Update PHP CS Fixer config to v2.18
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 5.1 branch.
Discussion
----------
[Uid] Clarify the format returned by getTime()
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
I think adding a comment to explain the returned format is useful here, especially for uuid since their "normal" epoch is not the unix epoch.
Commits
-------
c14c7376bd [Uid] Clarify the format returned by getTime()
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Form][Uid] Add UlidType and UuidType form types
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | #36102
| License | MIT
| Doc PR |
Commits
-------
c84746bc1f add UlidType and UuidType form types
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 5.3-dev branch.
Discussion
----------
[DependencyInjection] Add a remove() method to the PHP configurator
| 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 -->
| License | MIT
| Doc PR | todo
This especially useful in the `configureContainer()` method of the kernel. It allows to not use a compiler pass to remove some services (for instance, in test mode).
Commits
-------
dcf75fab3e [DependencyInjection] Add a remove() method to the PHP configurator
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 merged into the 5.1 branch.
Discussion
----------
[DependencyInjection] Fix container injection with TypedReference
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | fix #
| License | MIT
| Doc PR | -
When using `TypedReference`, the closure signature is `function (...): Type {` which does not matche the regular expresion that replace `$this` by `$container` + `use ($container)`
note: there is no issue in 4.4. At that time, dumped container use `$this->services` and looks like:
```
$instance->closures = [0 => function (): ?\stdClass {\n
return ($this->services['foo'] ?? null);\n
}];
```
Commits
-------
f8c14acd51 Fix container injection with TypedReference
This PR was merged into the 5.3-dev branch.
Discussion
----------
[Asset] Fix JsonManifest when there is no dependency on HttpClient
| Q | A
| ------------- | ---
| Branch? | 5.x
| Bug fix? | yes
| New feature? |no
| Deprecations? |no
| Tickets | -
| License | MIT
| Doc PR | -
Recently on my project, I don't have any more dependency on HttpClient and the tests on the 5.x I have this error :
<img width="678" alt="Capture d’écran 2021-01-17 à 14 26 16" src="https://user-images.githubusercontent.com/12966574/104844393-45a7d180-58d0-11eb-870b-ad4b7b78d092.png">
~~I think this should also be the case for the RemoteJsonManifestVersionStrategy but I don't have a use case to try it.~~
It's related to https://github.com/symfony/symfony/pull/39484
Commits
-------
e0e691a074 [Asset] Fix JsonManifest when there is no dependency on HttpClient