* 5.1:
fix merge
Require PHPUnit 9.3 on PHP 8
[Cache] fix catching auth errors
Fix CS
[FrameworkBundle] set default session.handler alias if handler_id is not provided
Fix CS
Readability update
Removed @internal from Composite
Fix checks for phpunit releases on Composer 2 (resolves#37601)
[Messenger] fix ignore account & endpoint options amazon sqs connection
[Serializer] Support multiple levels of discriminator mapping
Use hexadecimal numerals instead of hexadecimals in strings to represent error codes.
[SCA] Minor fixes on tests
[WebProfilerBundle] modified url generation to use absolute urls
[Mailer] Fix reply-to functionality in the SendgridApiTransport
[Mime] Fix compat with HTTP requests
ticket_36879 - Fix mandrill raw http request setting from email/name
* 5.0:
fix merge
Require PHPUnit 9.3 on PHP 8
[Cache] fix catching auth errors
Fix CS
[FrameworkBundle] set default session.handler alias if handler_id is not provided
Fix CS
Readability update
Fix checks for phpunit releases on Composer 2 (resolves#37601)
[Serializer] Support multiple levels of discriminator mapping
Use hexadecimal numerals instead of hexadecimals in strings to represent error codes.
[SCA] Minor fixes on tests
[WebProfilerBundle] modified url generation to use absolute urls
[Mailer] Fix reply-to functionality in the SendgridApiTransport
[Mime] Fix compat with HTTP requests
ticket_36879 - Fix mandrill raw http request setting from email/name
* 4.4:
fix merge
Require PHPUnit 9.3 on PHP 8
[Cache] fix catching auth errors
Fix CS
[FrameworkBundle] set default session.handler alias if handler_id is not provided
Fix CS
Readability update
Fix checks for phpunit releases on Composer 2 (resolves#37601)
[Serializer] Support multiple levels of discriminator mapping
Use hexadecimal numerals instead of hexadecimals in strings to represent error codes.
[SCA] Minor fixes on tests
[WebProfilerBundle] modified url generation to use absolute urls
[Mailer] Fix reply-to functionality in the SendgridApiTransport
[Mime] Fix compat with HTTP requests
ticket_36879 - Fix mandrill raw http request setting from email/name
* 3.4:
[Cache] fix catching auth errors
Fix CS
[FrameworkBundle] set default session.handler alias if handler_id is not provided
Fix CS
Readability update
Fix checks for phpunit releases on Composer 2 (resolves#37601)
[SCA] Minor fixes on tests
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
Require PHPUnit 9.3 on PHP 8
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
The first version of PHPUnit to support PHP 8.0 is PHPUnit 9.3.
---
Depends on https://github.com/symfony/symfony/pull/37607. Related to https://github.com/composer/composer/pull/9054.
Commits
-------
54b13c04c9 Require PHPUnit 9.3 on PHP 8
This PR was merged into the 5.1 branch.
Discussion
----------
[Messenger] fix ignored account & endpoint options amazon sqs connection
| Q | A
| ------------- | ---
| Branch? | 5.1<!-- 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#37598 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| 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 master.
-->
Commits
-------
fc90a3b7c6 [Messenger] fix ignore account & endpoint options amazon sqs connection
This PR was squashed before being merged into the 3.4 branch.
Discussion
----------
[FrameworkBundle] set default session.handler alias if handler_id is not provided
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37245
| License | MIT
| Doc PR |
Without a configured [`handler_id`](https://symfony.com/doc/current/session.html#configuration), the `session.handler` alias is not created, and somes services depend on this alias specialy.
Related to the reported issue above (affected version 4.4.9), the `ServiceHandlerInterface` is an alias of `session.handler`, when execute :
- `bin/console debug:container session.handler` : The alias is not defined, so the `ContainerDebugCommand` look for a service containing the `session.handler` as part of his name (ContainerDebugCommand::findServiceIdsContaining() is called and returns by default `session.handler.native_file`)
- `bin/console debug:container SessionHandlerInterface` : The service is defined as an alias of `session.handler`, when calling `ContainerBuilder::getDefinition('session.handler')` the exception occured as the alias is not defined.
# Implemented solution
Create a default `session.handler` when the param `handler_id` is not provided (I choosed `session.handler.native_file` rather than `NullSessionHandler`).
# Affected versions
From [`3.4`](https://github.com/symfony/framework-bundle/blob/3.4/DependencyInjection/FrameworkExtension.php#L879) to [`5.1`](https://github.com/symfony/framework-bundle/blob/5.1/DependencyInjection/FrameworkExtension.php#L955)
Commits
-------
46c8c3791b [FrameworkBundle] set default session.handler alias if handler_id is not provided
This PR was merged into the 3.4 branch.
Discussion
----------
Fix checks for phpunit releases on Composer 2
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37601
| License | MIT
| Doc PR | n/a
`simple-phpunit` has a core assumption that any version of PHPUnit without a stable release will only have one dev version returned by Composer. Per https://github.com/symfony/symfony/issues/37601, it's possible for Composer 2 to list **more than one dev version**. This breaks that assumption and therefore prevents the installation of 9.3.* ([which is needed for testing on PHP 8](https://github.com/sebastianbergmann/phpunit/pull/4374#issuecomment-657029594)).
The fix implemented here is to remove any versions containing `dev-` or `-dev` from the list of possible versions to see if any stable versions remain.
Commits
-------
2bb3f08fba Fix checks for phpunit releases on Composer 2 (resolves#37601)
The password was already hidden in POST parameters, but still remained visible in raw content
[HttpKernel] added password hiding in request data collector raw content
The password was already hidden in POST parameters, but still remained visible in raw content
[HttpKernel] added password hiding in request data collector raw content
The password was already hidden in POST parameters, but still remained visible in raw content
This PR was squashed before being merged into the 5.2-dev branch.
Discussion
----------
[PhpUnitBridge] Polyfill new phpunit 9.1 assertions
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets | Fix#37320
| License | MIT
| Doc PR | n/a
This PR adds the following new assertions that was added to PhpUnit 9.1:
- Implement **`assertIsNotReadable()`** as alternative for `assertNotIsReadable()`
- Implement **`assertIsNotWritable()`** as alternative for `assertNotIsWritable()`
- Implement **`assertDirectoryDoesNotExist()`** as alternative for `assertDirectoryNotExists()`
- Implement **`assertDirectoryIsNotReadable()`** as alternative for `assertDirectoryNotIsReadable()`
- Implement **`assertDirectoryIsNotWritable()`** as alternative for `assertDirectoryNotIsWritable()`
- Implement **`assertFileDoesNotExist()`** as alternative for `assertFileNotExists()`
- Implement **`assertFileIsNotReadable()`** as alternative for `assertFileNotIsReadable()`
- Implement **`assertFileIsNotWritable()`** as alternative for `assertFileNotIsWritable()`
- Implement **`assertMatchesRegularExpression()`** as alternative for `assertRegExp()`
- Implement **`assertDoesNotMatchRegularExpression()`** as alternative for `assertNotRegExp()`
Commits
-------
51c0bf0d0d [PhpUnitBridge] Polyfill new phpunit 9.1 assertions
This PR was merged into the 4.4 branch.
Discussion
----------
[Mailer] Fix mandrill raw http request setting from email/name
| Q | A
| ------------- | ---
| Branch? | 4.4, 5.0, 5.1
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#36879
| License | MIT
| Doc PR | None
As describe in https://github.com/symfony/symfony/issues/36879 there is a bug in sending raw http request to mandrill it will not set from email/name correct.
As you can see i make sure to set `from_email` and `from_name` correct now and changed the unit test to check correct you can see the doc that the format is correct https://mandrillapp.com/api/docs/messages.curl.html#method-send-raw
Commits
-------
6128dd0b75 ticket_36879 - Fix mandrill raw http request setting from email/name
This PR was merged into the 5.2-dev branch.
Discussion
----------
[HttpFoundation] Added File::getContent()
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
---
This is a very simple PR but I think it increases the DX when working
with uploaded files: I looked at for this method and I did not found it.
So I had to check witch method returns the "pathname" or to remember I
can cast the object to string to get its pathname.
It's a small detail, but IMHO it's better with it.
About file_get_contents vs stream: let's be simple here. If one want a
stream, they can use the code they always used for it :)
Commits
-------
50d5167a66 [HttpFoundation] Added File::getContent()
This PR was squashed before being merged into the 4.4 branch.
Discussion
----------
[Mailer] Fix reply-to functionality in the SendgridApiTransport
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
When sending a message using the `SendgridApiTransport`, the reply-to address was being ignored. In other transports, the reply to can be set using headers, but SendGrid requires that certain fields be added explicitly to the API payload. This is already handled for From, To, Cc, Bcc, and Subject, but was not handled for Reply-To. This change extracts the reply to address from the `Email` object and adds it to the payload.
Note that the `Email` object allows for multiple Reply-To addresses, but SendGrid only supports a single one, so I am just using the first element of the array.
I also fixed a link in a comment to SendGrid's documentation explaining the reserved headers that are not allowed.
Commits
-------
2cf25d1055 [Mailer] Fix reply-to functionality in the SendgridApiTransport
* 5.1:
[DependencyInjection][Config] Use several placeholder unique prefixes for dynamic placeholder values
[Mime] Keep Sender full address when used by non-SMTP transports
Update MimeTypes.php
* 5.0:
[DependencyInjection][Config] Use several placeholder unique prefixes for dynamic placeholder values
[Mime] Keep Sender full address when used by non-SMTP transports
Update MimeTypes.php
* 4.4:
[DependencyInjection][Config] Use several placeholder unique prefixes for dynamic placeholder values
[Mime] Keep Sender full address when used by non-SMTP transports
Update MimeTypes.php
This PR was merged into the 4.4 branch.
Discussion
----------
[Mime] Keep Sender full address when used by non-SMTP transports
| 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 | 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
refs #36178
The `Envelope` is an SMTP concept. The Sender is used in the `MAIL FROM` SMTP command, where only an address is supported. But we are also supporting non-SMTP transports, where the Sender might also be used as the `From` header, where a full mailbox is supported.
To take into account the 2 usages, this PR keeps the full mailbox in the Envelope and let the SMTP class only use the address (which was already the case anyway).
Commits
-------
1ca9be77aa [Mime] Keep Sender full address when used by non-SMTP transports
This PR was squashed before being merged into the 5.2-dev branch.
Discussion
----------
[Mime] switching source of mime types from Apache to "MIME-db"
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37412
| License | MIT
| Doc PR | no
Commits
-------
ebea452f57 [Mime] switching source of mime types from Apache to "MIME-db"
This PR was squashed before being merged into the 5.2-dev branch.
Discussion
----------
Remove some magic from TypeValidator logic and OptionsResolver type verify logic
| Q | A
| ------------- | ---
| Branch? | 5.0
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| License | MIT
Following discussion on https://twitter.com/Ocramius/status/1260236117129015297
The changes in this PR could ensure that types that can be verified by the TypeValidator is limited and there is no way to magically use it.
For example you can break it by defining you own function like:
```php
function is_usercollection {
return true;
}
```
that will validate any value that have the validator type as 'UserCollection'.
Another example would be defining `is_lower` or `ctype_int` that would also break the implementation.
Commits
-------
e8c9049a5a Remove some magic from TypeValidator logic and OptionsResolver type verify logic
* 5.1:
[Cache] Use the default expiry when saving (not when creating) items
Fix typo
Fix DBAL deprecation
[Form] Fix ChoiceType translation domain
Add Tagalog translations for new form messages
[Form] Add missing vietnamese translations
sync translations from master
[OptionsResolver] Fix force prepend normalizer
add vietnamese translation for html5 color validation
* 5.0:
[Cache] Use the default expiry when saving (not when creating) items
Fix typo
Fix DBAL deprecation
[Form] Fix ChoiceType translation domain
Add Tagalog translations for new form messages
[Form] Add missing vietnamese translations
sync translations from master
[OptionsResolver] Fix force prepend normalizer
add vietnamese translation for html5 color validation
* 4.4:
[Cache] Use the default expiry when saving (not when creating) items
Fix typo
Fix DBAL deprecation
[Form] Fix ChoiceType translation domain
Add Tagalog translations for new form messages
[Form] Add missing vietnamese translations
sync translations from master
[OptionsResolver] Fix force prepend normalizer
add vietnamese translation for html5 color validation
This PR was merged into the 3.4 branch.
Discussion
----------
[Cache] Use the default expiry when saving (not when creating) items
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | Fix#37263
| License | MIT
| Doc PR |
This PR is for align expiration handling in ChainAdapter with ChainCache as proposed in #37263.
Commits
-------
49e9f3229c [Cache] Use the default expiry when saving (not when creating) items
This PR was squashed before being merged into the 3.4 branch.
Discussion
----------
[Form] Fix ChoiceType translation domain
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| Deprecations? |no
| Tickets | Fix #...
| License | MIT
| Doc PR | symfony/symfony-docs#...
When using
```
->add('foo', ChoiceType::class, [
'label' => 'label',
'translation_domain' => false,
'choices' => [
'choice.no' => false,
'choice.yes' => true,
],
'choice_translation_domain' => 'messages',
'expanded' => true,
'required' => false,
'placeholder' => false,
]);
```
I discovered that the choices was not translated.
Seems like it's because the subForm is using the `translation_domain` instead of the `choice_translation_domain`.
Commits
-------
2effda79ea [Form] Fix ChoiceType translation domain
This PR was merged into the 3.4 branch.
Discussion
----------
[Form] sync translations from master
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | no
| New feature? | no
| Deprecations? | no
| Tickets |
| License | MIT
| Doc PR |
Commits
-------
acea9be6d3 sync translations from master
This PR was squashed before being merged into the 3.4 branch.
Discussion
----------
Add Tagalog translations for new form messages
| Q | A
| ------------- | ---
| Branch? | 3.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 |
| License | MIT
| Doc PR |
This PR adds Tagalog translations for the new form messages @xabbuh added in https://github.com/symfony/symfony/pull/37552.
~~As I'm not aware of any Filipinos that regularly review Symfony pull requests, I'm going to ask my mother to proof-read this first before I remove the "WIP" label from the title. :)~~
Commits
-------
1809b7c5eb Add Tagalog translations for new form messages
This PR was merged into the 5.2-dev branch.
Discussion
----------
[Mime] allow non-ASCII characters in local part of email
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | https://github.com/symfony/symfony/issues/34932
| License | MIT
| Doc PR | -
This fixes https://github.com/symfony/symfony/issues/34932 by allowing non-ASCII characters in the local part of emails.
I tried this using 3 different smtp servers (gmail, mailgun and local postfix) and for me this just works in case there are non-ASCII characters in the local part of emails. Emails are correctly delivered.
PHPMailer does this in the same way: https://github.com/PHPMailer/PHPMailer/blob/master/src/PHPMailer.php#L1411
This is also in line with the behavior of Swiftmailer (< 6.1) **before** this commit that introduced the `IdnAddressEncoder`: 6a87efd39b (diff-e5f85d26733017e183b2633ae3c433f0R31)
I'm not an expert when it comes to SMTP and all the different RFCs out there 😕 But for me this exception seems not needed.
Maybe @c960657 can help here?
Commits
-------
d057dffcd6 [Mime] allow non-ASCII characters in local part of email
* 5.1:
cs fix
add german translation of the html5 color validation
Fix PHP 8 deprecations
ensure compatibility with PHP 8 stack traces
clean up HHVM instructions
sync translations from master branch
silently ignore uninitialized properties when mapping data to forms
* 5.0:
cs fix
add german translation of the html5 color validation
Fix PHP 8 deprecations
ensure compatibility with PHP 8 stack traces
clean up HHVM instructions
sync translations from master branch
silently ignore uninitialized properties when mapping data to forms
* 4.4:
cs fix
add german translation of the html5 color validation
Fix PHP 8 deprecations
ensure compatibility with PHP 8 stack traces
clean up HHVM instructions
sync translations from master branch
silently ignore uninitialized properties when mapping data to forms
* 3.4:
cs fix
add german translation of the html5 color validation
sync translations from master branch
silently ignore uninitialized properties when mapping data to forms
This PR was merged into the 3.4 branch.
Discussion
----------
[Form] silently ignore uninitialized properties when mapping data to forms
| Q | A
| ------------- | ---
| Branch? | 3.4
| Bug fix? | yes
| New feature? | no
| Deprecations? | no
| Tickets | #36492
| License | MIT
| Doc PR |
Commits
-------
b4616c810c silently ignore uninitialized properties when mapping data to forms
A public method declared in a trait can be used by a class without
importing the trait itself when the trait is already imported by one
of the parent classes from the inheritance chain.
This PR was squashed before being merged into the 5.1 branch.
Discussion
----------
[PhpUnitBridge] Fix expectDeprecation() in isolation
| Q | A
| ------------- | ---
| Branch? | 5.1
| 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 -->
Tests like
```
/**
* Do not remove this test in the next major version.
*
* @group legacy
* @runInSeparateProcess
*/
public function testOneInIsolation()
{
$this->expectDeprecation('foo');
@trigger_error('foo', E_USER_DEPRECATED);
}
```
will fail due to:
```
Testing Symfony\Bridge\PhpUnit\Tests\ExpectDeprecationTraitTest
R 1 / 1 (100%)R
Time: 111 ms, Memory: 6.00 MB
There were 2 risky tests:
1) Symfony\Bridge\PhpUnit\Tests\ExpectDeprecationTraitTest::testOneInIsolation
This test did not perform any assertions
/Users/alex/dev/symfony/src/Symfony/Bridge/PhpUnit/Tests/ExpectDeprecationTraitTest.php:38
2) Symfony\Bridge\PhpUnit\Tests\ExpectDeprecationTraitTest::testOneInIsolation
This test did not perform any assertions
OK, but incomplete, skipped, or risky tests!
Tests: 1, Assertions: 0, Risky: 2.
```
Commits
-------
e7e2ee75d3 Expect deprecations in isolation
* 5.1:
[String] Added a help message when translation-contracts is not installed
Add: ExcludeList usage for PHPUnit 9.4
[Cache] Fix compat wth DBAL v3
[String] throw when Alpine is used and translit fails
* 5.0:
[String] Added a help message when translation-contracts is not installed
Add: ExcludeList usage for PHPUnit 9.4
[Cache] Fix compat wth DBAL v3
[String] throw when Alpine is used and translit fails