This PR was merged into the 5.1 branch.
Discussion
----------
[PropertyInfo] Fix breaking change with has*(arguments...) methods
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39885
| 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.
-->
Until 5.0:
```php
class Dummy
{
private $elements;
public function hasElement($element): bool
{
// ...
}
}
$extractor = new ReflectionExtractor();
$extractor->isReadable('Dummy', 'element'); // false
```
After 5.0:
```php
class Dummy
{
private $elements;
public function hasElement($element): bool
{
// ...
}
}
$extractor = new ReflectionExtractor();
$extractor->isReadable('Dummy', 'element'); // true => BREAKING CHANGE
```
Commits
-------
37cc16e3d8 [PropertyInfo] Fix breaking change with has*(arguments...) methods
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 5.1 branch.
Discussion
----------
Use class const in test
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
super minor, same as #39930, but for `5.1`
I will finish this PR after #39930 is merged and upmerged
Commits
-------
4a98eeecdc [Security] [HttpFoundation] Use class const in test
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[Notifier] [OvhCloud] “Invalid signature” for message with slashes
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Fix#39836 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
Test to show issue of invalid signature when message contains slash.
Commits
-------
9f01fb84b7 [Notifier] [OvhCloud] “Invalid signature” for message with slashes
* 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 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 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
* 5.1:
[Security] Replace message data in JSON security error response
[DI] Skip deprecated definitions in CheckTypeDeclarationsPass
[Messenger][AmazonSqs] Fix auto-setup for fifo queue
[DoctrineBridge] Take into account that indexBy="person_id" could be a db column name, for a referenced entity
* 4.4:
[Security] Replace message data in JSON security error response
[DI] Skip deprecated definitions in CheckTypeDeclarationsPass
[DoctrineBridge] Take into account that indexBy="person_id" could be a db column name, for a referenced entity
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
This PR was merged into the 4.4 branch.
Discussion
----------
[DoctrineBridge] Take into account that indexBy="person_id" could be a db column name, for a referenced entity
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | none
| License | MIT
| Doc PR | bug-fix only
In Symfony 4.4.17 (I think), using ManyToMany in doctrine, along with indexBy="person_id" (in the related entity, which has a property of "id" (which in-turn uses the db column "person_id" worked as expected. When upgrading to Symfony 5.2.1, this stops working.
This change continues on from issue #37982 to fix a further edge case.
Commits
-------
472eab11e9 [DoctrineBridge] Take into account that indexBy="person_id" could be a db column name, for a referenced entity
This PR was merged into the 4.4 branch.
Discussion
----------
[travis] use PHP 8.0 to patch return types and run deps=low
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
(I need to verify that DebugClassLoader works as expected before merging)
Commits
-------
7f5ea78fb8 [travis] use PHP 8.0 to patch return types and run deps=low
This PR was merged into the 4.4 branch.
Discussion
----------
[DependencyInjection] Don't trigger notice for deprecated aliases pointing to deprecated definitions
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Defining an alias that points to a deprecated definition should trigger a deprecation notice, but when the alias itself is deprecated, it should not trigger.
Commits
-------
38f98a1165 Don't trigger deprecation for deprecated aliases pointing to deprecated definitions
This PR was merged into the 4.4 branch.
Discussion
----------
[Config] Add \Symfony\Component\Config\Loader::load() return type
| 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/39761 <!-- 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.
-->
`Symfony\Component\Config\Loader::load()` is missing return type, added it for consistency and static analysis purposes.
Commits
-------
fec66e61c8 [Config] Add \Symfony\Component\Config\Loader::load() return type
This PR was merged into the 4.4 branch.
Discussion
----------
[HttpFoundation] use atomic writes in MockFileSessionStorage
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39167
| License | MIT
| Doc PR | -
Instead of #39808
Commits
-------
5290e978bd [HttpFoundation] use atomic writes in MockFileSessionStorage
This PR was merged into the 5.1 branch.
Discussion
----------
Make EmailMessage & SmsMessage transport nullable
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
Ideally, this should have been done in #38361 as it's exactly the same problem: the `transport` method can be called with `null` with deserializing a message from json (for example).
Commits
-------
d98aca06d0 Make EmailMessage & SmsMessage transport nullable
This PR was merged into the 4.4 branch.
Discussion
----------
[Serializer] Rename normalize param
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
The ProblemNormalizer is the only one Normalizer which
- Use a different param name `$exception` instead of the one in the interface `$object`.
- Doesn't type check the param.
The first point lead to an unfixable error with Psalm when extending the ProblemNormalizer
- If the variable is named `$object` it does not match with the parent
- If the variable is named `$exception` it does not match with the interface
Commits
-------
7e6eee2789 Rename normalize param
* 5.1:
Dont allow unserializing classes with a destructor
Dont allow unserializing classes with a destructor - 4.4
[Cache] fix possible collision when writing tmp file in filesystem adapter
a colon followed by spaces exclusively separates mapping keys and values
Contracts: Remove ellipsis
fix handling float-like key attribute values
Fix missing BCC recipients in SES bridge
Dont allow unserializing classes with a destructor - 5.1
* 4.4:
Dont allow unserializing classes with a destructor
Dont allow unserializing classes with a destructor - 4.4
[Cache] fix possible collision when writing tmp file in filesystem adapter
a colon followed by spaces exclusively separates mapping keys and values
Contracts: Remove ellipsis
fix handling float-like key attribute values
Fix missing BCC recipients in SES bridge
This PR was merged into the 4.4 branch.
Discussion
----------
Dont allow unserializing classes with a destructor
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Prevent destructors with side-effects from being unserialized
Commits
-------
facc095944 Dont allow unserializing classes with a destructor
This PR was merged into the 5.2 branch.
Discussion
----------
[HttpClient] Fix transient test with HttpClient jitter
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | f-
| License | MIT
| Doc PR | -
Fix transient test, when asserting jitter generates random delay
Commits
-------
70fe66005a Fix transient test with HttpClient jitter
This PR was merged into the 4.4 branch.
Discussion
----------
[Mailer] Fix missing BCC recipients in SES bridge
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#36333
| License | MIT
| Doc PR | -
When using the `ses` (alias of `ses+https`) scheme, the bridge send the RawEmail to AWS.
But RawEmails does not contains the BCC recipients.
This PR adds the envelope's recipients to the list of Destinations in Amazon SES payload.
Commits
-------
1cfc763018 Fix missing BCC recipients in SES bridge
This PR was merged into the 4.4 branch.
Discussion
----------
Contracts: Remove ellipsis
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR
I don't understand what the ellipsis is implying. I think it's better to remove it, it makes the contract clearer.
Commits
-------
aa7f83576c Contracts: Remove ellipsis
This PR was merged into the 4.4 branch.
Discussion
----------
[Yaml] a colon followed by spaces exclusively separates mapping keys and values
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix https://github.com/symfony/symfony/pull/39769#issuecomment-757540072
| License | MIT
| Doc PR |
Commits
-------
f72c6a5ad4 a colon followed by spaces exclusively separates mapping keys and values
This PR was merged into the 4.4 branch.
Discussion
----------
[Cache] fix possible collision when writing tmp file in filesystem adapter
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39786
| License | MIT
| Doc PR | -
Commits
-------
340d15e400 [Cache] fix possible collision when writing tmp file in filesystem adapter
This PR was merged into the 5.2 branch.
Discussion
----------
Dont allow unserializing classes with a destructor - 5.2
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Prevent destructors with side-effects from being unserialized
Commits
-------
98601908bb Dont allow unserializing classes with a destructor - 5.2
This PR was merged into the 4.4 branch.
Discussion
----------
Dont allow unserializing classes with a destructor - 4.4
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Prevent destructors with side-effects from being unserialized
Commits
-------
955395c999 Dont allow unserializing classes with a destructor - 4.4
This PR was merged into the 5.1 branch.
Discussion
----------
Dont allow unserializing classes with a destructor - 5.1
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Prevent destructors with side-effects from being unserialized
Commits
-------
07402f4af3 Dont allow unserializing classes with a destructor - 5.1
This PR was merged into the 5.2 branch.
Discussion
----------
[Security] Move the handleAuthenticationSuccess logic outside try/catch block
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
The current implementation of `AuthenticationManager` handle the `handleAuthenticationSuccess` logic in a try/catch block which triggers the `handleAuthenticationFailure` in case of failure.
Which could leads to inconsistency and unexpected behavior. The authentication is either successfully or failure, but can't be both in the same request.
Commits
-------
da5c39ec2e Move AuthenticationSuccessEvent outside try/catch block
This PR was merged into the 4.4 branch.
Discussion
----------
[WIP] Use ::class keyword when possible
| Q | A
| ------------- | ---
| Branch? | 4.4 <!-- see below -->
| 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 -->
| License | MIT
| Doc PR | n/a
Commits
-------
036a36cb14 Use ::class keyword when possible
This PR was merged into the 4.4 branch.
Discussion
----------
Improve composer.json descriptions
| Q | A
| ------------- | ---
| Branch? | 4.4 <!-- see below -->
| Bug fix? | no
| New feature? | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets | Refs #39768 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License | MIT
| Doc PR | n/a
Commits
-------
611a2dfaf3 Improve composer.json descriptions
This PR was merged into the 4.4 branch.
Discussion
----------
[Form] Update AbstractType.php
Switched from parent type hard-coded FQCN to `::class` keyword.
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
ff13967545 Switched from parent type hard-coded FQCN to `::class` keyword.
* 5.1:
Rename parameter of @method configureContainer
[DependencyInjection] Support PHP 8 builtin types in CheckTypeDeclarationsPass
[DependencyInjection] Fix InvalidParameterTypeException for function parameters
[Notifier] Cleanup changelog (5.1)
[VarDumper] fix mutating $GLOBALS while cloning it
* 4.4:
[DependencyInjection] Support PHP 8 builtin types in CheckTypeDeclarationsPass
[DependencyInjection] Fix InvalidParameterTypeException for function parameters
[VarDumper] fix mutating $GLOBALS while cloning it
This PR was squashed before being merged into the 5.2 branch.
Discussion
----------
[Notifier] Use abstract test cases in 5.2
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Follows #39495
| License | MIT
| Doc PR | ---
Same as #39495, but for `5.2`
cc @derrabus
Commits
-------
8f6b08c131 [Notifier] Use abstract test cases in 5.2
This PR was merged into the 5.1 branch.
Discussion
----------
[Notifier] Cleanup changelog (5.1)
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
New bridges are not mentioned in the changelog file of Notifier itself, but in the CHANGELOG of the bridge.
Commits
-------
6bfcaa7ede [Notifier] Cleanup changelog (5.1)
This PR was merged into the 5.2 branch.
Discussion
----------
[Notifier] Cleanup changelog (5.2)
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
New bridges are not mentioned in the changelog file of Notifier itself, but in the CHANGELOG of the bridge.
Same as #39739 but for `5.2`
Commits
-------
be5a541325 [Notifier] Cleanup changelog (5.2)
This PR was merged into the 4.4 branch.
Discussion
----------
[DependencyInjection] Support PHP 8 builtin types in CheckTypeDeclarationsPass
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
`CheckTypeDeclarationsPass` currently explodes if it encounters one of following the new builtin types of PHP 8:
* `false` (can only appear as part of a union)
* `mixed` (we don't need to check anything)
In either case, the pass will try to call a method `is_false()`/`is_mixed()` and fail.
This PR should fix both cases.
Commits
-------
f16230be5d [DependencyInjection] Support PHP 8 builtin types in CheckTypeDeclarationsPass
Default application Kernel has `configureContainer` method defined with `$container` as first parameter. PhpStorm inspection said:
```
Parameter's name changed during inheritance
Parameter's name changed from 'c' to 'container'
```
This PR was merged into the 4.4 branch.
Discussion
----------
[VarDumper] fix mutating $GLOBALS while cloning it
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39679
| License | MIT
| Doc PR | -
Also preparing for https://wiki.php.net/rfc/restrict_globals_usage
Commits
-------
384b0adf38 [VarDumper] fix mutating $GLOBALS while cloning it
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[Notifier] Add tests for SlackOptions
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
Commits
-------
dcaee9970b [Notifier] Add tests for SlackOptions
* 5.1:
parse cookie values containing the equal sign
make some time dependent tests more resilient
do not break when loading schemas from network paths on Windows
* 4.4:
parse cookie values containing the equal sign
make some time dependent tests more resilient
do not break when loading schemas from network paths on Windows
* 5.1:
[Uid] Hardcode UuidV3 & UuidV5 TYPE conditional constants
[Uid] Use the Uuid constructor when reconstructing an Ulid from its RFC-4122 version
stop using void in test files
This PR was merged into the 4.4 branch.
Discussion
----------
make some time dependent tests more resilient
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
a33850e838 make some time dependent tests more resilient
This PR was merged into the 5.1 branch.
Discussion
----------
stop using void in test files
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
8f9f370f07 stop using void in test files
This PR was merged into the 5.1 branch.
Discussion
----------
[Uid] Use the Uuid constructor when reconstructing an Ulid from its RFC-4122 version
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Ref https://github.com/symfony/polyfill/issues/323
In my scenario, I'm doing `Ulid::fromString('0164129e-c96f-eb1a-f011-57cf56e0c559')`. When we reach the modified line, we already know the provided `$ulid` string is an rfc-4122 valid uuid so we don't need to call `fromString` (I guess) + we don't care of the version, we just want the binary content. That fixes the referenced issue in my case because the missing constant is consequently not loaded.
Commits
-------
44392cbc30 [Uid] Use the Uuid constructor when reconstructing an Ulid from its RFC-4122 version
This PR was merged into the 4.4 branch.
Discussion
----------
[DependencyInjection] do not break when loading schemas from network paths on Windows
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#24090
| License | MIT
| Doc PR |
Commits
-------
acbafe889d do not break when loading schemas from network paths on Windows
This PR was merged into the 4.4 branch.
Discussion
----------
[Finder] apply the sort callback on the whole search result
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#34879
| License | MIT
| Doc PR |
Commits
-------
126105146f apply the sort callback on the whole search result
This PR was merged into the 5.2 branch.
Discussion
----------
[FrameworkBundle] Fix UidNormalizer priority
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
`AbstractUid` implements `\JsonSerializable`. `JsonSerializableNormalizer` has a priority of `-900`, so it's actually this normalizer that is used instead of the good one. It does not change the result but it adds an extra layer.
Commits
-------
1c652a7649 [FrameworkBundle] Fix UidNormalizer priority
This PR was merged into the 5.2 branch.
Discussion
----------
[PropertyAccess] throw type error when incompatible types are passed
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
4c5cff6558 throw type error when incompatible types are passed
* 5.1:
Cleanup CI scripts
fix code style
fix code style
take query and request parameters into account when matching routes
mistake
fix tests to run assertions on returned Crawler instances
propagate groups to nested constraints
This PR was merged into the 5.1 branch.
Discussion
----------
[Validator] propagate groups to nested constraints
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39386
| License | MIT
| Doc PR |
Commits
-------
13a4610824 propagate groups to nested constraints
* 4.4:
Cleanup CI scripts
fix code style
fix code style
take query and request parameters into account when matching routes
mistake
fix tests to run assertions on returned Crawler instances
This PR was merged into the 4.4 branch.
Discussion
----------
[DomCrawler] fix tests to run assertions on returned Crawler instances
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
1d0c91629a fix tests to run assertions on returned Crawler instances
This PR was merged into the 4.4 branch.
Discussion
----------
[WebProfilerBundle] take query and request parameters into account when matching routes
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#25206
| License | MIT
| Doc PR |
Commits
-------
28b6051f53 take query and request parameters into account when matching routes
* 5.1:
harden test to not depend on the actual time
[ProxyManager] fix tests
actually compare the order of entries when any sorting is applied
Dump abstract arguments
This PR was merged into the 4.4 branch.
Discussion
----------
[Finder] actually compare the order of entries when any sorting is applied
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Without this change the tests where still passing if the sorting didn't work as expected. There are three more tests that sort by file times. I do not really know how to make them more stable though.
Commits
-------
f1ed653eee actually compare the order of entries when any sorting is applied
This PR was merged into the 4.4 branch.
Discussion
----------
[Form] disable error bubbling by default when inherit_data is configured
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#14441
| License | MIT
| Doc PR |
Commits
-------
8679c2ac05 disable error bubbling by default when inherit_data is configured
This PR was merged into the 4.4 branch.
Discussion
----------
[Yaml] do not dump extra trailing newlines for multiline blocks
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#38310
| License | MIT
| Doc PR |
Commits
-------
5fa9592d5e do not dump extra trailing newlines for multiline blocks
This PR was merged into the 5.1 branch.
Discussion
----------
[Messenger] fix postgres transport when the retry table is the same
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
---
I noticed messenger do not consume all messages when there is a retry
and when I'm using only one table for everything.
To reproduce, use the following configuration + use PG + throw an
exception in the handler
```yaml
framework:
messenger:
failure_transport: failed
transports:
async: '%env(MESSENGER_TRANSPORT_DSN)%'
failed: 'doctrine://default?queue_name=failed'
routing:
'App\Message\Foobar': async
```
The real issue is PG does not notify messenger when we `UPDATE` the message.
---
ping @dunglas
Commits
-------
2b4d47163f fix postgres transport when the retry table is the same
This PR was merged into the 5.2 branch.
Discussion
----------
[Security] Fix event propagation for AuthenticationTokenCreatedEvent when globally registered
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
As promised, here's the follow-up to #39621, fixing `AuthenticationTokenCreatedEvent` to be propated from the global event dispatcher to firewall-specific event dispatchers.
The event was added in Symfony 5.2, therefore the separate PR targeting the 5.2 branch.
Commits
-------
68aaf4f916 Add AuthenticationTokenCreatedEvent to be propagated
This PR was merged into the 5.1 branch.
Discussion
----------
[Uid] Handle ValueErrors triggered by ext-uuid on PHP 8
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR | N/A
Follows symfony/polyfill#318.
On PHP 8, the UUID extension triggers `ValueErrors` if we pass an invalid UUID to one of the `uuid_*` functions. This PR handles those errors so that the component behaves the same on PHP 7 and 8.
Commits
-------
5305170e54 Handle ValueErrors triggered by ext-uuid on PHP 8
This PR was squashed before being merged into the 5.2 branch.
Discussion
----------
[FrameworkBundle][RateLimiter] Update typos in config
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
This is just a super minor
Commits
-------
1b4ab3e3a2 [FrameworkBundle][RateLimiter] Update typos in config
This PR was merged into the 5.1 branch.
Discussion
----------
[Security] Add test to ensure all security events are propagated
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| License | MIT
Follow-up to #39621. As requested by @wouterj I'm adding a dedicated test case to ensure the security events are propagated from global to firewall-level event dispatcher.
I'll file another PR to add `AuthenticationTokenCreatedEvent` as soon as this has been merged and copied to the 5.2 branch, that I need to target for the `AuthenticationTokenCreatedEvent` change.
Happy holidays!
Commits
-------
e78adf7604 Add test case to ensure all security events are propagated
This PR was merged into the 4.4 branch.
Discussion
----------
[Mailer] Handle failure when sending DATA
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
When an exception is thrown while sending an email via SMTP (ie. A attachment is not readable) the SMTP connection is left opened with a partial message sent.
This PR closes the connection (we can't abort after sending the `DATA` command) in such situation.
/cc @fabpot
Commits
-------
849211a780 Handle failure when sending DATA
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[Security] Fix event propagation for globally registered security events
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
When new authenticator security is enabled, the `AuthenticatorManager` is using its own firewall-specific event dispatcher. To allow security events being listened to on the global level, `RegisterGlobalSecurityEventListenersPass` is there to automatically add globally registered event listeners to the firewall-specific event dispatchers.
`RegisterGlobalSecurityEventListenersPass` contains a list of events that are propagated, but unfortunately this list is incomplete as there are other events in `AuthenticatorManager` that would need too be propagated. So I added the missing (older) security events. These older events may also be registered by their name, rather than the FQN of the class, so I've also added those.
As this is targeting 5.1, I'll file another PR for the `AuthenticationTokenCreatedEvent` that was introduced in 5.2, as soon as this change was merged into 5.x.
On a note, I feel this "whitelist" approach to propagate security events to the global dispatcher isn't that great, because it's prone to error. Additional security events may be added in the future and adding these to `RegisterGlobalSecurityEventListenersPass` can easily be missed. When I added `AuthenticationTokenCreatedEvent` in PR #37359 I wasn't aware of this propagation mechanic existed and also no one reviewing the PR noticed it.
Additional changes:
- Typo fix :)
- The `array_uintersect` in `RegisterGlobalSecurityEventListenersPassTest` wasn't implemented correctly *
\* That function's behavior is really odd and easy to be used in the wrong way. The callback function isn't intended to return true/false for matching items, but return -1/0/1 like sorting functions. The tests seemingly only worked by chance as returning true/false is doing pretty much the opposite of what the callback function is supposed to do.
Commits
-------
1675864032 [Security] Fix event propagation for globally registered security events
This PR was merged into the 5.2 branch.
Discussion
----------
[TwigBridge] allow null values in form helpers
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix #39591| License | MIT
| Doc PR |
Commits
-------
f908047c6b allow null values in form helpers
This PR was merged into the 5.2 branch.
Discussion
----------
[Security] Add RememberMe Badge to LoginLinkAuthenticator
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
I'm replacing a custom home-made magic link authenticator by the Symfony one, and I missed this behavior. I had to use a EventListener to add the badge to the passeport.
I'm not sure, if the badge were missing on purpose /cc @weaverryan @wouterj
Commits
-------
d38fc4d678 Add RememberMe Badge to LoginLinkAuthenticator
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[Notifier] [DX] Abstract test cases
| Q | A
| ------------- | ---
| Branch? | 5.1
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
This PR
* [x] adds a new _abstract_ `TransportTestCase`
* [x] adds a new _abstract_ `TransportFactoryTestCase` (code is mainly taken from the `Mailer/TransportFactoryTestCase`)
We have a lot of code duplication in the notifier bridges
### Todos
* [x] check if we want this
* [x] I would want to use Dsn strings (like already used in the notifier bridge tests) instead of objects for the providers, what do you think? For me it is more readably
* [x] update all bridges
* [x] Bump notifier to `~5.1.10`
### Questions
* [x] is it Ok to consider this a bugfix and merge into `5.1`?
* [x] shall I prefix the abstract test cases with `Abstract` ? As we did the same for Mailer, I would say no
@symfony/mergers have to change ^5.2 into ^5.2.1
Commits
-------
79379b71f4 [Notifier] [DX] Abstract test cases
This PR was merged into the 4.4 branch.
Discussion
----------
[Intl] Update the ICU data to 68.2
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Commits
-------
4573965f74 [Intl] Update the ICU data to 68.2
This PR was merged into the 5.2 branch.
Discussion
----------
[Notifier] add "symfony/polyfill-mbstring" as dep of the Discord bridge
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | -
| License | MIT
| Doc PR | -
Commits
-------
e61f0c50fa [Notifier] add "symfony/polyfill-mbstring" as dep of the Discord bridge
* 5.1:
Bump Symfony version to 5.1.11
Update VERSION for 5.1.10
Update CHANGELOG for 5.1.10
Bump Symfony version to 4.4.19
Update VERSION for 4.4.18
Update CONTRIBUTORS for 4.4.18
Update CHANGELOG for 4.4.18
[Serializer] Fix DenormalizableInterface::denormalize() return type declaration in docblock
* 4.4:
Bump Symfony version to 4.4.19
Update VERSION for 4.4.18
Update CONTRIBUTORS for 4.4.18
Update CHANGELOG for 4.4.18
[Serializer] Fix DenormalizableInterface::denormalize() return type declaration in docblock
This PR was merged into the 5.2 branch.
Discussion
----------
[Notifier] GoogleChat/FreeMobile: Declare incompatibility with 5.3
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | N/A
| License | MIT
| Doc PR |N/A
I missed two bridges. 😓 @nicolas-grekas
Commits
-------
b9eca9fcc9 [Notifier] GoogleChat/FreeMobile: Declare incompatibility with 5.3.
This PR was merged into the 4.4 branch.
Discussion
----------
[Serializer] Fix DenormalizableInterface::denormalize() return type declaration in docblock
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | N.A.
| License | MIT
| Doc PR | N.A.
DenormalizableInterface::denormalize() should not return anything, so the `@return` declaration should be removed. If you look at the usage in `CustomNormalizer::denormalize()`, it becomes clear that this method shouldn't return anything:
```php
public function denormalize($data, $type, $format = null, array $context = [])
{
$object = $this->extractObjectToPopulate($type, $context) ?: new $type();
$object->denormalize($this->serializer, $data, $format, $context);
return $object;
}
```
Commits
-------
00c90aed51 [Serializer] Fix DenormalizableInterface::denormalize() return type declaration in docblock
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[Notifier] [Mattermost] Host is required
| Q | A
| ------------- | ---
| Branch? | 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
This bridge is the only one right now which cannot use `default` as host in the DSN, otherwise it would fall back to:
090b4256f0/src/Symfony/Component/Notifier/Transport/AbstractTransport.php (L30)
it could also not use:
090b4256f0/src/Symfony/Component/Notifier/Transport/AbstractTransport.php (L83-L86)
Based on the [documentation](https://api.mattermost.com/#tag/authentication) you must use your specific url like:
`your-mattermost-url.com/api/v4/...`
Using `localhost` would have weird side-effects.
Can you confirm this @thePanz , as you provided the bridge?
friendly ping @seb37800, you fixed some bugs in this transport
### Todos after merge
* [ ] adjust recipes with new DSN
* [ ] update the docs
Commits
-------
cd5b48003f [Notifier] [Mattermost] Host is required
This PR was squashed before being merged into the 5.2 branch.
Discussion
----------
[Notifier] [Infobip][Zulip] Host is required
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
### Todos after merge
* [ ] adjust recipes with new DSN
* [ ] update the docs
Commits
-------
cfd932e036 [Notifier] [Infobip][Zulip] Host is required
This PR was merged into the 5.2 branch.
Discussion
----------
[HttpFoundation] keep turning dots to underscores when using Request::create()
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#39546
| License | MIT
| Doc PR | -
Commits
-------
cda81ccccd [HttpFoundation] keep turning dots to underscores when using Request::create()
This PR was squashed before being merged into the 5.2 branch.
Discussion
----------
[Notifier] Rework/streamline bridges (5.2)
| Q | A
| ------------- | ---
| Branch? | 5.2
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | ---
| License | MIT
| Doc PR | ---
This PR
* add missing tests
* pull up scheme check (check scheme first and then for required options)
* streamlines README.md files
While working on adding tests for `symfony/esendex-notifier` I noticed that the `EsendexTransport` has the following signature:
613ac0c0e9/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransport.php (L36)
and is resolved by the `EsendexTransportFactory` like:
613ac0c0e9/src/Symfony/Component/Notifier/Bridge/Esendex/EsendexTransportFactory.php (L30)
but the `README` exposes the DSN like:
```
esendex://EMAIL:PASSWORD@default?accountreference=ACCOUNT_REFERENCE&from=FROM
```
as this Bridge is experimental in `5.2`I propose to change the transport signature like, because to me it is more email/password like described in the readme than a "token":
```diff
- public function __construct(string $token, string $accountReference, string $from, HttpClientInterface $client = null,
EventDispatcherInterface $dispatcher = null)
+ public function __construct(string $email, string $password, string $accountReference, string $from, HttpClientInterface $client = null, EventDispatcherInterface $dispatcher = null)
```
What do you think?
cc @odolbeau as you provided the Esendex bridge.
Commits
-------
a5d78787e6 [Notifier] Rework/streamline bridges (5.2)