Commit Graph

32249 Commits

Author SHA1 Message Date
Thomas Calvet
9645fa39ec [Validator][RecursiveContextualValidator] Prevent validated hash collisions 2020-11-12 09:33:23 +01:00
Nicolas Grekas
33fce73bdf [Filesystem] fix cleaning up tmp files when dumpFile() fails 2020-11-11 23:20:15 +01:00
Jérémy Derussé
1c3721e8ad
Fix circular detection with multiple paths 2020-11-11 19:26:13 +01:00
Robin Chalas
16fb94b5fe feature #38596 [BrowserKit] Add jsonRequest function to the browser-kit client (alexander-schranz)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[BrowserKit] Add jsonRequest function to the browser-kit client

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix -
| License       | MIT
| Doc PR        | symfony/symfony-docs#...

If you use the FOSRestBundle for your Api's you have maybe many tests using just:

```php
$client->request('POST', '/api/contacts', ['param' => 1]);
```

To test your JSON api as in the real browser request FOSRestBundle converts the json body into the `$request->request` object. I think something similar is done by ApiPlatform. If you have tests like above they will now fail as the integer is converted to string see also #38591.

This PR add a new `jsonRequest` which will look like the following and will so fix the above problem:

```php
$client->jsonRequest('POST', '/api/contacts', ['param' => 1]);
```

Commits
-------

c2fa2cb376 [BrowserKit] Add jsonRequest function to the browser-kit client
2020-11-11 14:22:52 +01:00
Alexander Schranz
c2fa2cb376 [BrowserKit] Add jsonRequest function to the browser-kit client 2020-11-11 14:22:45 +01:00
Robin Chalas
1d945b9453 feature #38998 [Messenger][SQS] Make sure one can enable debug logs (Nyholm)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Messenger][SQS] Make sure one can enable debug logs

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        | Needed

If you add `&debug=true` on your DSN, then we will use `LoggerInterface::debug()` to print HTTP requests and responses.
This has a negative impact on performance, but it will be helpful when debugging.

Commits
-------

66edc59b56 [Messenger][SQS] Make sure one can enable debug logs
2020-11-11 14:17:07 +01:00
Nyholm
66edc59b56 [Messenger][SQS] Make sure one can enable debug logs 2020-11-11 14:16:39 +01:00
Nicolas Grekas
7e3855dbc3 feature #38974 [Intl] deprecate polyfills in favor of symfony/polyfill-intl-icu (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[Intl] deprecate polyfills in favor of symfony/polyfill-intl-icu

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | Fix #37758
| License       | MIT
| Doc PR        | -

Follows symfony/polyfill#310
/cc @stof

Commits
-------

6ad0169c4f [Intl] deprecate polyfills in favor of symfony/polyfill-intl-icu
2020-11-11 12:26:28 +01:00
Fabien Potencier
5b3976a888 Bump Symfony version to 5.2.0 2020-11-10 09:06:25 +01:00
Fabien Potencier
f33a0d355b Update VERSION for 5.2.0-RC1 2020-11-10 08:54:37 +01:00
Fabien Potencier
b285584e77 updated version to 5.3 2020-11-10 08:38:36 +01:00
Fabien Potencier
c721e025ea bug #39004 [Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText (Jean85)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText

| Q             | A
| ------------- | ---
| Branch?       | 5.x (bugfix of a 5.x-only feature)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #39003
| License       | MIT

~WIP~ This is now complete and, thanks to @yceruto, I've fixed two bugs in this PR:
 * `ErrorDetailsStamp` couldn't be (de)serialized properly with that constructor argument
 * `FlattenException::$statusText` wasn't (de)normalized

Commits
-------

9af554cb41 [Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText
2020-11-10 07:17:29 +01:00
Alessandro Lai
9af554cb41 [Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText 2020-11-10 07:17:22 +01:00
Fabien Potencier
2994ef0e1a Merge branch '5.1' into 5.x
* 5.1:
  Optimize circular collection by removing flattening
2020-11-09 13:21:52 +01:00
Fabien Potencier
382d6fc696 Merge branch '4.4' into 5.1
* 4.4:
  Optimize circular collection by removing flattening
2020-11-09 13:21:43 +01:00
Fabien Potencier
0ae674a29a bug #39021 [DependencyInjection] Optimize circular collection by removing flattening (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

 [DependencyInjection] Optimize circular collection by removing flattening

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #39015
| License       | MIT
| Doc PR        | -

Alternative to #39019

Commits
-------

e649f47726 Optimize circular collection by removing flattening
2020-11-09 13:20:23 +01:00
Jérémy Derussé
e649f47726
Optimize circular collection by removing flattening 2020-11-09 12:28:57 +01:00
Fabien Potencier
47c2764064 Merge branch '5.1' into 5.x
* 5.1:
  also reset id readers
  Fix LDAP pagination
2020-11-09 11:58:06 +01:00
Fabien Potencier
64089870ce Merge branch '4.4' into 5.1
* 4.4:
  also reset id readers
  Fix LDAP pagination
2020-11-09 11:57:52 +01:00
Fabien Potencier
dfe60bb8a4 minor #39029 Adds constants for YamlEncoder options (dbrumann)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Adds constants for YamlEncoder options

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| License       | MIT

As I understand it encoders and normalizers use (public) constants for context keys so IDEs can help by providing autocomplete. I added these constants for the YamlEncoder where they are missing right now. For reference see other encoders like CsvEncoder or XmlEncoder.

Commits
-------

6ebf7e164e Adds constants for YamlEncoder options
2020-11-09 11:52:36 +01:00
Denis Brumann
6ebf7e164e
Adds constants for YamlEncoder options 2020-11-08 12:35:30 +01:00
Alexander M. Turek
441c80603e [Validator] Allow load mappings from attributes without doctrine/annotations. 2020-11-07 22:48:53 +01:00
Jérémy Derussé
4fe0a6f2b9
Fix LDAP pagination 2020-11-07 21:18:28 +01:00
Maxime Steinhausser
50c7c3d364 bug #39002 [Validator] Override the default option of the choice constraint (benji07)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Validator] Override the default option of the choice constraint

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | TODO

We have a bundle that run test against the last version of symfony and we detect BC Break when passing a string as the first argument of the class Choice

Our code extends the Choice class and change the defaultOption.

I saw that others constraints class had new construct signature (for php8 attributes), but only some of them kept the array options as their first arguments. Why ?

ping @ogizanagi @derrabus

https://travis-ci.com/github/Elao/PhpEnums/jobs/410045368
```
1) Elao\Enum\Tests\Unit\Bridge\Symfony\Validator\Constraint\EnumTest::testDefaultValueIsEnumClass
Symfony\Component\Validator\Exception\MissingOptionsException: The options "class" must be set for constraint "Elao\Enum\Bridge\Symfony\Validator\Constraint\Enum".
/home/travis/build/Elao/PhpEnums/vendor/symfony/symfony/src/Symfony/Component/Validator/Constraint.php:171
/home/travis/build/Elao/PhpEnums/vendor/symfony/symfony/src/Symfony/Component/Validator/Constraint.php:110
/home/travis/build/Elao/PhpEnums/vendor/symfony/symfony/src/Symfony/Component/Validator/Constraints/Choice.php:75
/home/travis/build/Elao/PhpEnums/src/Bridge/Symfony/Validator/Constraint/Enum.php:39
/home/travis/build/Elao/PhpEnums/tests/Unit/Bridge/Symfony/Validator/Constraint/EnumTest.php:22
```

Commits
-------

d553750054 Allow user to override default options when extending the Choice Constraint
2020-11-07 17:47:31 +01:00
Robin Chalas
f226d981af Merge branch '5.1' into 5.x
* 5.1:
  [Messenger] Fix DBAL deprecations in PostgreSQLConnection
  [DoctrineBridge] Fix DBAL deprecations in middlewares.
2020-11-07 17:24:48 +01:00
Benjamin Lévêque
d553750054 Allow user to override default options when extending the Choice Constraint
Co-authored-by: Maxime Steinhausser <maxime.steinhausser@gmail.com>
2020-11-07 17:03:44 +01:00
Robin Chalas
bc42cf604e [Messenger] Fix DBAL deprecations in PostgreSQLConnection 2020-11-07 15:49:46 +01:00
Alexander M. Turek
5c5b8d61ee Merge branch '5.1' into 5.x 2020-11-07 14:01:53 +01:00
Alexander M. Turek
8c81f33840 Merge branch '4.4' into 5.1 2020-11-07 14:01:26 +01:00
Nyholm
0ab3032c52
[CI] Fixed invalid doctrine parameter syntax 2020-11-05 21:54:48 +01:00
Robin Chalas
2c39acd159 fix merge 2020-11-05 21:41:09 +01:00
Alexander M. Turek
5f25a6f980 Merge branch '5.1' into 5.x 2020-11-05 21:05:54 +01:00
Alexander M. Turek
2081035295 Merge branch '4.4' into 5.1 2020-11-05 20:04:46 +01:00
Robin Chalas
75f8ac1e9b bug #38991 [Console] Fix ANSI when stdErr is not a tty (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Fix ANSI when stdErr is not a tty

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38981
| License       | MIT
| Doc PR        | -

Taking the @wouterj 's comment into account (https://github.com/symfony/symfony/issues/38981#issuecomment-721915428)

This PR prevents using the same Formatter for stdOut and stdErr when possible.

When user send a custom formatter (or call `setFormatter`) the previous logic is kept.
Otherwise, symfony is asked to create the Formatter, and thus is able to clone the formatter.

In a future PR targeting 5.3, we could improve the constructor to let people inject 2 distinguished formatters

Commits
-------

f3a398b5af Fix ANSI when stdErr is not a tty
2020-11-05 16:22:05 +01:00
Nicolas Grekas
61b3872b65 bug #38980 [DependencyInjection] Fix circular reference with Factory + Lazy Iterrator (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Fix circular reference with Factory + Lazy Iterrator

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38970
| License       | MIT
| Doc PR        | -

The issue, occurs when a `factory` iterates over services (think tagged iterator) that also need the `factory`.
The PhpDumper is not able to detect the loop because the TaggedService iterator is flaged as "lazy" which is ignored in the loop detection. 2d7e0b02c6/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php (L474-L476)

See test case for a reproduce case.

This PR takes into account lazy services when computing loops.

I'm not sure this is the right thing to do /cc @nicolas-grekas .
A better solution could be to do this ONLY when the service is used as a factory?

Commits
-------

51ff060603 Fix circular referene with Factory and LazyIterator
2020-11-05 12:51:33 +01:00
Jérémy Derussé
f3a398b5af
Fix ANSI when stdErr is not a tty 2020-11-05 10:51:39 +01:00
Alexander M. Turek
60e506835a [Security] Fix docblock. 2020-11-05 00:24:50 +01:00
Nicolas Grekas
6ad0169c4f [Intl] deprecate polyfills in favor of symfony/polyfill-intl-icu 2020-11-04 16:35:46 +01:00
Jérémy Derussé
51ff060603
Fix circular referene with Factory and LazyIterator 2020-11-04 15:21:44 +01:00
Fabien Potencier
57e39b41b9 feature #38850 [Messenger] Do not call getQueueUrl when the url is known in AmazonSqs transport (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Do not call getQueueUrl when the url is known in AmazonSqs transport

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #38849
| License       | MIT
| Doc PR        | TODO

When user provides a DSN that looks like a queueUrl, we don't need to call the `getQueueUrl` method. This PR inject the known queueUrl and prevent performing a useless call to the API when sending a message

Commits
-------

f1f44d48e0 Do not call getQueueUrl when the url is known
2020-11-04 08:24:27 +01:00
Fabien Potencier
d2bac32525 feature #38940 [Messenger] Improve formatting of exception in failed message (Jeroen Noten)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Improve formatting of exception in failed message

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | not really, enhancement of an existing feature
| Deprecations? | no
| Tickets       | Fix #32310
| License       | MIT

This PR improves the formatting of exception details in failed messenges when displayed using `messenger:failed:show <id> -vv`.

Before:
<img width="807" alt="Screen Shot 2020-11-01 at 1 05 24 PM" src="https://user-images.githubusercontent.com/4370753/97802602-ea593200-1c44-11eb-8bcb-7fcf2d3f1db0.png">

After:
<img width="803" alt="Screen Shot 2020-11-01 at 1 03 09 PM" src="https://user-images.githubusercontent.com/4370753/97802615-f0e7a980-1c44-11eb-8c12-46b2d4510364.png">

I created a `ThrownExceptionDetails` class which will be displayed as a normal exception when dumped with the VarDumper component. Not sure if this is the right way to do it and if the class is in the right namespace, but this is the best solution I could came up with to fix #32310. I'm open for other suggestions.

Commits
-------

2ad1adda69 [Messenger] Improve formatting of thrown exception in show failed message command
2020-11-04 08:21:06 +01:00
Fabien Potencier
6251c4ee6e feature #38954 [HttpFundation][FrameworkBundle] Deprecate the HEADER_X_FORWARDED_ALL constant (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpFundation][FrameworkBundle] Deprecate the HEADER_X_FORWARDED_ALL constant

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | -
| License       | MIT
| Doc PR        | TODO

The `HEADER_X_FORWARDED_ALL` implicitly trust the `x-forwarded-host` header, leading to possible host header attack (as warned in the [documentation](https://symfony.com/doc/current/reference/configuration/framework.html#trusted-hosts).)

Moreover, this `HEADER_X_FORWARDED_ALL` does not really fowards **all** headers, as ti does not supports `X-Forwarded-Prefix` headers.

This PR deprecate the constant and the new framework bundle configuration. It will be removed in 6.0. People have to use: either:
- `Request::setTrustedProxies(['1.2.3.4'], Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_HOST | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO);`
- `Request::setTrustedProxies(['1.2.3.4'], Request::HEADER_X_FORWARDED_TRAEFIK);`
- `framework.trusted_headers: [x-forwarded-for, x-forwarded-host, x-forwarded-port, x-forwarded-proto]`

Commits
-------

7cf4dd6917 Deprecate HEADER_X_FORWARDED_ALL constant
2020-11-04 08:16:55 +01:00
Nicolas Grekas
ff7ffdf22a bug #38977 [HttpClient] Check status code before decoding content in TraceableResponse (chalasr)
This PR was merged into the 5.1 branch.

Discussion
----------

[HttpClient] Check status code before decoding content in TraceableResponse

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | np
| Tickets       | -
| License       | MIT
| Doc PR        | -

Using `toArray()` on the response of a traceable client, the status code is currently checked after json decoding, which leads to `JsonException` being thrown instead of `ClientException`.
It should be the opposite, as for non-traceable responses.

Commits
-------

e5595dae73 [HttpClient] Check status code before decoding content in TraceableResponse
2020-11-03 21:22:18 +01:00
Robin Chalas
e5595dae73 [HttpClient] Check status code before decoding content in TraceableResponse 2020-11-03 21:20:54 +01:00
Thomas Lallement
3dd385f319
Rename security.pt_PT.xlf to security.pt.xlf 2020-11-03 17:58:31 +01:00
Jeroen Noten
2ad1adda69 [Messenger] Improve formatting of thrown exception in show failed message command 2020-11-03 13:22:22 +01:00
Nicolas Grekas
1cfd3ab03a Merge branch '5.1' into 5.x
* 5.1:
  [PhpUnitBridge] fix replaying skipped tests
  Switch nightly run to 8.0snapshot
2020-11-03 12:59:38 +01:00
Nicolas Grekas
298422c844 Merge branch '4.4' into 5.1
* 4.4:
  [PhpUnitBridge] fix replaying skipped tests
  Switch nightly run to 8.0snapshot
2020-11-03 12:59:17 +01:00
Michael Voříšek
75ff86811f [HttpFoundation] Fix for virtualhosts based on URL path 2020-11-03 12:58:18 +01:00
Nicolas Grekas
703497dccf bug #38971 [PhpUnitBridge] fix replaying skipped tests (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[PhpUnitBridge] fix replaying skipped tests

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Spotted while working on https://github.com/symfony/polyfill/pull/310

See also https://3v4l.org/D6Gro for the newly skipped tests in symfony/intl

Commits
-------

849d1b3845 [PhpUnitBridge] fix replaying skipped tests
2020-11-03 12:57:46 +01:00
Nicolas Grekas
849d1b3845 [PhpUnitBridge] fix replaying skipped tests 2020-11-03 12:50:26 +01:00
Jérémy Derussé
0dfbeb4e1e
minor #38842 [Notifier] Add unit tests for NullMessage, NullTransport and NullTransportFactory (jschaedl)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Notifier] Add unit tests for NullMessage, NullTransport and NullTransportFactory

| 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       | - <!-- 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.
-->

Commits
-------

8a78dc2c97 [Notifier] Add unit tests for NullMessage, NullTransport and NullTransportFactory
2020-11-03 00:56:53 +01:00
Jan Schädlich
8a78dc2c97
[Notifier] Add unit tests for NullMessage, NullTransport and NullTransportFactory 2020-11-03 00:54:11 +01:00
Jérémy Derussé
7cf4dd6917
Deprecate HEADER_X_FORWARDED_ALL constant 2020-11-02 17:16:33 +01:00
Nicolas Grekas
6ddb93df1f Merge branch '5.1' into 5.x
* 5.1:
  [HttpKernel] fix merge
2020-11-02 17:09:19 +01:00
Nicolas Grekas
f0d9eeb257 Merge branch '4.4' into 5.1
* 4.4:
  [HttpKernel] fix merge
2020-11-02 17:09:08 +01:00
Nicolas Grekas
76c19393c8 [HttpKernel] fix merge 2020-11-02 17:06:19 +01:00
Nicolas Grekas
5bf6bbe96c Merge branch '5.1' into 5.x
* 5.1:
  [Process] Dont test TTY if there is no TTY support
  Fixing some Mongolian
  translating the validators for european portuguese language
  Fix CI
  Update validators.he.xlf
  Update security.he.xlf
  Update validators.he.xlf
  Improve performances in CircualReference detection
  [PHPUnitBridge] Fixed crash on Windows with PHP 8
  Fix session called initized several time
2020-11-02 16:47:15 +01:00
Nicolas Grekas
aae9211e7c Merge branch '4.4' into 5.1
* 4.4:
  [Process] Dont test TTY if there is no TTY support
  Fixing some Mongolian
  translating the validators for european portuguese language
  Fix CI
  Update validators.he.xlf
  Update security.he.xlf
  Update validators.he.xlf
  Improve performances in CircualReference detection
  [PHPUnitBridge] Fixed crash on Windows with PHP 8
  Fix session called initized several time
2020-11-02 16:45:32 +01:00
Nicolas Grekas
5831ab2b62 bug #38910 [HttpKernel] Fix session initialized several times (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Fix session initialized several times

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

The session injected in the request is a factory. When the request is **cloned** (ie sub-request) while the session is not yet used in the master request (the session is still a factory), both Master and Sub request will have a factory.
If both requests attempt to read the session afterward, they both triggers the factory, and both initialize the session.

It's not a dead end for the `SessionListener` because the session come from the container and is shared, but:
- the session is initialized ($storage->setOptions(['cookie_secure' => true])) twice
- if we replace the sesssion from container to a factory, it could be an issue

Commits
-------

30a3c7c87b Fix session called initized several time
2020-11-02 16:36:10 +01:00
Nicolas Grekas
8375eeef67 bug #38882 [DependencyInjection] Improve performances in CircualReference detection (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Improve performances in CircualReference detection

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #37850
| License       | MIT
| Doc PR        | -

This PR change the way circular references are detected.  And improve the project submitted in #37850 [by **86%**](https://blackfire.io/profiles/compare/cc4aa41d-5b63-4caa-9a1b-fc282dc5d64a/graph) (Build the container in 1.1 sec instead of 10)

Issue is: When a project contains a lot Circular Reference, the Dumper [spend a lot of time](https://blackfire.io/profiles/54f6eba2-b93c-4f2b-a268-1e58883faecb/graph) in merging those circular references.
note: a circular reference is not an issue when an service is not injected by constructor, but this Can not be known until all references are resolved (performed previously by connectCircularReferences)

This PR removed the connectCircularReferences and generate a flatten tree of dependencies:
 - the key is the service ID
 - the value is the list of direct **AND** indirect dependency + path to join the dependency

I also [benched the PR with a project with few references](https://blackfire.io/profiles/compare/2f9902e6-3347-40b3-8421-e1fd09c067d2/graph) and result are almost the same before/after.

Commits
-------

d4db75692b Improve performances in CircualReference detection
2020-11-02 16:10:49 +01:00
Nicolas Grekas
ed217a1435 bug #38950 [Process] Dont test TTY if there is no TTY support (Nyholm)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Process] Dont test TTY if there is no TTY support

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38946
| License       | MIT
| Doc PR        |

Commits
-------

e918e5ab30 [Process] Dont test TTY if there is no TTY support
2020-11-02 16:10:23 +01:00
Nyholm
e918e5ab30 [Process] Dont test TTY if there is no TTY support 2020-11-02 16:10:16 +01:00
Nicolas Grekas
cd53800026 minor #38917 Fixing some Mongolian (Nyholm)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Fixing some Mongolian

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38916
| License       | MIT
| Doc PR        |

Hey @luffy1727, could you help me with the last two strings here?

Commits
-------

5c848d9796 Fixing some Mongolian
2020-11-02 16:02:38 +01:00
Nyholm
5c848d9796 Fixing some Mongolian 2020-11-02 16:02:29 +01:00
Bruno Araujo
c0524197a0 translating the validators for european portuguese language 2020-11-02 16:00:21 +01:00
Ben Hakim
b99977efce
Update validators.he.xlf 2020-11-02 16:11:24 +02:00
Alexander M. Turek
ba7c60b745 minor #38961 Update validators.he.xlf (ben29)
This PR was merged into the 4.4 branch.

Discussion
----------

Update validators.he.xlf

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38744
| License       | MIT
| Doc PR        |

Commits
-------

98a7e8e150 Update validators.he.xlf
2020-11-02 15:00:41 +01:00
Ben Hakim
c8ab10f427
Update security.he.xlf 2020-11-02 15:41:03 +02:00
Ben Hakim
98a7e8e150
Update validators.he.xlf 2020-11-02 15:36:19 +02:00
Alexander M. Turek
12a617f2ea Merge branch '5.1' into 5.x 2020-11-02 09:16:52 +01:00
Alexander M. Turek
8d964bda5b Merge branch '4.4' into 5.1 2020-11-02 08:55:38 +01:00
Fabien Potencier
08da13391f minor #38932 [Validator] Merge RecursiveValidatorTest with its parents (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] Merge RecursiveValidatorTest with its parents

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

`RecursiveValidatorTest` as two abstract parent classes that to my understanding exist mainly for historic reasons: We used to have different validator implementations and those abstract classes contained some shared test cases. This is not the case anymore, which leaves `RecursiveValidatorTest` as the only child class of those two abstract classes.

This PR suggests to merge the three classes into one.

I've executed the test suite before and after the change and PHPUnit reported the same number of assertions and test cases.

I've also checked how the merge to 5.1 and 5.x would look like. The merge to 5.1 works without conflicts. From 5.1 to 5.x, two additional test cases have to be moved down and the reference to a few fixture classes needs to be adjusted.

Commits
-------

6822774d37 [Validator] Merge RecursiveValidatorTest with its parents.
2020-11-02 07:49:36 +01:00
Fabien Potencier
5c3781ae18 minor #38945 [Finder] Force set access time in test (Nyholm)
This PR was merged into the 4.4 branch.

Discussion
----------

[Finder] Force set access time in test

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no, it only updates the tests
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38942
| License       | MIT
| Doc PR        |

OSX don't really update atime (access time). They claim it is because performance reasons. So this PR will update the test to make PHP force access time on a file.

The different runs of `testAccept` depends on each other because each test modifies the filesystem a bit. That is why I added the extra `sleep(1)`.

Commits
-------

c5ec51abdf [Finder] Force set access time in test
2020-11-02 07:48:36 +01:00
Fabien Potencier
20306a23bf minor #38911 Fix transiant tests in 4.4 (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix transiant tests in 4.4

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

I noticed this week 2 currencies of this failure. in both case the `METADATA_EXPIRY` were 1.5 sec under the expected value

Commits
-------

833029ca7e Fix transiant tests in 4.4
2020-11-02 07:46:39 +01:00
Alexander M. Turek
7c319be805 minor #38953 [Form] Add missing Azerbaijani translation (seferov)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Form] Add missing Azerbaijani translation

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38725 and #38710
| License       | MIT
| Doc PR        | N/A

Commits
-------

142cfeed55 [Form] Add missing Azerbaijani translation
2020-11-02 01:33:19 +01:00
Farhad Safarov
142cfeed55 [Form] Add missing Azerbaijani translation 2020-11-02 01:33:09 +01:00
Alexander M. Turek
8bc1c76308 minor #38952 [Security] Add missing Azerbaijani translation (seferov)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Add missing Azerbaijani translation

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38725 and #38710
| License       | MIT
| Doc PR        | N/A

Commits
-------

665b25cd1e [Security] Add missing Azerbaijani translations
2020-11-02 01:32:18 +01:00
Alexander M. Turek
6576fea4bf minor #38951 [Validator] Add missing Azerbaijani translation (seferov)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] Add missing Azerbaijani translation

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38725 and #38710
| License       | MIT
| Doc PR        | N/A

Commits
-------

317f17a2f3 [Validator] Add missing Azerbaijani translation
2020-11-02 01:31:27 +01:00
Alexander M. Turek
9dd2f6b5a7 Merge branch '5.1' into 5.x 2020-11-02 01:06:48 +01:00
Alexander M. Turek
8898c0f3b6 minor #38955 Missing translations for Catalan (ca) (rogerguasch)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Missing translations for Catalan (ca)

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38731
| 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
-------

6efa4ed777 Missing translations for Catalan (ca)
2020-11-02 00:26:16 +01:00
Roger Guasch
6efa4ed777 Missing translations for Catalan (ca) 2020-11-02 00:26:09 +01:00
Alexander M. Turek
61f715fbbc minor #38924 fix: updating translation issues (hugovms)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

fix: updating translation issues

| Q             | A
| ------------- | ---
| Branch?       | 5.x for features / 4.4 or 5.1 for bug fixes <!-- see below -->
| Bug fix?      | yes/no
| New feature?  | yes/no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | yes/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
-------

b39ff818ca fix: updating translation issues
2020-11-02 00:24:41 +01:00
hugovms
b39ff818ca fix: updating translation issues 2020-11-02 00:24:32 +01:00
Jérémy Derussé
833029ca7e
Fix transiant tests in 4.4 2020-11-01 22:34:37 +01:00
Farhad Safarov
665b25cd1e [Security] Add missing Azerbaijani translations 2020-11-01 23:48:39 +03:00
Farhad Safarov
317f17a2f3 [Validator] Add missing Azerbaijani translation 2020-11-01 22:40:44 +03:00
Alexander M. Turek
e68da40f56 Merge branch '4.4' into 5.1 2020-11-01 20:20:14 +01:00
Nyholm
c5ec51abdf
[Finder] Force set access time in test 2020-11-01 20:04:13 +01:00
Nyholm
c377f73304 [Messenger] Fixed tests with doctrine 3 2020-11-01 20:02:47 +01:00
Alexander M. Turek
3a8570e569 Add symfony/translation to the dev dependencies of symfony/security. 2020-11-01 19:34:19 +01:00
Fabien Potencier
86e5c563f1 Merge branch '5.1' into 5.x
* 5.1:
  Validate XLIFF files in tests using the XSD
2020-11-01 18:42:32 +01:00
Fabien Potencier
7539597bbd Merge branch '4.4' into 5.1
* 4.4:
  Validate XLIFF files in tests using the XSD
2020-11-01 18:42:02 +01:00
Fabien Potencier
f5bd922e5b feature #38919 [Console] Make error message more verbose (Nyholm)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Console] Make error message more verbose

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #38904
| License       | MIT
| Doc PR        | no

This will make the error message a bit more verbose when you are using too many or too few arguments.

Commits
-------

ef221e88aa [Console] Make error message more verbose
2020-11-01 18:40:12 +01:00
Nyholm
ef221e88aa [Console] Make error message more verbose 2020-11-01 18:40:07 +01:00
Fabien Potencier
9947e14c11 minor #38939 Validate XLIFF files in tests using the XSD (wouterj)
This PR was merged into the 4.4 branch.

Discussion
----------

Validate XLIFF files in tests using the XSD

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

The current tests only validated that the Xliff files were valid XML. This improves it to also validate the Xliff files against the correct XSD. This will avoid issues like https://github.com/symfony/symfony/issues/38935 in the future.

cc @Nyholm

Commits
-------

17dfa1d5fc Validate XLIFF files in tests using the XSD
2020-11-01 18:35:28 +01:00
Alexander M. Turek
8bac7a0b5e Merge branch '5.1' into 5.x 2020-11-01 17:14:45 +01:00
Alexander M. Turek
fd4cdba551 Merge branch '4.4' into 5.1 2020-11-01 16:43:26 +01:00
Alexander M. Turek
7740bb31e4 minor #38927 Update security.da.xlf (AnneKir)
This PR was merged into the 4.4 branch.

Discussion
----------

Update security.da.xlf

Added case 17 and 18

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38736
| License       | MIT
| Doc PR        | symfony/symfony-docs#...

Commits
-------

31d120d0ee Update security.da.xlf
2020-11-01 16:21:33 +01:00
Alexander M. Turek
407f014af0 minor #38928 Update validators.da.xlf (AnneKir)
This PR was merged into the 4.4 branch.

Discussion
----------

Update validators.da.xlf

Addded cases 95-99 in Danish

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  |no
| Deprecations? |no
| Tickets       | Fix #38736
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Commits
-------

e193c2b985 Update validators.da.xlf
2020-11-01 16:20:01 +01:00
Alexander M. Turek
8dd870c5b8 minor #38926 Update validators.da.xlf (AnneKir)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Update validators.da.xlf

Added missing cases in danish.

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38736
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Commits
-------

e24d675368 Update validators.da.xlf
2020-11-01 16:18:50 +01:00
AnneKir
e24d675368 Update validators.da.xlf 2020-11-01 16:18:42 +01:00
Wouter de Jong
17dfa1d5fc Validate XLIFF files in tests using the XSD 2020-11-01 16:18:25 +01:00
Nyholm
32edd7facf
Remove translations that does not exists in English 2020-11-01 11:47:20 +01:00
Fabien Potencier
33a8b96c7c minor #38931 Set constant visibility in tests to private where possible (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

Set constant visibility in tests to private where possible

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

As discussed on Slack, this PR prepares the introduction of a CS fixer rule to enforce explicit visibility declarations for constants. I've checked class constants in test and fixture classes and if I only found usages within the same class, I've declared them `private`. This way, I also found a few constants that weren't used at all anymore, so I've removed those.

Commits
-------

43ce6dfe44 Set constant visibility in tests to private where possible.
2020-11-01 10:45:04 +01:00
Wojciech Kania
3980a482f6 Fix not well-formed validators.gl.xf 2020-11-01 10:31:07 +01:00
Alexander M. Turek
ed92008a5d Merge branch '5.1' into 5.x 2020-11-01 02:01:05 +01:00
Alexander M. Turek
052cdb19ab Merge branch '4.4' into 5.1 2020-11-01 01:24:56 +01:00
Alexander M. Turek
a4ed043567 minor #38907 [Form] Added missing Lithuanian translations (rmikalkenas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] Added missing Lithuanian translations

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #38750
| License       | MIT
| Doc PR        | N/A

Commits
-------

b1d868c35f [Form] Added missing Lithuanian translations
2020-11-01 01:22:24 +01:00
Alexander M. Turek
df5d950f48 minor #38908 [Security] Added missing Lithuanian translations (rmikalkenas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Added missing Lithuanian translations

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #38750
| License       | MIT
| Doc PR        | N/A

Commits
-------

a9c4a06c3d [Security] Added missing Lithuanian translations
2020-11-01 01:21:11 +01:00
Alexander M. Turek
73eb5932b6 minor #38918 Add missing translations for Afrikaans (pierredup)
This PR was merged into the 4.4 branch.

Discussion
----------

Add missing translations for Afrikaans

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38720
| License       | MIT
| Doc PR        | N/A

Add missing translations for Afrikaans.

Commits
-------

48d0ed5886 Add missing translations for Afrikaans
2020-11-01 01:19:58 +01:00
Alexander M. Turek
6822774d37 [Validator] Merge RecursiveValidatorTest with its parents. 2020-11-01 00:28:13 +01:00
Alexander M. Turek
43ce6dfe44 Set constant visibility in tests to private where possible. 2020-10-31 23:44:29 +01:00
AnneKir
e193c2b985
Update validators.da.xlf
Addded cases 95-99 in Danish
2020-10-31 18:45:33 +01:00
AnneKir
31d120d0ee
Update security.da.xlf
Added case 17 and 18
2020-10-31 18:44:53 +01:00
hugovms
935a3b23e2
fix: solving pt-br translation issues 2020-10-31 14:29:46 -03:00
Jérémy Derussé
d4db75692b
Improve performances in CircualReference detection 2020-10-31 17:09:50 +01:00
Pierre du Plessis
48d0ed5886
Add missing translations for Afrikaans 2020-10-31 12:10:29 +02:00
Jérémy Derussé
30a3c7c87b
Fix session called initized several time 2020-10-30 22:54:04 +01:00
Rokas Mikalkėnas
a9c4a06c3d [Security] Added missing Lithuanian translations 2020-10-30 22:13:53 +02:00
Rokas Mikalkėnas
b1d868c35f [Form] Added missing Lithuanian translations 2020-10-30 22:02:07 +02:00
Luis Tacon
703f156a9e Update Galician translations. 2020-10-30 20:13:58 +01:00
Alexander M. Turek
176f52d630 feature #38859 [HttpFoundation] Deprecate not passing a Closure together with FILTER_CALLBACK to ParameterBag::filter() (nicolas-grekas)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpFoundation] Deprecate not passing a `Closure` together with `FILTER_CALLBACK` to `ParameterBag::filter()`

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | -
| License       | MIT
| Doc PR        | -

Using `filter_var()` with a configurable flag is risky, because of the `FILTER_CALLBACK` flag.
Restricting the type of callable that is accepted here mitigates the risk.
We did the same in Twig: https://github.com/twigphp/Twig/pull/3308

Commits
-------

d6aea288e7 [HttpFoundation] Deprecate not passing a `Closure` together with `FILTER_CALLBACK` to `ParameterBag::filter()`
2020-10-30 18:01:43 +01:00
Alexander M. Turek
8ef1826bee minor #38902 Add Missing Serbian (Lat & Cyrl) & Bosnian translation (tambait)
This PR was merged into the 4.4 branch.

Discussion
----------

Add Missing Serbian (Lat & Cyrl) & Bosnian translation

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Tickets       | Fix #38760, fix #38761, fix #38728
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| License       | MIT

Commits
-------

29ac49741b Add Serbian (Lat & Cyrl) & Bosnian translations for Form Validator & Security
2020-10-30 17:57:30 +01:00
ivan
29ac49741b Add Serbian (Lat & Cyrl) & Bosnian translations for Form Validator & Security 2020-10-30 17:27:33 +01:00
Nicolas Grekas
d6aea288e7 [HttpFoundation] Deprecate not passing a Closure together with FILTER_CALLBACK to ParameterBag::filter() 2020-10-30 17:07:47 +01:00
Alexander M. Turek
6b1b12f40e Merge branch '5.1' into 5.x 2020-10-30 16:18:47 +01:00
Alexander M. Turek
41311a9b4a Merge branch '4.4' into 5.1 2020-10-30 16:09:42 +01:00
Massimiliano Arione
f33d16f0b9 remove reflection-docblock from mime requirements 2020-10-30 15:55:39 +01:00
Alexander M. Turek
b9ca866bdd Remove Symfony 3 compatibility code. 2020-10-30 15:21:36 +01:00
Alexander M. Turek
5cc4623aad minor #38897 Fixed translations for Norwegian (Nyholm)
This PR was merged into the 4.4 branch.

Discussion
----------

Fixed translations for Norwegian

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

This will fix Travis build on 4.4

Norwegian has two dialects. "old" or "written" (Bokmål) and "new" (Nynorsk). The "new" one is the one everybody* speaks. The locales for these languages are:
- Norwegian: no
- "old": nb
- "new": nn

It does not make sense, sure. However, Symfony have tests that make sure that `no` and `nb` are the same. This PR just copies the `no` translations to `nb`.

----------

\* By "everybody" I mean the younger half of the population, especially in Olso. I am generalising partly because Im ignorant and partly because I wish more people spoke Nynork because that is the dialect I understand.

Commits
-------

b28505abd5 Fixed translations for Norwegian
2020-10-30 15:19:12 +01:00
Nyholm
b28505abd5
Fixed translations for Norwegian 2020-10-30 15:01:38 +01:00
Alexander M. Turek
eb3770980d minor #38829 Missing translations for Greek (el) (pavlakis)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Missing translations for Greek (el)

| 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 #38743. <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | N/A
<!--
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
-------

02d5985a31 Missing translations for Greek (el)
2020-10-30 14:46:35 +01:00
Antonios Pavlakis
02d5985a31 Missing translations for Greek (el) 2020-10-30 14:46:25 +01:00
Alexander M. Turek
4fa4ecd9b2 minor #38878 Form, Security and Validator mn translation (luffy1727)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Form, Security and Validator mn translation

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38753
| License       | MIT

Adding Form, Security and validator Mongolian[mn] translation

Commits
-------

656d7b8df5 Form, Security and Validator mn translation
2020-10-30 10:44:54 +01:00
luffy1727
656d7b8df5 Form, Security and Validator mn translation 2020-10-30 10:44:46 +01:00
Nicolas Grekas
13af58c57f [Cache] minor improvement in expiry handling 2020-10-29 11:44:04 +01:00
Nicolas Grekas
fdff819803 bug #38879 [Cache] Fixed expiry could be int in ChainAdapter due to race conditions (phamviet)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Fixed expiry could be int in ChainAdapter due to race conditions

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38635
| License       | MIT
| Doc PR        | no

This bug is hard to re-produce and seems only happen with ArrayAdapter only.

Steps to reproduce:

cache.yaml
```
simple.cache:
        adapters:
          - cache.adapter.array
          - cache.adapter.redis
```

```php
if (isset($item->metadata[CacheItem::METADATA_EXPIRY])) {
    $logger->debug($item->key, $item->metadata);
    $format = is_int($item->metadata[CacheItem::METADATA_EXPIRY]) ? 'U' : 'U.u';
    $item->expiresAt(\DateTime::createFromFormat($format, $item->metadata[CacheItem::METADATA_EXPIRY]));
 }
```

Refresh webpage multiple time to make web server busy and logs:
```
[2020-10-29T17:04:51.119653+07:00] application.DEBUG: item-key {"expiry":1603965892.118222,"ctime":4} []
[2020-10-29T17:04:54.322937+07:00] application.DEBUG: item-key {"expiry":1603965895.308393,"ctime":17} []
[2020-10-29T17:04:54.745923+07:00] application.DEBUG: item-key {"expiry":1603965895,"ctime":16} []
```

Commits
-------

268816f26c [Cache] Fixed expiry maybe int due too race conditions
2020-10-29 11:37:34 +01:00
Viet Pham
268816f26c [Cache] Fixed expiry maybe int due too race conditions 2020-10-29 11:37:09 +01:00
Alexander M. Turek
9aac4f444a Merge branch '5.1' into 5.x 2020-10-29 11:04:13 +01:00
Alexander M. Turek
487908a610 minor #38862 Complete the Language for Hungarian and Norwegian (masitings)
This PR was merged into the 4.4 branch.

Discussion
----------

Complete the Language for Hungarian and Norwegian

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38745 and fix #38754
| License       | MIT
| Doc PR        | -

Hi there, i have complete the translation for this 2 language. Mostly i translate that using google translate and some of the language i define by my self.

Commits
-------

9e4859c87b Complete the Language for Hungarian and Norwegian
2020-10-29 10:59:37 +01:00
Mas Iting
9e4859c87b
Complete the Language for Hungarian and Norwegian 2020-10-29 10:58:36 +01:00
Alexander M. Turek
a29af81af4 Merge branch '4.4' into 5.1 2020-10-29 10:50:11 +01:00
Alexander M. Turek
1dfa4fa086 minor #38865 Add FI Form validation translations (gzumba)
This PR was merged into the 4.4 branch.

Discussion
----------

Add FI Form validation translations

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38876
| License       | MIT

Finnish translations for the Form validators.

Commits
-------

7608142ced Add FI Form validation translations
2020-10-29 10:40:37 +01:00
Fabien Potencier
12578c2699 minor #38866 [Console] Test degraded true colors (freezy-sk)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Console] Test degraded true colors

| 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       | <!-- 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#14494 <!-- required for new features -->

Testing hidden feature of hex colors degraded to ANSI named colors for terminals without true color support.

Commits
-------

a26dc0931b [Console] Test degraded true colors
2020-10-29 08:35:47 +01:00
freezy
a26dc0931b [Console] Test degraded true colors 2020-10-29 08:35:40 +01:00
Alexander M. Turek
0b8e5066d4 Fix CS 2020-10-28 22:47:22 +01:00
Alexander M. Turek
0fee41a617 Merge branch '5.1' into 5.x 2020-10-28 22:46:03 +01:00
Alexander M. Turek
53f7f5f27e Fix CS 2020-10-28 22:33:29 +01:00
Alexander M. Turek
294cffea25 Merge branch '4.4' into 5.1 2020-10-28 22:31:18 +01:00
Alexander M. Turek
659decf594 Use short array deconstruction syntax. 2020-10-28 21:42:29 +01:00
Fabien Potencier
8941b93b2c minor #38821 [Form] Add missing slovak translations (miromichalicka)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Form] Add missing slovak translations

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | #38762
| License       | MIT

This PR adds missing Slovak Form translations

Commits
-------

52380eed38 [Form] Add missing slovak translations
2020-10-28 19:13:34 +01:00
Miro Michalicka
52380eed38 [Form] Add missing slovak translations 2020-10-28 19:13:24 +01:00
Fabien Potencier
6d13d84b49 minor #38868 Added Thai missing translations (ibotdotout)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Added Thai missing translations

| Q             | A
| ------------- | ---
| Branch?       |  4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38767
| License       | MIT
| Doc PR        | -

Added missing Thai translations based on 4.4 branch

CC. @Nyholm

Commits
-------

4f39516558 Added Thai missing translations
2020-10-28 19:09:07 +01:00
“teerasak”
4f39516558 Added Thai missing translations 2020-10-28 19:09:00 +01:00
Alexander M. Turek
587ed0d9bb minor #38857 Add missing translations for Tagalog (tl) (ocrampete16)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Add missing translations for Tagalog (tl)

| 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 #38766 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT

This PR adds missing form, security and validator translations for Tagalog.

I also skimmed over the existing translations and corrected spelling mistakes I could find.

Commits
-------

c4461b760a Add missing translations for Tagalog (tl)
2020-10-28 16:29:47 +01:00
Marco Petersen
c4461b760a Add missing translations for Tagalog (tl) 2020-10-28 16:29:36 +01:00
zumba
0f13737cc1 Add new FI Validator translations 2020-10-28 15:43:09 +01:00
zumba
7608142ced Add FI Form validation translations 2020-10-28 16:05:29 +02:00
Nyholm
29e3964da6
Remove translation keys that does not exists in English 2020-10-28 11:52:59 +01:00
Fabien Potencier
bcb27b4426 [Cache] Add missing use statement 2020-10-28 08:18:22 +01:00
Fabien Potencier
d8aa04f9a2 Bump Symfony version to 5.2.0 2020-10-28 07:15:27 +01:00
Fabien Potencier
d034e0455d Update VERSION for 5.2.0-BETA3 2020-10-28 07:08:40 +01:00
Fabien Potencier
b1cb5b3008 Bump Symfony version to 5.1.9 2020-10-28 07:07:48 +01:00
Fabien Potencier
78654e8cbd Update VERSION for 5.1.8 2020-10-28 06:55:23 +01:00
Fabien Potencier
8b0146cb63 Bump Symfony version to 4.4.17 2020-10-28 06:54:40 +01:00
Fabien Potencier
1864a9c528 Update VERSION for 4.4.16 2020-10-28 06:50:56 +01:00
Fabien Potencier
4eb10eaa2c Bump Symfony version to 3.4.47 2020-10-28 06:49:13 +01:00
Fabien Potencier
e700242adf Update VERSION for 3.4.46 2020-10-28 06:40:17 +01:00
Fabien Potencier
9dac2086b0 Merge branch '5.1' into 5.x
* 5.1:
  Missing translations for Chinese (zh_TW) #38733
  Missing translations for Chinese (zh_CN) #38732
2020-10-28 06:25:52 +01:00
Fabien Potencier
32cfd4d530 Merge branch '4.4' into 5.1
* 4.4:
  Missing translations for Chinese (zh_TW) #38733
  Missing translations for Chinese (zh_CN) #38732
2020-10-28 06:25:38 +01:00
Fabien Potencier
ea1ce23a76 Merge branch '3.4' into 4.4
* 3.4:
  Missing translations for Chinese (zh_TW) #38733
  Missing translations for Chinese (zh_CN) #38732
2020-10-28 06:25:24 +01:00
Fabien Potencier
8c6b652c10 minor #38848 Missing translations for Chinese (zh_TW) #38733 (fd6130)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

Missing translations for Chinese (zh_TW) #38733

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38733
| License       | MIT

Added missing translations for zh_TW in Form, Security, Validator.

Commits
-------

3e741fda0a Missing translations for Chinese (zh_TW) #38733
2020-10-28 06:23:51 +01:00
fd6130
3e741fda0a Missing translations for Chinese (zh_TW) #38733 2020-10-28 06:23:45 +01:00
Fabien Potencier
48cbe31d4e minor #38847 Missing translations for Chinese (zh_CN) #38732 (fd6130)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

Missing translations for Chinese (zh_CN) #38732

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38732
| License       | MIT

Added missing translations for zh_CN in Form, Security, Validator.

Commits
-------

952df248d0 Missing translations for Chinese (zh_CN) #38732
2020-10-28 06:23:15 +01:00
fd6130
952df248d0 Missing translations for Chinese (zh_CN) #38732 2020-10-28 06:23:05 +01:00
Jérémy Derussé
f1f44d48e0
Do not call getQueueUrl when the url is known 2020-10-28 00:31:15 +01:00
Robin Chalas
268b5b746c bug #38845 [Console] Register signal handling only for commands implemeting SignalableCommandInterface (lyrixx)
This PR was merged into the 5.x branch.

Discussion
----------

[Console] Register signal handling only for commands implemeting SignalableCommandInterface

| Q             | A
| ------------- | ---
| Branch?       | 5.x for features
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38820
| License       | MIT
| Doc PR        |

---

Actually, it does not make sens to listen all signals for all commands.

This commit also add more tests for this part of code.

Commits
-------

37b1faec8c [Console] Register signal handling only for commands implemeting SignalableCommandInterface
2020-10-27 18:00:50 +01:00
Jérémy Derussé
7bb288e956
Fix transient tests 2020-10-27 16:54:49 +01:00
Grégoire Pineau
37b1faec8c [Console] Register signal handling only for commands implemeting SignalableCommandInterface
Actually, it does not make sens to listen all signals for all commands.

This commit also add more test for this part of code.
2020-10-27 16:37:34 +01:00
Nicolas Grekas
982bf9487e Merge branch '5.1' into 5.x
* 5.1:
  Fix CI for 3.4
  [Form] Some minor teaks for Swedish
  Fix CI
  Fix CI
  minor #38838 [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions" (nicolas-grekas)
2020-10-27 15:19:03 +01:00
Nicolas Grekas
f7390bb073 Merge branch '4.4' into 5.1
* 4.4:
  Fix CI for 3.4
  [Form] Some minor teaks for Swedish
  Fix CI
  Fix CI
  minor #38838 [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions" (nicolas-grekas)
2020-10-27 15:18:55 +01:00
Nicolas Grekas
dcb57f8505 Merge branch '3.4' into 4.4
* 3.4:
  Fix CI for 3.4
  [Form] Some minor teaks for Swedish
  Fix CI
  minor #38838 [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions" (nicolas-grekas)
2020-10-27 15:18:35 +01:00
Nyholm
7af4fe989a
[Form] Some minor teaks for Swedish 2020-10-27 15:11:24 +01:00
Nicolas Grekas
824bc44a74 bug #38751 [Security] Move AbstractListener abstract methods to the new FirewallListenerInterface (chalasr)
This PR was merged into the 5.x branch.

Discussion
----------

[Security] Move AbstractListener abstract methods to the new FirewallListenerInterface

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | -
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

We added a FirewallListenerInterface in 5.2, let's make it complete to allow for cleaner firewall listener implementations.

Commits
-------

5dd70bd62e [Security] Move AbstractListener abstract methods to the new FirewallListenerInterface
2020-10-27 11:43:30 +01:00
Nicolas Grekas
27341b5e60 minor #38819 [HttpKernel] HttpKernelBrowser: don't set a default Accept header (dunglas)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[HttpKernel] HttpKernelBrowser: don't set a default Accept header

| Q             | A
| ------------- | ---
| Branch?       | 3.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 #33393
| License       | MIT
| Doc PR        | n/a

Currently, the `Accept` HTTP header is set automatically, because there is a default value for this value in HttpFoundation's `Request::create()` method.
This PR remove the default value if it hasn't been set automatically.

This will fix API Platform's `ApiTestCase` and `Behatch/contexts` (the previous workarounds aren't applicable anymore because we added type checks in Symfony).

Commits
-------

bf13887898 [HttpKernel] HttpKernelBrowser: don't set a default Accept header
2020-10-27 11:15:18 +01:00
Kévin Dunglas
bf13887898 [HttpKernel] HttpKernelBrowser: don't set a default Accept header 2020-10-27 11:15:10 +01:00
Nicolas Grekas
d5118933ed Merge branch '5.1' into 5.x
* 5.1:
  [DI] Fix Preloader exception when preloading a class with an unknown parent/interface
  [Translation] added missing Albanian translations
  [Form, Security, Validator] Add missing Turkish translations (tr)
  Display php info for extra versions in travis
  [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions"
  38737 add missing dutch translation
  Fix transient tests
  [Validator] Add missing Slovak translations.
  [Form, Security, Validator] Add missing Persian translations (fa_IR)
  [Form] Fix wrong translations for Ukrainian (uk)
  [Validator] Add missing translations for Ukrainian (uk)
  [Security] Add missing translations for Ukrainian (uk)
  [Form] Add missing translations for Ukrainian (uk)
  [Security] Add missing Slovak translations.
  [Form] Added missing Spanish translations.
  Fix transient tests
2020-10-27 11:14:44 +01:00
Nicolas Grekas
8810d2da62 Merge branch '4.4' into 5.1
* 4.4:
  [DI] Fix Preloader exception when preloading a class with an unknown parent/interface
  [Translation] added missing Albanian translations
  [Form, Security, Validator] Add missing Turkish translations (tr)
  Display php info for extra versions in travis
  [ProxyManager] use "composer/package-versions-deprecated" instead of "ocramius/package-versions"
  38737 add missing dutch translation
  Fix transient tests
  [Validator] Add missing Slovak translations.
  [Form, Security, Validator] Add missing Persian translations (fa_IR)
  [Form] Fix wrong translations for Ukrainian (uk)
  [Validator] Add missing translations for Ukrainian (uk)
  [Security] Add missing translations for Ukrainian (uk)
  [Form] Add missing translations for Ukrainian (uk)
  [Security] Add missing Slovak translations.
  [Form] Added missing Spanish translations.
  Fix transient tests
2020-10-27 11:11:13 +01:00
Nicolas Grekas
686ebe0f99 Merge branch '3.4' into 4.4
* 3.4:
  [Translation] added missing Albanian translations
  [Form, Security, Validator] Add missing Turkish translations (tr)
  Display php info for extra versions in travis
  38737 add missing dutch translation
  [Validator] Add missing Slovak translations.
  [Form, Security, Validator] Add missing Persian translations (fa_IR)
  [Form] Fix wrong translations for Ukrainian (uk)
  [Validator] Add missing translations for Ukrainian (uk)
  [Security] Add missing translations for Ukrainian (uk)
  [Form] Add missing translations for Ukrainian (uk)
  [Security] Add missing Slovak translations.
  [Form] Added missing Spanish translations.
  Fix transient tests
2020-10-27 11:09:47 +01:00
Nicolas Grekas
bc94b62236 minor #38798 Fix transient tests on branch 4.4 (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix transient tests on branch 4.4

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Fix transient tests on branch 4.4.

I'll keep this PR open few days to watch travis/GHA for transient tests

Commits
-------

676b8080a5 Fix transient tests
2020-10-27 11:08:12 +01:00
Nicolas Grekas
19804e1a02 bug #38713 [DI] Fix Preloader exception when preloading a class with an unknown parent/interface (rgeraads)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[DI] Fix Preloader exception when preloading a class with an unknown parent/interface

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38693
| License       | MIT

Fixes Preloader exception when preloading a class with an unknown parent/interface.

Commits
-------

b6ae4858b9 [DI] Fix Preloader exception when preloading a class with an unknown parent/interface
2020-10-27 11:05:49 +01:00
Randy Geraads
b6ae4858b9 [DI] Fix Preloader exception when preloading a class with an unknown parent/interface 2020-10-27 11:05:40 +01:00
Nicolas Grekas
f04745a208 minor #38797 Fix transient tests on branch 3.4 (jderusse)
This PR was merged into the 3.4 branch.

Discussion
----------

Fix transient tests on branch 3.4

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Fix transient tests on branch 3.4.

I'll keep this PR open few days to watch travis/GHA for transient tests

Commits
-------

987efdd620 Fix transient tests
2020-10-27 10:55:27 +01:00
Nicolas Grekas
eec6fd58d0 minor #38833 [Form] Fix wrong translations for Ukrainian (uk) (Comrade42)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Fix wrong translations for Ukrainian (uk)

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38769
| License       | MIT
| Doc PR        | N/A

Commits
-------

6e386e9c4c [Form] Fix wrong translations for Ukrainian (uk)
2020-10-27 10:53:09 +01:00
Nicolas Grekas
5b2f6e74fd minor #38832 [Validator] Add missing translations for Ukrainian (uk) (Comrade42)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Add missing translations for Ukrainian (uk)

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38769
| License       | MIT
| Doc PR        | N/A

Commits
-------

8aa7b7235e [Validator] Add missing translations for Ukrainian (uk)
2020-10-27 10:52:41 +01:00
Nicolas Grekas
b42451a8fa minor #38830 [Security] Add missing translations for Ukrainian (uk) (Comrade42)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Add missing translations for Ukrainian (uk)

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38769
| License       | MIT
| Doc PR        | N/A

Commits
-------

969603b9c7 [Security] Add missing translations for Ukrainian (uk)
2020-10-27 10:51:28 +01:00
Nicolas Grekas
f366593d4a minor #38835 [Translation] added missing Albanian translations (abame)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Translation] added missing Albanian translations

[Translation] added missing Albanian translations for the following components:

1. [Forms]
2. [Security][Core]
3. [Validator]

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38722
| License       | MIT

Commits
-------

bde427a303 [Translation] added missing Albanian translations
2020-10-27 10:50:30 +01:00
Albion Bame
bde427a303 [Translation] added missing Albanian translations 2020-10-27 10:50:21 +01:00
Nicolas Grekas
c273db0fde minor #38834 [Form, Security, Validator] Add missing Turkish translations (tr) (ahmed-bhs)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Form, Security, Validator] Add missing Turkish translations (tr)

[Form, Security, Validator] Add missing Turkish translations (tr) related issue #38768
| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38768
| License       | MIT

Commits
-------

9facb1a11a [Form, Security, Validator] Add missing Turkish translations (tr)
2020-10-27 10:49:39 +01:00
Ahmed Eben Hassine
9facb1a11a [Form, Security, Validator] Add missing Turkish translations (tr) 2020-10-27 10:49:32 +01:00
Nicolas Grekas
3e3d0f11af minor #38831 [Form] Add missing translations for Ukrainian (uk) (Comrade42)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Add missing translations for Ukrainian (uk)

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38769
| License       | MIT
| Doc PR        | N/A

Commits
-------

db4658e044 [Form] Add missing translations for Ukrainian (uk)
2020-10-27 10:48:41 +01:00
Nyholm
dc4844445b
minor #38781 [Form] Added missing Spanish translations (TavoNiievez)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Added missing Spanish translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38710 and #38764
| License       | MIT
| Doc PR        | N/A

Commits
-------

929bba668c [Form] Added missing Spanish translations.
2020-10-26 22:01:07 +01:00
Nyholm
fc806c6084
minor #38793 38737 add missing dutch translation (JohJohan)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

38737 add missing dutch translation

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38737
| License       | MIT
| Doc PR        | No, not needed

Update dutch translation

Commits
-------

7cf4ca6f83 38737 add missing dutch translation
2020-10-26 21:49:58 +01:00
Johan
7cf4ca6f83
38737 add missing dutch translation 2020-10-26 21:49:10 +01:00
Jérémy Derussé
676b8080a5
Fix transient tests 2020-10-26 21:47:51 +01:00
Alexander M. Turek
7b8d0ff50e minor #38824 [Validator] Add missing Slovak translations. (miromichalicka)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Validator] Add missing Slovak translations.

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | #38762
| License       | MIT

This PR adds missing Slovak Validator translations

Commits
-------

7b91af855a [Validator] Add missing Slovak translations.
2020-10-26 20:15:45 +01:00
Miro Michalicka
7b91af855a [Validator] Add missing Slovak translations. 2020-10-26 20:15:38 +01:00
Alexander M. Turek
a07fab30d9 minor #38823 [Security] Add missing Slovak translations. (miromichalicka)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Add missing Slovak translations.

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | #38762
| License       | MIT

This PR adds missing Slovak Security translations

Commits
-------

9de3c41cc7 [Security] Add missing Slovak translations.
2020-10-26 20:14:36 +01:00
Amirreza Shafaat
d29cd19a3d [Form, Security, Validator] Add missing Persian translations (fa_IR) 2020-10-26 20:12:20 +01:00
Vitalii Ekert
6e386e9c4c
[Form] Fix wrong translations for Ukrainian (uk) 2020-10-26 20:31:48 +02:00
Vitalii Ekert
8aa7b7235e
[Validator] Add missing translations for Ukrainian (uk) 2020-10-26 20:27:17 +02:00
Vitalii Ekert
969603b9c7
[Security] Add missing translations for Ukrainian (uk) 2020-10-26 20:26:01 +02:00
Vitalii Ekert
db4658e044
[Form] Add missing translations for Ukrainian (uk) 2020-10-26 20:23:35 +02:00
Miro Michalicka
9de3c41cc7 [Security] Add missing Slovak translations. 2020-10-26 13:51:19 +01:00
Nicolas Grekas
72a6f844f3 Merge branch '5.1' into 5.x
* 5.1:
  Disable platform checks
  Add missing translations for Japanese.
  sync id translation
  [Validator] Added missing Spanish translations.
2020-10-26 13:08:23 +01:00
Nicolas Grekas
0fd862e10b Merge branch '4.4' into 5.1
* 4.4:
  Disable platform checks
  Add missing translations for Japanese.
  sync id translation
  [Validator] Added missing Spanish translations.
2020-10-26 13:04:38 +01:00
Nicolas Grekas
af95a86a84 Merge branch '3.4' into 4.4
* 3.4:
  Disable platform checks
  Add missing translations for Japanese.
  sync id translation
  [Validator] Added missing Spanish translations.
2020-10-26 13:03:01 +01:00
Tavo Nieves J
929bba668c [Form] Added missing Spanish translations. 2020-10-26 06:38:40 -05:00
Alexander M. Turek
5bbd01d4b8 minor #38814 Added missing translations for Japanese (Ippey)
This PR was merged into the 3.4 branch.

Discussion
----------

Added missing translations for Japanese

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38748
| License       | MIT
| Doc PR        | symfony/symfony-docs#...

Hi,
I added missing translations for Japanese.

Commits
-------

c83d848005 Add missing translations for Japanese.
2020-10-26 10:09:46 +01:00
Alexander M. Turek
7274962f15 minor #38784 [Validator] Added missing Spanish translation (TavoNiievez)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Added missing Spanish translation

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38710 and #38764
| License       | MIT
| Doc PR        | N/A

Commits
-------

26f3963bb2 [Validator] Added missing Spanish translations.
2020-10-26 10:02:55 +01:00
Ippei Sumida
c83d848005 Add missing translations for Japanese. 2020-10-26 16:23:22 +09:00
Indra Gunawan
a78b01140e sync id translation 2020-10-26 06:52:24 +01:00
Alexander M. Turek
93d0276d8c Merge branch '5.1' into 5.x 2020-10-26 00:24:03 +01:00
Alexander M. Turek
5b2f88b52b Merge branch '4.4' into 5.1 2020-10-26 00:21:56 +01:00
Alexander M. Turek
5cdc573b45 Merge branch '3.4' into 4.4 2020-10-26 00:21:18 +01:00
Robin Chalas
b64f4f8fbc minor #38719 Update French Translations for Validator Component (zairigimad)
This PR was merged into the 3.4 branch.

Discussion
----------

Update French Translations for Validator Component

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #38741
| 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
-------

dd2d320e37 Update French Translations for Validator Component
2020-10-26 00:00:23 +01:00
Zairig Imad
dd2d320e37 Update French Translations for Validator Component 2020-10-25 23:58:53 +01:00
Alexander M. Turek
bba9f78fba minor #38801 Missing swedish translations for Form, Security and Validator components (erickr)
This PR was merged into the 3.4 branch.

Discussion
----------

Missing swedish translations for Form, Security and Validator components

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38765
| License       | MIT
| Doc PR        |

Added missing swedish translations for Form, Security and Validator components

Commits
-------

1044b1e852 Fix #38765 Added missing swedish translations for Form, Security and Validator components
2020-10-25 23:58:51 +01:00
Eric Krona
1044b1e852 Fix #38765 Added missing swedish translations for Form, Security and Validator components
Update src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf
Co-authored-by: Tobias Nyholm <tobias.nyholm@gmail.com>

Update src/Symfony/Component/Validator/Resources/translations/validators.sv.xlf
Co-authored-by: Tobias Nyholm <tobias.nyholm@gmail.com>
2020-10-25 23:38:27 +01:00
Robin Chalas
3ca9406cdb minor #38783 [Security] Added missing Spanish translations (TavoNiievez)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Added missing Spanish translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38710 and #38764
| License       | MIT
| Doc PR        | N/A

Commits
-------

8b307e644a [Security] Added missing Spanish translations.
2020-10-25 23:21:13 +01:00
Robin Chalas
9376e8778d [Security] Remove dead references to AnonymousAuthenticator 2020-10-25 23:13:28 +01:00
Alexander M. Turek
8a81c30860 minor #38796 Added missing translations for Russian (mamontovdmitriy)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

Added missing translations for Russian

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38759
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Hello!
I added missing translations for Russian.

Commits
-------

6a9e274a10 Added missing translations for Russian
2020-10-25 22:55:11 +01:00
Dmitriy Mamontov
6a9e274a10 Added missing translations for Russian 2020-10-25 22:55:04 +01:00
Alexander M. Turek
dc9422404d minor #38795 [Form] [Security] Add missing pt_BR translations (adielcristo)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Form] [Security] Add missing pt_BR translations

| Q             | A
| ------------- | ---
| Branch?     | 3.4
| Bug fix?     | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38729
| License       | MIT
| Doc PR        | N/A

Commits
-------

fd05fc6afb [Form] [Security] Add missing pt_BR translations
2020-10-25 22:53:31 +01:00
Adiel Cristo
fd05fc6afb [Form] [Security] Add missing pt_BR translations 2020-10-25 22:53:24 +01:00
Robin Chalas
5dd70bd62e [Security] Move AbstractListener abstract methods to the new FirewallListenerInterface 2020-10-25 22:41:40 +01:00
Jérémy Derussé
987efdd620
Fix transient tests 2020-10-25 21:41:30 +01:00
Alexander M. Turek
7ae1cc9e7a minor #38787 [Cache] Fix transient tests (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Fix transient tests

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Fix transient tests in cache like this one https://github.com/symfony/symfony/runs/1302566714?check_suite_focus=true

Commits
-------

b452e18ebc Fix transient tests
2020-10-25 20:32:35 +01:00
Andrew M-Y
4924b38d3a [Validator] Add missing Latvian translations 2020-10-25 20:29:48 +01:00
Alexander M. Turek
ead4084942 minor #38790 [Form] Add missing Latvian translations (andrewmy)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Form] Add missing Latvian translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #34710, #34749
| License       | MIT
| Doc PR        | N/A

Commits
-------

871c983164 [Form] Add missing Latvian translations
2020-10-25 20:27:01 +01:00
Andrew M-Y
871c983164 [Form] Add missing Latvian translations 2020-10-25 20:26:47 +01:00
Jérémy Derussé
b452e18ebc
Fix transient tests 2020-10-25 20:26:37 +01:00
Alexander M. Turek
f015d0a498 minor #38791 [Security] Add missing Latvian translations (andrewmy)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Add missing Latvian translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #34710, #34749
| License       | MIT
| Doc PR        | N/A

Commits
-------

7f2b13bcb3 [Security] Add missing Latvian translations
2020-10-25 20:24:37 +01:00
Andrew M-Y
7f2b13bcb3 [Security] Add missing Latvian translations 2020-10-25 21:00:32 +02:00
Alexander M. Turek
eb8d90974b Merge branch '5.1' into 5.x 2020-10-25 19:59:20 +01:00
Alexander M. Turek
e9dad88c01 Merge branch '4.4' into 5.1 2020-10-25 19:57:53 +01:00
Alexander M. Turek
2e5b6bf8cd Merge branch '3.4' into 4.4 2020-10-25 19:55:53 +01:00
Alexander M. Turek
fbc99973f8 minor #38786 Add missing vietnamese translations (jschaedl)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

Add missing vietnamese translations

| 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       | Fix #38770  <!-- 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.
-->

Commits
-------

6289b271aa Add missing vietnamese translations
2020-10-25 19:50:42 +01:00
Jan Schädlich
6289b271aa Add missing vietnamese translations 2020-10-25 19:50:32 +01:00
Nyholm
ac0e25e885 [Cache] Fixed tests.. again 2020-10-25 19:42:52 +01:00
Alexander M. Turek
a7a3f228d7 minor #38782 [Validator] Add missing Czech translations (Lukáš Holeczy)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Add missing Czech translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | #38735
| License       | MIT

This PR adds missing Czech validator translations.

Commits
-------

eaff84418f [Validator] Add missing czech translations
2020-10-25 19:27:51 +01:00
Alexander M. Turek
7933e161c8 minor #38780 [Form] Add missing Czech translations (Lukáš Holeczy)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Add missing Czech translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | #38735
| License       | MIT

This PR adds missing Czech form translations.

Commits
-------

05be7b2f1c [Form] Add missing czech translations
2020-10-25 19:13:13 +01:00
Alexander M. Turek
640a5780bb minor #38779 [Security] Add missing czech translations (Lukáš Holeczy)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Add missing czech translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | #38735
| License       | MIT

This PR adds missing Czech security translations.

Commits
-------

01cb45462c [Security] Add missing czech translations
2020-10-25 19:10:29 +01:00
Alexander M. Turek
46c3af8325 minor #38778 [Security] Missing Bulgarian translations (kbosilkov)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Missing Bulgarian translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38730
| License       | MIT
| Doc PR        | N/A

Commits
-------

fd7060d21a [Security] Missing Bulgarian translations #38730
2020-10-25 19:09:08 +01:00
Alexander M. Turek
b1d2444b8a minor #38776 [Form] Missing Bulgarian translations (kbosilkov)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Form] Missing Bulgarian translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38730
| License       | MIT
| Doc PR        | N/A

Commits
-------

8c5d26fcb2 [Form] Missing Bulgarian translations
2020-10-25 19:07:00 +01:00
Krasimir Bosilkov
8c5d26fcb2 [Form] Missing Bulgarian translations 2020-10-25 19:06:52 +01:00
Alexander M. Turek
0345094426 minor #38775 [Validator] Missing Bulgarian translations (kbosilkov)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Missing Bulgarian translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38730
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Commits
-------

a9d6549ce9 [Validator] Missing Bulgarian translations #38730
2020-10-25 19:03:50 +01:00
Alexander M. Turek
62a913a788 minor #38773 Closes #38747: Add italian translations. (Aerendir)
This PR was merged into the 3.4 branch.

Discussion
----------

Closes #38747: Add italian translations.

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38747
| License       | MIT
| Doc PR        | N/A

Commits
-------

7d25a46b3b Closes #38747: Add italian translations.
2020-10-25 19:01:42 +01:00
Alexander M. Turek
c44b15160c minor #38721 Update Arabic Form Translations (zairigimad)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

Update Arabic Form Translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| 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 -->

This is related to https://github.com/symfony/symfony/issues/38723

Commits
-------

b36068ff8a Update Arabic Form Translations
2020-10-25 18:57:04 +01:00
Zairig Imad
b36068ff8a Update Arabic Form Translations 2020-10-25 18:56:55 +01:00
Alexander M. Turek
772ba805d3 minor #38718 Update Security Arabic Translations (zairigimad)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

Update Security Arabic Translations

| Q             | A
| ------------- | ---
| Branch?       | 5.x for features / 3.4, 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 -->

Related to https://github.com/symfony/symfony/issues/38723

Commits
-------

e6219e4796 Update Security Arabic Translations
2020-10-25 18:48:53 +01:00
Zairig Imad
e6219e4796 Update Security Arabic Translations 2020-10-25 18:48:45 +01:00
tarlepp
65db8d08c8 Added missing security.fi.xlf translation file 2020-10-25 18:36:27 +01:00
Tavo Nieves J
26f3963bb2 [Validator] Added missing Spanish translations. 2020-10-25 12:27:57 -05:00
Tavo Nieves J
8b307e644a [Security] Added missing Spanish translations. 2020-10-25 12:09:02 -05:00
Lukáš Holeczy
eaff84418f [Validator] Add missing czech translations 2020-10-25 17:56:47 +01:00
Lukáš Holeczy
05be7b2f1c [Form] Add missing czech translations 2020-10-25 17:54:38 +01:00
Lukáš Holeczy
01cb45462c [Security] Add missing czech translations 2020-10-25 17:46:46 +01:00
Krasimir Bosilkov
fd7060d21a
[Security] Missing Bulgarian translations #38730 2020-10-25 18:45:33 +02:00
Krasimir Bosilkov
a9d6549ce9
[Validator] Missing Bulgarian translations #38730 2020-10-25 18:37:37 +02:00
Aerendir
7d25a46b3b Closes #38747: Add italian translations. 2020-10-25 16:26:49 +01:00
Zairig Imad
85adad52c4 Update Security Frensh Translations 2020-10-25 14:06:13 +01:00
Fabien Potencier
fa2d8eff02 minor #38716 [Security] Added missing German translations (derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Added missing German translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38710
| License       | MIT
| Doc PR        | N/A

Commits
-------

54140d45fb [Security] Added missing German translations.
2020-10-25 13:58:40 +01:00
Alexander M. Turek
eb6167cc0b Merge branch '5.1' into 5.x 2020-10-25 13:48:34 +01:00
Alexander M. Turek
f028d9ec9d Merge branch '4.4' into 5.1 2020-10-25 13:47:59 +01:00
Alexander M. Turek
86211dee65 Merge branch '3.4' into 4.4 2020-10-25 13:47:18 +01:00
Alexander M. Turek
00023a6ab8 [Form] Added missing German translations. 2020-10-25 13:34:19 +01:00
Alexander M. Turek
54140d45fb [Security] Added missing German translations. 2020-10-25 13:09:32 +01:00
Fabien Potencier
e74d87c875 minor #38715 [Security] Synchronized translations with 5.x (derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Synchronized translations with 5.x

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38710
| License       | MIT
| Doc PR        | N/A

Commits
-------

3d7863f5b5 [Security] Synchronized translations with 5.x.
2020-10-25 12:49:41 +01:00
Alexander M. Turek
3d7863f5b5 [Security] Synchronized translations with 5.x. 2020-10-25 12:33:47 +01:00
Fabien Potencier
a1fa430b6a minor #38714 [Form] Added missing German translations (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Form] Added missing German translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38710
| License       | MIT
| Doc PR        | N/A

Commits
-------

37a2ff4563 [Form] Added missing German translations.
2020-10-25 12:31:08 +01:00
Alexander M. Turek
37a2ff4563 [Form] Added missing German translations. 2020-10-25 12:18:37 +01:00
Marcin Michalski
ec3b0edc1f [Form] Add missing polish translations 2020-10-25 12:03:58 +01:00
Marcin Michalski
23fa42267e [Security] Add missing polish translations 2020-10-25 11:48:26 +01:00
Fabien Potencier
fc5e6b1903 Merge branch '5.1' into 5.x
* 5.1:
  [Cache] Fixed broken test
2020-10-25 09:36:38 +01:00
Fabien Potencier
e80549bf1a Merge branch '4.4' into 5.1
* 4.4:
  [Cache] Fixed broken test
2020-10-25 09:36:24 +01:00
Fabien Potencier
fc615e9845 feature #38664 [RateLimiter] Moved classes implementing LimiterInterface to a new namespace (Nyholm)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[RateLimiter] Moved classes implementing LimiterInterface to a new namespace

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no?
| Tickets       |
| License       | MIT
| Doc PR        |

Before we release the RateLimit component.
I think it would be a good idea to put the 7 classes that belongs to a specific strategy in their own "Policy" namespace. It is very likely that it will be more strategies in the future and the `Symfony\Component\RateLimiter` namespace is crowed as it is.

I decided not to put the `CompoundLimiter` in this namespace as it is not a strategy.

Commits
-------

1e6cea56e4 [RateLimiter] Moved classes implementing LimiterInterface to a new namespace
2020-10-25 09:35:39 +01:00
Nyholm
1e6cea56e4 [RateLimiter] Moved classes implementing LimiterInterface to a new namespace 2020-10-25 09:35:33 +01:00
Nyholm
e17797c8e4
[Cache] Fixed broken test 2020-10-24 23:50:04 +02:00
Nicolas Grekas
605a5674a8 Merge branch '5.1' into 5.x
* 5.1:
  fix merge
  fix merge
  Remove branch-version (keep them for contracts only)
  [HttpClient] relax auth bearer format requirements
  [PHPUnitBridge] Silence errors from mkdir()
  [DependencyInjection] Preload classes with union types correctly.
  [Serializer] fix decoding float XML attributes starting with 0
  add missing dutch translations
  [TwigBridge] Remove "transchoice" from the code base
  Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait
  Add expectDeprecation, expectNotice, expectWarning, and expectError to TestCase polyfill
  [String] fix before/after[Last]() returning the empty string instead of the original one on non-match
  Add missing exporter function for PHPUnit 7
  [Validator] Add missing romanian translations
  [String] fix slicing in UnicodeString
  [Cache] Use correct expiry in ChainAdapter
  do not translate null placeholders or titles
2020-10-24 14:08:07 +02:00
Nicolas Grekas
60e969e01e fix merge 2020-10-24 14:03:25 +02:00
Nicolas Grekas
65f2620bc4 Merge branch '4.4' into 5.1
* 4.4:
  fix merge
  Remove branch-version (keep them for contracts only)
  [HttpClient] relax auth bearer format requirements
  [PHPUnitBridge] Silence errors from mkdir()
  [DependencyInjection] Preload classes with union types correctly.
  [Serializer] fix decoding float XML attributes starting with 0
  add missing dutch translations
  Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait
  Add expectDeprecation, expectNotice, expectWarning, and expectError to TestCase polyfill
  Add missing exporter function for PHPUnit 7
  [Validator] Add missing romanian translations
  [Cache] Use correct expiry in ChainAdapter
  do not translate null placeholders or titles
2020-10-24 14:01:57 +02:00
Nicolas Grekas
77aa17401d Merge branch '3.4' into 4.4
* 3.4:
  Remove branch-version (keep them for contracts only)
  [Serializer] fix decoding float XML attributes starting with 0
  add missing dutch translations
  [Validator] Add missing romanian translations
  do not translate null placeholders or titles
2020-10-24 13:50:19 +02:00
Nicolas Grekas
f8fe4bf9f5 Remove branch-version (keep them for contracts only) 2020-10-24 12:57:07 +02:00
Nicolas Grekas
4abbb1d6a9 bug #38647 [HttpClient] relax auth bearer format requirements (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] relax auth bearer format requirements

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38609
| License       | MIT
| Doc PR        |

Commits
-------

ac20594267 [HttpClient] relax auth bearer format requirements
2020-10-24 11:44:37 +02:00
Christian Flothmann
ac20594267 [HttpClient] relax auth bearer format requirements 2020-10-24 11:44:22 +02:00
Nicolas Grekas
f517cf1174 minor #38703 [HttpClient] Adding missing dependency for dev (Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] Adding missing dependency for dev

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

This will make sure Travis is happy again.

Commits
-------

552e704d6c [HttpClient] Adding missing dependency for dev
2020-10-24 11:30:32 +02:00
Nyholm
552e704d6c
[HttpClient] Adding missing dependency for dev 2020-10-24 10:12:34 +02:00
Robin Chalas
1c81aa72a6 bug #38675 [RateLimiter] Rename RateLimiter to RateLimiterFactory (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Rename RateLimiter to RateLimiterFactory

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | No, not released yet
| Tickets       |
| License       | MIT
| Doc PR        | should be added

Sorry for making a few BC breaks.

@wouterj [said](https://github.com/symfony/symfony/pull/38562#issue-503193238) that this class was suggested to be named `LimiterFactory` before. But that was rejected.

Just my looking at the names of the classes we currently have:
- Rate
- RateLimit
- RateLimiter

I find it hard to know what these are doing and the difference between them. Note that none of them are used as a rate limiter (ie implements `LimiterInterface`)

I would like to be clear that a `RateLimiterFactory` is used to create an object implementing `LimiterInterface`.

Commits
-------

8be261b300 [RateLimiter] Rename RateLimiter to RateLimiterFactory
2020-10-24 10:11:08 +02:00
Nyholm
8be261b300 [RateLimiter] Rename RateLimiter to RateLimiterFactory 2020-10-24 10:10:52 +02:00
Alexander M. Turek
a7b0f16a56 [DependencyInjection] Preload classes with union types correctly. 2020-10-23 19:57:28 +02:00
Jan Schädlich
c6b32cdbd2 add missing upgrade entries and fixed changelog 2020-10-23 15:33:06 +02:00
Jérémy Derussé
e6f6b4cb4c
Add Stopwatch on TraceableClient 2020-10-23 12:06:36 +02:00
Fabien Potencier
85e8de6137 bug #38669 [Serializer] fix decoding float XML attributes starting with 0 (Marcin Kruk)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Serializer] fix decoding float XML attributes starting with 0

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38666
| License       | MIT
| Doc PR        | n/a

This is a naive approach to fix #38666, assuming it is something worth fixing.

I checked different cases and it seems to be fixing all of them, but I bet there will be some other edge cases which still won't be covered properly.

Commits
-------

97b4306c30 [Serializer] fix decoding float XML attributes starting with 0
2020-10-23 06:26:46 +02:00
Marcin Kruk
97b4306c30 [Serializer] fix decoding float XML attributes starting with 0 2020-10-23 06:26:38 +02:00
Jos Elstgeest
02a8ca39f4 add missing dutch translations 2020-10-22 22:50:11 +02:00
Nyholm
76c22fab02
bug #38661 [RateLimiter] Fix delete method of the cache storage (GregOriol, Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[RateLimiter] Fix delete method of the cache storage

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | None
| License       | MIT

This PR fixes a small issue with RateLimiter's cache storage and the delete method: all getItems are called with a sha1 of the id, but not the one for delete, which makes it miss the deletion.

Commits
-------

b61d9d1ea3 minor
88c1e2439e Added a test
fb540bba73 Fix delete method on RateLimiter's cache storage
2020-10-22 19:09:06 +02:00
Nyholm
310926fa88
bug #38678 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match (nicolas-grekas)
This PR was merged into the 5.1 branch.

Discussion
----------

[String] fix before/after[Last]() returning the empty string instead of the original one on non-match

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

The current behavior is the least useful one. Returning the original string when no match is found is the most sensible behavior. It saves code instead of requiring more.

Typical example is when removing a potential suffix:
`$bar = $foo->beforeLast(['.svg', '.png']);` should remove any of these extensions if found, and return the original string otherwise.

Commits
-------

22a2740888 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match
2020-10-22 19:01:40 +02:00
Nyholm
6f0a8971fd
bug #38682 [HttpClient] never trace content of event-stream responses (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] never trace content of event-stream responses

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Let's leverage #38587 in `EventSourceHttpClient`

Commits
-------

e4c0262dc1 [HttpClient] never trace content of event-stream responses
2020-10-22 18:54:44 +02:00
Nicolas Grekas
e4c0262dc1 [HttpClient] never trace content of event-stream responses 2020-10-22 15:42:02 +02:00
Nicolas Grekas
22a2740888 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match 2020-10-22 14:08:44 +02:00
Nyholm
b61d9d1ea3
minor 2020-10-22 12:14:59 +02:00
Nyholm
88c1e2439e
Added a test 2020-10-22 12:12:23 +02:00
Nyholm
067153f452
Make sure we actually can use sliding_window and no_limit 2020-10-22 11:54:30 +02:00
Greg ORIOL
fb540bba73
Fix delete method on RateLimiter's cache storage 2020-10-22 11:48:25 +02:00
Robin Chalas
753932527e bug #38670 [RateLimiter] Be more type safe when fetching from cache (Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[RateLimiter] Be more type safe when fetching from cache

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

This is a super minor thing. A `$cacheItem` can be a hit, but it does not contain a `LimiterStateInterface`.

Also, PSR-6 specifies that if the `$cacheItem` is not a hit, it must return null.

Commits
-------

4795756cc7 [RateLimiter] Be more type safe when fetching form cache
2020-10-22 10:40:20 +02:00
Robin Chalas
58f4e9dfc8 bug #38665 [RateLimiter] Allow configuration value "no_limit" (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Allow configuration value "no_limit"

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | maybe?
| New feature?  | not sure
| Deprecations? |
| Tickets       |
| License       | MIT
| Doc PR        |

I dont see any reason why we should allow people to configure "no_limit". I assume this was just forgotten.

Commits
-------

2b9058d6b6 [RateLimiter] Allow configuration value "no_limit"
2020-10-22 10:35:38 +02:00
Nyholm
2b9058d6b6 [RateLimiter] Allow configuration value "no_limit" 2020-10-22 10:35:15 +02:00
Robin Chalas
6bb46dedca minor #38668 [RateLimiter] Remove Window::sleep() (Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[RateLimiter] Remove Window::sleep()

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? |
| Tickets       |
| License       | MIT
| Doc PR        |

This function is not needed since #38562

Commits
-------

ccbf7d5a06 [RateLimiter] Remove Window::sleep()
2020-10-22 10:31:04 +02:00
Nyholm
5dfafd334e [RateLimiter] Adding annotations 2020-10-22 10:25:47 +02:00
Marcin Michalski
ced43e1ec2 [Validator] Add missing romanian translations 2020-10-22 08:30:04 +02:00
Nyholm
4795756cc7
[RateLimiter] Be more type safe when fetching form cache 2020-10-21 23:51:48 +02:00
Nyholm
ccbf7d5a06
[RateLimiter] Remove Window::sleep() 2020-10-21 23:43:19 +02:00
Nicolas Grekas
d31ac74c03 [String] fix slicing in UnicodeString 2020-10-21 15:57:40 +02:00
Fabien Potencier
508ec9c33a bug #38633 [HttpClient] Fix decorating progress info in AsyncResponse (jderusse)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[HttpClient] Fix decorating progress info in AsyncResponse

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38631
| License       | MIT
| Doc PR        | /

This PR reverts #38413, and send AsyncContext to onProgress callback.

Commits
-------

e325f51fe2 [HttpClient] Fix decorating progress info in AsyncResponse
2020-10-21 15:24:34 +02:00
Jérémy Derussé
e325f51fe2 [HttpClient] Fix decorating progress info in AsyncResponse 2020-10-21 15:24:25 +02:00
Fabien Potencier
b8012094d5 feature #38543 [HttpKernel] add kernel.runtime_environment = %env(default:kernel.environment:APP_RUNTIME_ENV)% parameter (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpKernel] add `kernel.runtime_environment` = `%env(default:kernel.environment:APP_RUNTIME_ENV)%` parameter

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Instead of #37584

This PR adds a new `kernel.runtime_environment` parameter, which creates a convention to use the `APP_RUNTIME_ENV` env var to define the name of the runtime environment where the app is deployed.

When this env var is not set, the parameter defaults to `kernel.environment`.

This is especially useful for defining the location of the vault for secrets: an app can be deployed in "prod" mode, but still not be deployed on the real prod deployment target. When this happens, one might not use real prod secrets but instead, use a vault with creds for staging.

This parameter enables this use case.

Commits
-------

6eb9d62bdd [HttpKernel] add `kernel.runtime_environment` = `%env(default:kernel.environment:APP_RUNTIME_ENV)%` parameter
2020-10-21 15:20:19 +02:00
Nicolas Grekas
6eb9d62bdd [HttpKernel] add kernel.runtime_environment = %env(default:kernel.environment:APP_RUNTIME_ENV)% parameter 2020-10-21 15:15:15 +02:00
Nicolas Grekas
5a4be6841d bug #38635 [Cache] Use correct expiry in ChainAdapter (Nyholm)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Cache] Use correct expiry in ChainAdapter

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38632
| License       | MIT
| Doc PR        | n/a

When we are syncing the chain, Let's use expiry if we have it. If not, fallback to defaultLifetime.

TODO:
- [x] Add tests

Commits
-------

17e0167798 [Cache] Use correct expiry in ChainAdapter
2020-10-21 11:34:34 +02:00
Nyholm
17e0167798 [Cache] Use correct expiry in ChainAdapter 2020-10-21 11:34:26 +02:00
Fabien Potencier
7b62f099c2 Merge branch '5.1' into 5.x
* 5.1:
  [Filesystem] Check if failed unlink was caused by permission denied
  fix APCu installation for the nightly build job
  skip Vulcain-based tests if the binary cannot be executed
2020-10-21 06:47:22 +02:00
Fabien Potencier
baf8c2355f Merge branch '4.4' into 5.1
* 4.4:
  [Filesystem] Check if failed unlink was caused by permission denied
  fix APCu installation for the nightly build job
  skip Vulcain-based tests if the binary cannot be executed
2020-10-21 06:47:05 +02:00
Fabien Potencier
19637c5de3 Merge branch '3.4' into 4.4
* 3.4:
  [Filesystem] Check if failed unlink was caused by permission denied
2020-10-21 06:38:54 +02:00
Nyholm
1cde6ca03f [Filesystem] Check if failed unlink was caused by permission denied 2020-10-21 06:37:26 +02:00
Nyholm
e731e37109
minor #38649 [HttpClient] skip Vulcain-based tests if the binary cannot be executed (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] skip Vulcain-based tests if the binary cannot be executed

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

fa265c2ee4 skip Vulcain-based tests if the binary cannot be executed
2020-10-21 00:16:26 +02:00
Alexander M. Turek
e6417384d2 Merge branch '5.1' into 5.x 2020-10-20 22:28:53 +02:00
Alexander M. Turek
1c6380f333 Merge branch '4.4' into 5.1 2020-10-20 22:28:16 +02:00
Fabien Potencier
aafad690de bug #38645 [PropertyAccess] forward the caught exception (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[PropertyAccess] forward the caught exception

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38621
| License       | MIT
| Doc PR        |

Commits
-------

143f82ef8e forward the caught exception
2020-10-20 19:18:02 +02:00
Christian Flothmann
fa265c2ee4 skip Vulcain-based tests if the binary cannot be executed 2020-10-20 15:38:40 +02:00
Alexander Schranz
3f320c8d51 Refractor AbstractBrowserTest to assertSame 2020-10-20 14:41:53 +02:00
Christian Flothmann
143f82ef8e forward the caught exception 2020-10-20 14:40:03 +02:00
Nicolas Grekas
c8c227f43f Merge branch '3.4' into 4.4
* 3.4:
  [Form] Sync translations
  Added dutch translations for new invalid messages
  Don't skip Doctrine tests on php 8.
  Bump APCu to 5.1.19 on Travis.
  [WebProfilerBundle] Hide debug toolbar in print view
  indexBy does not refer to attributes, but to column names
  Fix Reflection file name with eval()\'d code
  [HttpFoundation] Fix Range Requests
2020-10-20 13:58:22 +02:00
Fabien Potencier
6987862d97 Merge branch '5.1' into 5.x
* 5.1:
  Don't skip Doctrine tests on php 8.
  Stop using set-env in GitHub actions.
  Allow setting AMQP option "login"
  Bump igbinary to v3.1.6
  Add myself to CODEOWNERS for Form, OptionsResolver and TwigBundle
  Reference the correct interface in the RegistryInterface deprecation in upgrade notes
  Add myself to CODEOWNERS for Security and Console
  Add wouterj as codeowner for Security related packages
2020-10-20 08:22:43 +02:00
Fabien Potencier
5578239608 Merge branch '4.4' into 5.1
* 4.4:
  Don't skip Doctrine tests on php 8.
  Stop using set-env in GitHub actions.
  Bump igbinary to v3.1.6
  Add myself to CODEOWNERS for Form, OptionsResolver and TwigBundle
  Reference the correct interface in the RegistryInterface deprecation in upgrade notes
  Add myself to CODEOWNERS for Security and Console
  Add wouterj as codeowner for Security related packages
2020-10-20 08:22:32 +02:00
Fabien Potencier
185e9ea67e feature #38426 [HttpClient] Parameterize list of retryable methods (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] Parameterize list of retryable methods

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | TODO

Retrying non-idempotent methods is not always acceptable for user. This PR adds an easy way to configure this behavior.

The `RetryDeciderInterface::shouldRetry()` now take the exception in parameter, in order to let decider not retrying the request when the methods should never by retried.

With #38420, this code would belongs to the RetryStrategy implementation, and would return an `NeverRetryDecider` when method is not allowed.

Commits
-------

56809d1b91 Parameterize list of retryed Http methods
2020-10-20 08:18:14 +02:00
Fabien Potencier
95560025b6 feature #38608 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit() (kbond)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit()

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38489
| License       | MIT
| Doc PR        | todo

After discussing #38489 with @wouterj, he agreed we should add `Limit::getLimit()` but this method name was unfortunate. We decided to rename the `Limit` object to `RateLimit` which, IMO, is a better name for the object and is inline with how this concept is described in the [RateLimit Header Fields for HTTP RFC](https://tools.ietf.org/id/draft-polli-ratelimit-headers-00.html).

Commits
-------

c5361cfc58 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit()
2020-10-20 08:15:23 +02:00
Kevin Bond
c5361cfc58 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit() 2020-10-20 08:15:14 +02:00
Fabien Potencier
280a27fc16 [Form] Sync translations 2020-10-20 08:12:23 +02:00
Wouter de Jong
697fe21f24 Added dutch translations for new invalid messages 2020-10-20 08:10:02 +02:00
Fabien Potencier
2b1190f46c bug #38617 [Form] Add missing invalid_message translations (wouterj)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[Form] Add missing invalid_message translations

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Some invalid messages were missed in #30931 (probably because of the old age of that PR). This PR adds all missing translation keys and a missing invalid message for the new WeekType.

I've also added the dutch translations (might be up for improvement, but it's a start). We should probably initiate another community initiative to translate these new messages (only a couple languages include the new invalid messages yet).

Commits
-------

86c78b6302 Added dutch translations for new invalid messages
301f0aa0db Added missing invalid messages
2020-10-20 08:09:22 +02:00
Alexander M. Turek
c65c6ea75d Don't skip Doctrine tests on php 8. 2020-10-20 00:20:26 +02:00
Alexander M. Turek
f4a99b2361 Don't skip Doctrine tests on php 8. 2020-10-19 23:16:40 +02:00
Jérémy Derussé
56809d1b91
Parameterize list of retryed Http methods 2020-10-19 17:04:49 +02:00
Wouter de Jong
86c78b6302 Added dutch translations for new invalid messages 2020-10-19 15:06:38 +02:00
Wouter de Jong
301f0aa0db Added missing invalid messages 2020-10-19 15:06:38 +02:00
Nicolas Grekas
bbb220c8e3 bug #38612 [Messenger/Amqp] Allow setting option "login" in DSN (W0rma)
This PR was merged into the 5.1 branch.

Discussion
----------

[Messenger/Amqp] Allow setting option "login" in DSN

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #37618
| License       | MIT
| Doc PR        |

Commits
-------

43c05774ac Allow setting AMQP option "login"
2020-10-19 12:04:45 +02:00
Fabien Potencier
1d445cce63 Merge branch '5.1' into 5.x
* 5.1:
  [Messenger][Doctrine] Avoid early db access for pgsql detection
  Add missing use statement
2020-10-19 08:28:41 +02:00
Kevin Bond
a246894a00
fix RequestRateLimiterInterface::reset() 2020-10-18 18:14:51 -04:00
Dieter
43c05774ac Allow setting AMQP option "login" 2020-10-18 13:03:00 +02:00
Robin Chalas
c4cc4a338b [Messenger][Doctrine] Avoid early db access for pgsql detection 2020-10-18 02:19:48 +02:00
Robin Chalas
36e41b85d8 [Console] Fix Application::getSignalRegistry() retval 2020-10-16 14:43:44 +02:00
Fabien Potencier
abbb3d0546 feature #38562 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter (wouterj)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

While Javier wrote documentation for this new component, we found a couple of confusing elements that might need some tweaks:

* The `Limiter` class (previously called `LimiterFactory`) has imho a bit strange name, as it's not a limiter and it doesn't implement `LimiterInterface`. It can only new limiters. I believe `LimiterFactory` - like `LockFactory` - would be the most clear, but as that was rejected before, here is another proposal using `RateLimiter`.
* `reserve()` was now only part of the token bucket implementation. That made it a bit less useful. I think I've found a way to also allow reserving future hits in the fixed window implementation, so I've moved it to the `LimiterInterface`.

Commits
-------

cd34f21254 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter
2020-10-16 07:10:35 +02:00
Wouter de Jong
cd34f21254 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter 2020-10-16 07:10:27 +02:00
Fabien Potencier
6e4d6eb2dd feature #38593 [Lock][Semaphore] Add Factory::createFromKey and deprecate lock.store services (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[Lock][Semaphore] Add Factory::createFromKey and deprecate lock.store services

I| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | /
| License       | MIT
| Doc PR        | todo

The `lock` service and aliases have been deprecated in #38576. This PR also deprecate the `lock.store` service and aliases.

People should always inject the factory into their services, except for one scenario: When they want building the `Lock` manually because they want to keep the key.

This scenario require declaring `lock.store` service and `PersisingStoreInterface` aliases.
This could be avoided if people had a method to create a lock from a given key.

This PR adds a `LockFactory::createFromKey()` method and deprecate all `lock.store` services

I also updated the Semaphore component for consistency, and helping people to only inject the SemahoreFactory.

nb: use cases for serializing the keys:
- Netflix allows only 5 users of the same family at the same time.
- An holiday apartment rental avoid users putting the same apartment in the basket
- ...

Commits
-------

91fa3e311d Deprecate lock.store aliases
2020-10-16 07:05:54 +02:00
Fabien Potencier
72be3057ca feature #38587 [HttpClient] added extra.trace_content option to TraceableHttpClient to prevent it from keeping the content in memory (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] added `extra.trace_content` option to `TraceableHttpClient` to prevent it from keeping the content in memory

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

`TraceableHttpClient` leaks memory by definition. But sometimes, this leak is to important, especially when keeping the response content in memory.

This PR adds a new `trace_content` option under `extra` so that consumers can tell the client to not trace the content. This will be ignored when `TraceableHttpClient` is not in use.

Commits
-------

61290d5aa4 [HttpClient] added `extra.trace_content` option to `TraceableHttpClient` to prevent it from keeping the content in memory
2020-10-16 06:59:05 +02:00
Fabien Potencier
dda1fe9c3a bug #38589 [Console] Don't register signal handlers if pcntl is disabled (chalasr)
This PR was merged into the 5.x branch.

Discussion
----------

[Console] Don't register signal handlers if pcntl is disabled

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38496
| License       | MIT
| Doc PR        | todo

This PR skips the default signal registration when pcntl is not installed or disabled via the `disable_functions` INI directive (which is common for prod infrastructures).
When registering a `SignalableCommand`, a clear exception is thrown.

Best reviewed [without whitespaces](https://github.com/symfony/symfony/pull/38589/files?w=1)

Commits
-------

8fe876341e [Console] Don't register signal handlers if pcntl is disabled
2020-10-16 06:52:38 +02:00
Robin Chalas
8fe876341e [Console] Don't register signal handlers if pcntl is disabled 2020-10-16 01:46:35 +02:00
Jérémy Derussé
91fa3e311d
Deprecate lock.store aliases 2020-10-15 22:19:33 +02:00
Nyholm
1e8916904e
bug #38581 [Semaphore] Reset Key lifetime time before we acquire it (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[Semaphore] Reset Key lifetime time before we acquire it

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

This is the same issue fixed by #38553 but for Semaphore component.

Commits
-------

e7ffd5d2e7 Reset Key lifetime time in semaphore
2020-10-15 19:46:28 +02:00
Jérémy Derussé
e7ffd5d2e7
Reset Key lifetime time in semaphore 2020-10-15 19:25:55 +02:00
Nicolas Grekas
61290d5aa4 [HttpClient] added extra.trace_content option to TraceableHttpClient to prevent it from keeping the content in memory 2020-10-15 14:02:47 +02:00
Maxime Aknin
394a694856 Fix Reflection file name with eval()\'d code
remove eval()\'d code from lineage
2020-10-15 10:31:43 +02:00
Oskar Stark
db392d2441
Fix: Typo 2020-10-15 10:06:30 +02:00
Fabien Potencier
19a320513a feature #38565 [RateLimiter] Adding SlidingWindow algorithm (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Adding SlidingWindow algorithm

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? |
| Tickets       |
| License       | MIT
| Doc PR        | Should be added

This is a draft PR to make sure we like the idea. I'll keep working on adding tests.

Commits
-------

c6d3b70315 [RateLimiter] Adding SlidingWindow algorithm
2020-10-15 08:59:52 +02:00
Nyholm
c6d3b70315 [RateLimiter] Adding SlidingWindow algorithm 2020-10-15 08:59:46 +02:00
Fabien Potencier
8c4ecc313b Bump Symfony version to 5.2.0 2020-10-14 21:27:47 +02:00
Fabien Potencier
0641541f34 Update VERSION for 5.2.0-BETA2 2020-10-14 21:22:19 +02:00
Wouter de Jong
04ef565895 [Security][Notifier] Added integration of Login Link with the Notifier component 2020-10-14 20:49:27 +02:00
Fabien Potencier
89dddd1770 bug #38516 [HttpFoundation] Fix Range Requests (BattleRattle)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Fix Range Requests

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #38295
| License       | MIT
| Doc PR        |

This PR fixes some deviations from [RFC 7233](https://tools.ietf.org/html/rfc7233) for handling range requests, mentioned in #38295.

- overlapping ranges are now satisfiable (e.g. when requested range end is larger than the file size)
- range units other than `bytes` will get ignored
- range requests for methods other than `GET` will be ignored

I did not manage yet to implement the support for multiple ranges, but also don't know, if that's needed here.

Commits
-------

681804ba1a [HttpFoundation] Fix Range Requests
2020-10-14 19:31:51 +02:00
Nicolas Grekas
ffbb9883bd Merge branch '5.1' into 5.x
* 5.1:
  [Contracts] add branch-aliases for dev-main
  [Cache] Make Redis initializers static
  [Messenger] Fixed typos in Connection
  [CI] Fixed build on AppVeyor
  Fix tests typo
  [Lock] Reset Key lifetime time before we acquire it
  [CI] Silence errors when remove file/dir on test tearDown()
  Fix tests
  Remove content-type check on toArray methods
2020-10-14 19:08:19 +02:00
Nicolas Grekas
3e587d7013 Merge branch '4.4' into 5.1
* 4.4:
  [Contracts] add branch-aliases for dev-main
  [Cache] Make Redis initializers static
  Fix tests typo
  [Lock] Reset Key lifetime time before we acquire it
  [CI] Silence errors when remove file/dir on test tearDown()
2020-10-14 18:43:39 +02:00
Norman Soetbeer
681804ba1a [HttpFoundation] Fix Range Requests 2020-10-14 18:38:26 +02:00
Nicolas Grekas
8553361a10 bug #38566 Fix minor issue when sharing windows between Limiters (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

Fix minor issue when sharing windows between Limiters

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

If I start using my custom Limiter, then change back to `FixedWindowLimiter`, then my cache might contain a value that `FixedWindowLimiter` does not support.

This PR makes sure that we handle such switch.

Commits
-------

e9ac9712d8 Fix minor issue when sharing windows between Limiters
2020-10-14 18:23:07 +02:00
Nyholm
e9ac9712d8 Fix minor issue when sharing windows between Limiters 2020-10-14 18:22:58 +02:00
Nyholm
1d7c8013e6 [Messenger][Redis] Adding support for lazy connect 2020-10-14 16:11:38 +02:00
Nyholm
ad8de57b91
[Cache] Make Redis initializers static 2020-10-14 13:43:26 +02:00
Fabien Potencier
674382b7ea bug #38553 [Lock] Reset Key lifetime time before we acquire it (Nyholm)
This PR was merged into the 4.4 branch.

Discussion
----------

[Lock] Reset Key lifetime time before we acquire it

| Q             | A
| ------------- | ---
| Branch?       | 5.1 (maybe lower, I'll check)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38541
| License       | MIT
| Doc PR        | n/a

Im out on somewhat deep water now. I am pretty sure we should reset the Key lifetime every time we acquire it. Without it it will me tricky to re-use a lock. (As pointed out by #38541)

@jderusse can you confirm.

Commits
-------

55ad70225a [Lock] Reset Key lifetime time before we acquire it
2020-10-14 11:40:34 +02:00
Nyholm
5dec141afb [Messenger] Fixed typos in Connection 2020-10-14 11:38:11 +02:00
Fabien Potencier
d235724d6d minor #38561 Fix tests typo (ScullWM)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix tests typo

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

While working on PSR 16 cache tests, I found this small glitch in the mocked `isHit` method

Commits
-------

047ce05f6b Fix tests typo
2020-10-14 11:36:53 +02:00
Nyholm
0c08432a3d [CI] Fixed build on AppVeyor 2020-10-14 11:34:34 +02:00
Fabien Potencier
9982713327 Merge branch '3.4' into 4.4
* 3.4:
  [CI] Silence errors when remove file/dir on test tearDown()
2020-10-14 11:30:35 +02:00
Fabien Potencier
e9d23677a7 Merge branch '4.4' into 5.1
* 4.4:
  Fix tests
  Remove content-type check on toArray methods
2020-10-14 09:58:47 +02:00
Thomas P
047ce05f6b Fix tests typo 2020-10-14 09:37:02 +02:00
Nyholm
55ad70225a
[Lock] Reset Key lifetime time before we acquire it 2020-10-14 09:15:31 +02:00
Nyholm
efef41faa1
[CI] Silence errors when remove file/dir on test tearDown() 2020-10-14 09:00:24 +02:00
Nyholm
de412bf24b
Reset lifetime on acquireRead() 2020-10-14 08:54:02 +02:00
Jérémy Derussé
91122492e8
Fix tests 2020-10-13 22:48:16 +02:00
Wouter de Jong
5093e0df06 [Security] Added check_post_only to the login link authenticator 2020-10-13 19:07:29 +02:00
Jérémy Derussé
1c8fff18f9
Remove content-type check on toArray methods 2020-10-13 17:34:30 +02:00
Nicolas Grekas
01b064d97a Merge branch '5.1' into 5.x
* 5.1:
  Fix branch-version
2020-10-13 15:22:54 +02:00
Nicolas Grekas
1a0ea4d2f7 Merge branch '4.4' into 5.1
* 4.4:
  Fix branch-version
2020-10-13 15:21:37 +02:00
Nicolas Grekas
58f803f356 Merge branch '3.4' into 4.4
* 3.4:
  Fix branch-version
2020-10-13 15:20:53 +02:00
Nicolas Grekas
44a7e3e920 Fix branch-version 2020-10-13 15:20:16 +02:00
Nicolas Grekas
59db41386f Merge branch '4.4' into 5.1
* 4.4:
  Fix merge
2020-10-13 14:46:35 +02:00
Nicolas Grekas
7f0015ee35 Merge branch '5.1' into 5.x
* 5.1:
  Remove "version" from composer.json files, use "branch-version" instead
  [String] fix "is too large" ValueError on PHP 8
2020-10-13 14:43:06 +02:00
Nicolas Grekas
e95f87d1c8 bug #38546 [String] fix "is too large" ValueError on PHP 8 (nicolas-grekas)
This PR was merged into the 5.1 branch.

Discussion
----------

[String] fix "is too large" ValueError on PHP 8

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

15c22c69e4 [String] fix "is too large" ValueError on PHP 8
2020-10-13 14:36:28 +02:00
Nicolas Grekas
23ab908213 Merge branch '4.4' into 5.1
* 4.4:
  Remove "version" from composer.json files, use "branch-version" instead
2020-10-13 14:35:38 +02:00
Nicolas Grekas
e953dd3e0d Merge branch '3.4' into 4.4
* 3.4:
  Remove "version" from composer.json files, use "branch-version" instead
2020-10-13 14:30:56 +02:00
Nicolas Grekas
56a7571bab minor #38460 Remove "version" from composer.json files, use "branch-version" instead (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Remove "version" from composer.json files, use "branch-version" instead

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Waiting for confirmation from @Seldaek or @naderman

Commits
-------

f9ed6940fd Remove "version" from composer.json files, use "branch-version" instead
2020-10-13 14:24:32 +02:00
Nicolas Grekas
f9ed6940fd Remove "version" from composer.json files, use "branch-version" instead 2020-10-13 14:21:16 +02:00
Nicolas Grekas
15c22c69e4 [String] fix "is too large" ValueError on PHP 8 2020-10-13 14:06:13 +02:00
Nicolas Grekas
5baa123aac Merge branch '5.1' into 5.x
* 5.1:
  [DI] fix dumping env vars
  [HttpClient] skip executing the multi handle when it's freed already
  [HttpClient] fix using freed curl resource at destruct time
  [HttpClient] shutdown verbose output from curl at destruction
  fix warning for preloading TranslatorTrait class
  [Typography] Remove unneeded description comments
2020-10-13 13:14:51 +02:00
Nicolas Grekas
63288a6e2e Merge branch '4.4' into 5.1
* 4.4:
  [DI] fix dumping env vars
  [HttpClient] skip executing the multi handle when it's freed already
  [HttpClient] fix using freed curl resource at destruct time
  [HttpClient] shutdown verbose output from curl at destruction
  fix warning for preloading TranslatorTrait class
  [Typography] Remove unneeded description comments
2020-10-13 13:14:18 +02:00
Nicolas Grekas
d79912d3d2 Merge branch '3.4' into 4.4
* 3.4:
  [Typography] Remove unneeded description comments
2020-10-13 13:09:48 +02:00
Nicolas Grekas
746a8d1a09 [DI] fix dumping env vars 2020-10-13 11:53:00 +02:00
Nicolas Grekas
f52f090230 feature #38532 [HttpClient] simplify retry mechanism around RetryStrategyInterface (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] simplify retry mechanism around RetryStrategyInterface

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Replaces #38466

I feel like the mechanism behind RetryableHttpClient is too bloated for no pragmatic reasons.

I propose to merge RetryDeciderInterface and RetryBackoffInterface into one single RetryStrategyInterface.

Having two separate interfaces supports no real-world use case. The only implementations we provide are trivial, and they can be reused by extending the provided GenericRetryStrategy implementation if one really doesn't want to duplicate that.

The methods are also simplified by accepting an AsyncContext as argument. This makes the signatures shorter and allows accessing the "info" of the request (allowing to decide based on the IP of the host, etc).

/cc @jderusse

Commits
-------

544c3e8678 [HttpClient] simplify retry mechanism around RetryStrategyInterface
2020-10-13 10:09:30 +02:00
Nicolas Grekas
a580688ee5 [HttpClient] skip executing the multi handle when it's freed already 2020-10-13 10:06:18 +02:00
Nicolas Grekas
4f8384829c [HttpClient] fix using freed curl resource at destruct time 2020-10-13 09:54:33 +02:00
Nicolas Grekas
a279d22d25 [HttpClient] shutdown verbose output from curl at destruction 2020-10-13 09:44:15 +02:00
Nicolas Grekas
544c3e8678 [HttpClient] simplify retry mechanism around RetryStrategyInterface 2020-10-13 09:28:31 +02:00
Nicolas Grekas
9c3a9282f1 Fix CS 2020-10-12 21:59:40 +02:00
Fabien Potencier
ef1253b7c4 Fix tests 2020-10-12 20:55:37 +02:00
Fabien Potencier
a319090109 feature #38525 [Serializer] Enabled mapping configuration via attributes (derrabus)
This PR was merged into the 5.x branch.

Discussion
----------

[Serializer] Enabled mapping configuration via attributes

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | TODO

Let's use attributes for the serializer mapping configuration!

```php
class MyEntity
{
    #[Groups(['list', 'detail])]
    #[SerializedName('some-property')]
    public $someProperty;

    #[Ignore]
    public string $secret;
}
```

Commits
-------

cfb9986203 [Serializer] Enabled mapping configuration via attributes.
2020-10-12 20:19:00 +02:00
Fabien Potencier
1d9c7a9376 Fix composer.json 2020-10-12 20:08:13 +02:00
Karoly Gossler
b9b20d782b Added Discord bridge notifier embeds and test 2020-10-12 20:07:15 +02:00
Mathieu Piot
14790d8140 Add Discord bridge notifier 2020-10-12 20:07:15 +02:00
Fabien Potencier
88b158d989 bug #38477 [Form] fix ViolationMapper was always generating a localized label for each FormType (romaricdrigon)
This PR was merged into the 5.x branch.

Discussion
----------

[Form] fix ViolationMapper was always generating a localized label for each FormType

| Q             | A
| ------------- | ---
| Branch?       | 5.x (fix new behavior from 5.2)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

Follow-up of #38435, with branch changed

**Explanation of the issue**

In Symfony 5.2, the `{{ label }}` placeholder can be used in constraint messages (-> introduced in commit 0d9f44235c)

However, the way it was coded is introducing a small side effect: now, every time there is validation error, `ViolationMapper` will ask the Form Type its `label`, and if not `false`, it will try to translate it.

**Why it is important/why it causes a BC break**

Since by default `AbstractType` does not have any `label`, it also introduces a minor BC break.
I will explain it with an example: in a project I work on, we check we don't have any missing translation. Sometimes we have violation errors bound to form ; then current code will get Form `label`, which in `null` in form type classes (which is quite usual I believe), so it will generate one, and pass that one to translator. And we see a lot on erroneous missing translations.

**Proposed fix**

This fix moves all this logic into a `if`, so `ViolationMapper` call the translator component only if `{{ label }}` placeholder is used in constraint error message.
On top of fixing BC, it has the benefit of lowering the performance cost for every violation when the feature is not used.

I added a test, as I believe the behavior should be guaranteed from now on.

Commits
-------

aee5571a71 [Form] fix ViolationMapper was always generating a localized label for each FormType
2020-10-12 20:01:17 +02:00
Fabien Potencier
19c550db7b bug #38529 [Mailer] Fix mailjet image embedding (Sandldan)
This PR was merged into the 5.x branch.

Discussion
----------

[Mailer] Fix mailjet image embedding

Filename is not enough to embed the image through cid, ContentID field
has to be set with the cid identifier used in the HTMLPart

| 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       | none <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | not needed <!-- 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.
-->

Hello!

While switching from `Mandrill` to `Mailjet` I noticed that embedding images was not working properly, the `Content-ID` mime is not set properly without setting the `ContentID` key. With this change things will work as described in the [symfony documentation](https://symfony.com/doc/current/mailer.html#embedding-images)

[Mailjet reference](https://dev.mailjet.com/email/guides/send-api-v31/#send-with-attached-files)

Commits
-------

7ab772eeea [Mailer] Fix mailjet image embedding
2020-10-12 19:58:26 +02:00
Nicolas Grekas
444626bbfc Merge branch '5.1' into 5.x
* 5.1:
  [HttpClient] fix reading the body after a ClientException
  [HttpClient] fix tests and merge
2020-10-12 18:54:56 +02:00
Nicolas Grekas
b9e76b2bd9 Merge branch '4.4' into 5.1
* 4.4:
  [HttpClient] fix reading the body after a ClientException
2020-10-12 18:39:05 +02:00
Nicolas Grekas
0159a39709 [HttpClient] fix reading the body after a ClientException 2020-10-12 18:35:20 +02:00
Nicolas Grekas
481a2917c1 [HttpClient] fix tests and merge 2020-10-12 17:25:56 +02:00
Nicolas Grekas
c31015e456 [HttpClient] fix tests and merge 2020-10-12 17:16:53 +02:00
Andre Johnson
7ab772eeea
[Mailer] Fix mailjet image embedding
Filename is not enough to embed the image through cid, ContentID field
has to be set with the cid identifier used in the HTMLPart
2020-10-12 15:57:02 +02:00
Nicolas Grekas
8a70d35a5f Merge branch '5.1' into 5.x
* 5.1:
  [Validator] remove phpunit-bridge from dev deps
2020-10-12 14:57:48 +02:00
Nicolas Grekas
d83f806e5f [Validator] remove phpunit-bridge from dev deps 2020-10-12 14:57:15 +02:00
Alexander M. Turek
cfb9986203 [Serializer] Enabled mapping configuration via attributes. 2020-10-12 14:52:41 +02:00
idetox
48e6976ac8 [Typography] Remove unneeded description comments 2020-10-12 14:32:39 +02:00
Nicolas Grekas
6844cb8685 bug #38523 [HttpClient] Fix multiple timeout with multiple retry (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] Fix multiple timeout with multiple retry

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

Fix #38518 when retryied request also failed.

Commits
-------

79a9392468 Fix multiple timeou with multiple retry
2020-10-12 14:06:18 +02:00
Nicolas Grekas
e4024e80ed Merge branch '5.1' into 5.x
* 5.1:
  Disable the PhpUnit bridge when testing it
  [PropertyInfo] Support for the mixed type.
  Don't unset the inflate resource on close as it might still be needed
  [HttpClient] Fix CurlHttpClient memory leak
  [Form] Add Bosnian (bs) validators translation
  [Form] Add missing Serbian (latn & cyrl) validators translation
  [Cache] skip igbinary < 3.1.6
  [Ldap] Bypass the use of `ldap_control_paged_result` on PHP >= 7.3
  [Form] [Validator] added pt_BR translations
  Estonian update
  Fix no collection in extract default value
  [PhpUnitBridge] fix running parallel tests with phpunit 9
  [VarDumper] fix truncating big arrays
2020-10-12 14:05:07 +02:00
Nicolas Grekas
a1616a76eb Merge branch '4.4' into 5.1
* 4.4:
  Disable the PhpUnit bridge when testing it
  [PropertyInfo] Support for the mixed type.
  Don't unset the inflate resource on close as it might still be needed
  [HttpClient] Fix CurlHttpClient memory leak
  [Form] Add Bosnian (bs) validators translation
  [Form] Add missing Serbian (latn & cyrl) validators translation
  [Cache] skip igbinary < 3.1.6
  [Ldap] Bypass the use of `ldap_control_paged_result` on PHP >= 7.3
  [Form] [Validator] added pt_BR translations
  Estonian update
  [PhpUnitBridge] fix running parallel tests with phpunit 9
  [VarDumper] fix truncating big arrays
2020-10-12 13:21:05 +02:00
Nicolas Grekas
6000e51629 Merge branch '3.4' into 4.4
* 3.4:
  Disable the PhpUnit bridge when testing it
  [PropertyInfo] Support for the mixed type.
  [Form] Add Bosnian (bs) validators translation
  [Form] Add missing Serbian (latn & cyrl) validators translation
  [Form] [Validator] added pt_BR translations
  Estonian update
  [PhpUnitBridge] fix running parallel tests with phpunit 9
  [VarDumper] fix truncating big arrays
2020-10-12 13:11:24 +02:00
Jérémy Derussé
79a9392468
Fix multiple timeou with multiple retry 2020-10-12 11:08:06 +02:00
Jérémy Derussé
8ba54c17be Fix nesteed stream in AsyncResponse 2020-10-12 09:56:41 +02:00
Nicolas Grekas
62d40d5866 bug #38518 [HttpClient] fix decorating timeout errors (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] fix decorating timeout errors

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Replaces #38501
| License       | MIT
| Doc PR        | -

/cc @jderusse

Commits
-------

84cda3f02b [HttpClient] fix decorating timeout errors
2020-10-12 09:54:11 +02:00
Nicolas Grekas
84cda3f02b [HttpClient] fix decorating timeout errors 2020-10-12 09:45:36 +02:00
Fabien Potencier
87920d266e feature #38499 [Validator] Upgraded constraints to enable named arguments and attributes (derrabus)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[Validator] Upgraded constraints to enable named arguments and attributes

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | #38096
| License       | MIT
| Doc PR        | TODO with symfony/symfony-docs#14305

This PR enables all remaining atomic (!= composite) constraints to be used as attributes.

The only exception is `UniqueEntity` from Doctrine bridge because we don't have a Doctrine ORM release yet that supports PHP 8. So I could migrate that one as well, but I cannot really test it.

Commits
-------

fb99eb2052 [Validator] Upgraded constraints to enable named arguments and attributes
2020-10-11 08:04:09 +02:00
Alexander M. Turek
fb99eb2052 [Validator] Upgraded constraints to enable named arguments and attributes 2020-10-11 08:04:04 +02:00
Alexander M. Turek
1a3b538e16 [PropertyInfo] Support for the mixed type. 2020-10-11 00:15:38 +02:00
HypeMC
8fa4f85013 Don't unset the inflate resource on close as it might still be needed 2020-10-10 18:24:13 +02:00
Wouter de Jong
0f947b2e84 Allow null and DateTime objects to be used as signatureProperties
Returning DateTime objects seems like a common use-case to automatically expire
all login links when one is used or to only allow the login link to be used
once.
2020-10-10 15:09:30 +02:00
HypeMC
aeb4ddf316 [HttpClient] Fix CurlHttpClient memory leak 2020-10-10 09:23:15 +02:00
Fabien Potencier
b95ad419f8 minor #38481 [Form] Add Bosnian (bs) validators translation (tambait)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Form] Add Bosnian (bs) validators translation

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| License       | MIT

Commits
-------

bd80b1e08d [Form] Add Bosnian (bs) validators translation
2020-10-09 08:39:07 +02:00
ivan
bd80b1e08d [Form] Add Bosnian (bs) validators translation 2020-10-09 08:39:00 +02:00
ivan
80bcd0ee20 [Form] Add missing Serbian (latn & cyrl) validators translation 2020-10-09 08:37:47 +02:00
Nyholm
c5de1eb53c [Messenger] Add DelayStamp::delayFor() and DelayStamp::delayUntil() 2020-10-08 18:18:51 +02:00
Romaric Drigon
aee5571a71 [Form] fix ViolationMapper was always generating a localized label for each FormType 2020-10-08 09:30:12 +02:00
Jan Schädlich
5701e89960 Introduce NullMessage and remove transport setter in MessageInterface 2020-10-07 22:09:56 +02:00
Nicolas Grekas
744e245371 bug #38456 [Cache] skip igbinary < 3.1.6 (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] skip igbinary < 3.1.6

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38440
| License       | MIT
| Doc PR        | -

v3.1.6 will embed https://github.com/igbinary/igbinary/pull/289

Commits
-------

065474c94f [Cache] skip igbinary < 3.1.6
2020-10-07 11:31:50 +02:00
Nicolas Grekas
065474c94f [Cache] skip igbinary < 3.1.6 2020-10-07 11:30:25 +02:00
Nicolas Grekas
45cad64255 bug #38392 [Ldap] Bypass the use of ldap_control_paged_result on PHP >= 7.3 (lucasaba)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Ldap] Bypass the use of `ldap_control_paged_result` on PHP >= 7.3

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38352
| License       | MIT
| Doc PR        |

As stated on #38352 [ldap_control_paged_result](https://www.php.net/manual/en/function.ldap-control-paged-result.php) and [ldap_control_paged_result_response](https://www.php.net/manual/en/function.ldap-control-paged-result-response.php) have been deprecated since PHP 7.4 and will be removed on PHP 8.0.

With this fix, Query uses serverctrls to handle LDAP results pagination.

Since `serverctrls` where introduced in PHP 7.3 and they are the only way to circumvent the usage of `ldap_control_paged_result`, I've added a new Query class implementation which uses `serverctrls` to control pagination.

To do so I've also had to update the LDAP Adapter in order to use the new class if PHP version 7.3 or greater are found

Commits
-------

d332b30526 [Ldap] Bypass the use of `ldap_control_paged_result` on PHP >= 7.3
2020-10-07 10:55:20 +02:00
Luca Saba
d332b30526 [Ldap] Bypass the use of ldap_control_paged_result on PHP >= 7.3 2020-10-07 10:55:12 +02:00
Jérémy Derussé
eb934e9015
Mark Key unserializable whith PgsqlStore 2020-10-07 10:29:02 +02:00
Fabien Potencier
494ef421c5 feature #38434 [HttpClient] Add jitter to RetryBackoff (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] Add jitter to RetryBackoff

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | TODO

From the idea https://twitter.com/mtdowling/status/1313205613158043648 this PR adds a new `jitter` parameter to the ExponentialBackOff implementation.

jitter is a percentage (float between 0 and 1) of randomness to apply to the computed delay.
ie. if the initial delay is 1000ms, and jitter=0.2, the finale delay will be an number between 800 and 1200 (1000 +/- 20%)

Commits
-------

ace731437e Add jitter to RetryBackof
2020-10-07 08:15:11 +02:00
Jérémy Derussé
3d114be680 [lock] Add store dedicated to postgresql 2020-10-07 08:05:14 +02:00
Nate Wiebe
0d4e25f4a6 Rename Translatable class to TranslatableMessage 2020-10-07 07:51:02 +02:00
Fabien Potencier
c4aeb6fd80 bug #38442 [VarDumper] fix truncating big arrays (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] fix truncating big arrays

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  |
| Deprecations? | no
| Tickets       | Fix #38428
| License       | MIT
| Doc PR        | -

Commits
-------

a8b986e35e [VarDumper] fix truncating big arrays
2020-10-07 07:50:22 +02:00
Fabien Potencier
9ffad84e46 minor #38450 [Form] [Validator] added pt_BR translations (cenoura)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Form] [Validator] added pt_BR translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | --
| License       | MIT
| Doc PR        | --

Added missing pt_BR translations to Form and Validator components.

Commits
-------

4bede2824c [Form] [Validator] added pt_BR translations
2020-10-07 07:46:14 +02:00
Guilherme Augusto Henschel
4bede2824c [Form] [Validator] added pt_BR translations 2020-10-07 07:46:06 +02:00
Sheitak
96499920a2 Estonian update 2020-10-07 07:43:03 +02:00
Jérémy Derussé
ace731437e
Add jitter to RetryBackof 2020-10-06 23:46:00 +02:00
Baptiste Leduc
33d37e56ba
Fix no collection in extract default value 2020-10-06 22:24:13 +02:00
Erwan
614b8d68a8 [String][AsciiSlugger] Fix typo 2020-10-06 19:37:38 +02:00
Nicolas Grekas
a8b986e35e [VarDumper] fix truncating big arrays 2020-10-06 18:42:49 +02:00
Nicolas Grekas
6066462be2 Merge branch '5.1' into 5.x
* 5.1:
  Update versions in composer.json
  [Mime] Fix serialization of RawMessage
2020-10-06 17:53:16 +02:00
Nicolas Grekas
3e492d6e5d Merge branch '4.4' into 5.1
* 4.4:
  Update versions in composer.json
  [Mime] Fix serialization of RawMessage
2020-10-06 17:50:31 +02:00
Nicolas Grekas
55396f90a3 Merge branch '3.4' into 4.4
* 3.4:
  Update versions in composer.json
2020-10-06 17:45:41 +02:00
Nicolas Grekas
8f714a2fd6 Update versions in composer.json 2020-10-06 17:25:25 +02:00
Fabien Potencier
87f328428e bug #38433 [Mime] Fix serialization of RawMessage (gilbertsoft)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Mime] Fix serialization of RawMessage

| 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 #38430, Related #33394 <!-- 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 -->

The serialization of RawMessage is currently broken if using a generator for message like done by `Symfony\Component\Mailer\SentMessage` see 5f1c3a7972/src/Symfony/Component/Mailer/SentMessage.php (L45)
This patch converts the message to a string so further serialization can be done.

This patch probably also solves #33394.

<!--
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
-------

fd99eb26d8 [Mime] Fix serialization of RawMessage
2020-10-06 16:40:04 +02:00
Gilbertsoft
fd99eb26d8 [Mime] Fix serialization of RawMessage 2020-10-06 16:40:02 +02:00
Nicolas Grekas
11c4f28137 Merge branch '5.1' into 5.x
* 5.1:
  fix merge
  [appveyor] fix checking for the .x branch
  Remove "branch-alias", populate "version"
2020-10-06 14:00:29 +02:00
Nicolas Grekas
9f2a66871c Merge branch '4.4' into 5.1
* 4.4:
  fix merge
2020-10-06 13:57:58 +02:00
Nicolas Grekas
2f7751f0df fix merge 2020-10-06 13:56:58 +02:00
Nicolas Grekas
097c8c6f27 Merge branch '4.4' into 5.1
* 4.4:
  [appveyor] fix checking for the .x branch
  Remove "branch-alias", populate "version"
2020-10-06 13:49:34 +02:00
Nicolas Grekas
e553f424d0 Merge branch '3.4' into 4.4
* 3.4:
  Remove "branch-alias", populate "version"
2020-10-06 13:41:17 +02:00
Nicolas Grekas
9d40c796c4 Remove "branch-alias", populate "version" 2020-10-06 13:22:52 +02:00
Alexander M. Turek
66fbf0a671 [SecurityGuard] Implement PostAuthenticationGuardToken::getFirewallName(). 2020-10-06 11:21:13 +02:00
Fabien Potencier
8df5aad90a Merge branch '5.1' into 5.x
* 5.1:
  Move to the new default 5.x branch
  Use PHPUnit 9.4 to run the test suite.
  Fix type annotation
2020-10-06 10:08:38 +02:00
Fabien Potencier
da99063ccd Merge branch '4.4' into 5.1
* 4.4:
  Move to the new default 5.x branch
  Use PHPUnit 9.4 to run the test suite.
  Fix type annotation
2020-10-06 10:08:25 +02:00
Fabien Potencier
b47ba231ef Merge branch '3.4' into 4.4
* 3.4:
  Move to the new default 5.x branch
  Use PHPUnit 9.4 to run the test suite.
  Fix type annotation
2020-10-06 10:07:23 +02:00
Fabien Potencier
2f925df4db feature #38410 [Validator] Migrate File and Image constraints to attributes (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Validator] Migrate File and Image constraints to attributes

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | #38096
| License       | MIT
| Doc PR        | TODO with symfony/symfony-docs#14305

I have migrated a lot of the constraints already and am preparing a big PR with them at the moment. I decided to pull this part out because it might raise some discussion.

This PR enables the `File` and `Image` constraints to be used as attributes. Especially the constructor signature of the `Image` constraint has grown pretty large this way. This by itself should be a big problem, if we don't expect the constructor to be called with ordered parameters by userland code. But it shows that the constraints have grown a bit too large. We might want to consider to split it.

Commits
-------

d8c186938e [Validator] Migrate File and Image constraints to attributes.
2020-10-06 07:32:58 +02:00
Fabien Potencier
a324b22d1a bug #38418 [HttpClient] minor fixes in RetryableHttpClient (nicolas-grekas)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpClient] minor fixes in RetryableHttpClient

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

495562836a [HttpClient] minor fixes in RetryableHttpClient
2020-10-05 19:15:39 +02:00
Nicolas Grekas
495562836a [HttpClient] minor fixes in RetryableHttpClient 2020-10-05 18:23:31 +02:00
Fabien Potencier
28129c81d7 Bump Symfony version to 5.2.0 2020-10-05 16:44:01 +02:00
Fabien Potencier
7f6a21cd6b Update VERSION for 5.2.0-BETA1 2020-10-05 16:36:53 +02:00
Lars Strojny
a2508ac3e7 [Cache] Allow ISO 8601 time intervals to specify default lifetime 2020-10-05 15:19:55 +02:00
Alexander M. Turek
d8c186938e [Validator] Migrate File and Image constraints to attributes. 2020-10-04 21:22:16 +02:00
Fabien Potencier
a60c0af953 minor #38408 Fix type annotation in ExpressionLanguage\Token (m-vo)
This PR was merged into the 3.4 branch.

Discussion
----------

Fix type annotation in ExpressionLanguage\Token

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

The expected argument `$type` should be a string - the strict comparison would always fail with the current annotated types (`array|int`).

See the constructor + constants for reference:
7db7dcc431/src/Symfony/Component/ExpressionLanguage/Token.php (L33)

7db7dcc431/src/Symfony/Component/ExpressionLanguage/Token.php (L25-L30)

Commits
-------

bfde15b728 Fix type annotation
2020-10-04 18:40:24 +02:00
Fabien Potencier
5e808b59ec Merge branch '4.4' into 5.1
* 4.4:
  Change test
2020-10-04 18:35:53 +02:00
Fabien Potencier
20969e604b Merge branch '3.4' into 4.4
* 3.4:
  Change test
2020-10-04 18:35:43 +02:00
Fabien Potencier
bfcf65f61c Change test 2020-10-04 18:34:28 +02:00
Fabien Potencier
57ad83e7e1 Merge branch '5.1'
* 5.1:
  Added Stopwatch example to the README
  Bump Symfony version to 5.1.8
  Update VERSION for 5.1.7
  Update CHANGELOG for 5.1.7
  Bump Symfony version to 4.4.16
  Update VERSION for 4.4.15
  Update CHANGELOG for 4.4.15
2020-10-04 18:29:51 +02:00
Fabien Potencier
84bec1df2d Merge branch '4.4' into 5.1
* 4.4:
  Added Stopwatch example to the README
  Bump Symfony version to 4.4.16
  Update VERSION for 4.4.15
  Update CHANGELOG for 4.4.15
2020-10-04 18:29:28 +02:00
Wouter de Jong
e2461c90d2 Added Stopwatch example to the README 2020-10-04 14:01:13 +02:00
M. Vondano
bfde15b728
Fix type annotation 2020-10-04 12:25:24 +02:00
Fabien Potencier
c91ad1239f feature #38382 [Validator] Use comparison constraints as attributes (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Validator] Use comparison constraints as attributes

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| Tickets       | #38096
| License       | MIT
| Doc PR        | TODO, let's add it to symfony/symfony-docs#14305

This PR enables all child classes of `AbstractComparison` to be used as attributes.

Some of those constraints used a trait called `NumberConstraintTrait` for a shared implementation. After my changes, that trait did not fit well anymore, so I've added a new `ZeroComparisonConstraintTrait` as a replacement. Although I don't expect `NumberConstraintTrait` to provide much value outside of the Symfony codebase, I think we cannot safely change it because it was not labelled as `@internal`. This is basically why I went for the deprecation.

Commits
-------

b5bdf8288f [Validator] Use comparison constraints as attributes.
2020-10-04 10:54:16 +02:00
Fabien Potencier
dfcde5b409 feature #38369 [HttpFoundation] Expired cookies string representation consistency & tests (iquito)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[HttpFoundation] Expired cookies string representation consistency & tests

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT

These changes add consistent behavior when converting expired cookies back and forth from string representation into `Symfony\Component\HttpFoundation\Cookie` instances in `Cookie::fromString`:

- When `Max-Age` is zero and `expires` is in the past, the `expires` date is kept as is (previous behavior: `expires` is overwritten with current timestamp because it is reset to current timestamp + `Max-Age`)
- When `Max-Age` is zero and `expires` is in the future, expires is reset to current timestamp, as `Max-Age` is the preferred "source of truth" (same as previous behavior)
- Add tests for how the Cookie class handles `Max-Age` in a cookie string and how `expires` and `Max-Age` interact
- Extract helper function `expiresTimestamp` so converting to a unix timestamp can be reused in `Cookie::fromString`

This is more a new feature than a bug fix in my mind, therefore I would include it in 5.1+.

Commits
-------

4f5d5eceb0 [HttpFoundation] Expired cookies string representation consistency & tests
2020-10-04 10:45:41 +02:00
Andreas
4f5d5eceb0 [HttpFoundation] Expired cookies string representation consistency & tests 2020-10-04 10:45:35 +02:00
Fabien Potencier
89adb2133b [Mime] Prefer .jpg instead of .jpeg 2020-10-04 10:36:21 +02:00
Fabien Potencier
a6103adcf9 Bump Symfony version to 5.1.8 2020-10-04 10:00:52 +02:00
Fabien Potencier
1d18312db6 Update VERSION for 5.1.7 2020-10-04 09:57:28 +02:00
Fabien Potencier
8cb3387ce2 Bump Symfony version to 4.4.16 2020-10-04 09:55:30 +02:00
Fabien Potencier
e42cfee451 Update VERSION for 4.4.15 2020-10-04 09:48:13 +02:00
Fabien Potencier
edb5fed4bb feature #36479 [Notifier][WebProfilerBundle][FrameworkBundle] Add notifier section to profiler (jschaedl)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Notifier][WebProfilerBundle][FrameworkBundle] Add notifier section to profiler

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | - <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | - <!-- required for new features -->

This is the first iteration of adding a profiler panel for the new Notifier component:

WebProfiler Toolbar:
![Screenshot 2020-10-02 at 10 26 35](https://user-images.githubusercontent.com/1880467/94903474-28bece00-049a-11eb-945c-d6ce047b35e8.png)

WebProfiler Notifier Panel:

![Screenshot 2020-10-02 at 10 28 19](https://user-images.githubusercontent.com/1880467/94903594-5277f500-049a-11eb-8c1e-27e6ec87a51c.png)
![Screenshot 2020-10-02 at 10 28 29](https://user-images.githubusercontent.com/1880467/94903591-51df5e80-049a-11eb-935a-9ba130ef69f0.png)
![Screenshot 2020-10-02 at 10 28 35](https://user-images.githubusercontent.com/1880467/94903589-5146c800-049a-11eb-8a69-28d362ef6640.png)
![Screenshot 2020-10-02 at 10 28 42](https://user-images.githubusercontent.com/1880467/94903586-50159b00-049a-11eb-97bd-382a823087a6.png)

An example project can to test the new profiler panel can be found here: https://github.com/jschaedl/notifier-profiler-integration

Commits
-------

f39e74ba9f [Notifier][WebProfilerBundle][FrameworkBundle] Add notifier section to profiler
2020-10-04 09:43:38 +02:00
Jan Schädlich
f39e74ba9f [Notifier][WebProfilerBundle][FrameworkBundle] Add notifier section to profiler 2020-10-04 09:43:31 +02:00
Fabien Potencier
f8212cc9e3 Merge branch '5.1'
* 5.1:
  Update security.he.xlf
2020-10-04 09:09:29 +02:00
Fabien Potencier
936c6afdf0 Merge branch '4.4' into 5.1
* 4.4:
  Update security.he.xlf
2020-10-04 09:09:21 +02:00
Fabien Potencier
9c1b6fc985 Merge branch '3.4' into 4.4
* 3.4:
  Update security.he.xlf
2020-10-04 09:09:09 +02:00
Fabien Potencier
62a76ba871 Merge branch '5.1'
* 5.1:
  Handle consecutive supports() calls in the RememberMeAuthenticator
2020-10-04 09:09:00 +02:00
Fabien Potencier
3b524f6d70 feature #38395 [lock] Prevent user serializing the key when store does not support it. (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[lock] Prevent user serializing the key when store does not support it.

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

Some store relies on connection with the running process. ie. kernel relaease flock/semaphore, or zookeeper neeeds a connection to the database.

When the users tries to serialize the key to send it to another process, they are not aware that they lose the lock.

This PR throws an exception in that situation.

Commits
-------

1ec0630262 Prevent user serializing the key
2020-10-04 09:08:28 +02:00
Fabien Potencier
c6a747d64b minor #38403 Remove array return type from Request::toArray() (GrahamCampbell)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Remove array return type from Request::toArray()

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38400
| License       | MIT
| Doc PR        | -

Laravel already extends Symfony's `Request` class and defines it's own `toArray` method. https://github.com/symfony/symfony/pull/38224 added a new `toArray` method to this class with a different signature to the one that is in Laravel, causing fatal errors (https://github.com/laravel/framework/issues/34660). I think the best course of action here is to remove the return type for now, and only add it in Symfony 6. This will allow Symfony 6.0 and Laravel 11 to synchronize adding the return type.

Older versions of Laravel can't just change their signature to add an array return type to them, because that would be a breaking change for Laravel users extending Laravel's request class. I'm thinking, in particular, API packages and the like, or just straight up application code.

Commits
-------

8b291a49a6 Remove array return type from Request::toArray()
2020-10-04 09:07:32 +02:00
Ben Hakim
8d4c2f052d Update security.he.xlf 2020-10-04 09:06:34 +02:00
Fabien Potencier
b94fef4670 bug #38396 Handle consecutive supports() calls in the RememberMeAuthenticator (wouterj)
This PR was merged into the 5.1 branch.

Discussion
----------

Handle consecutive supports() calls in the RememberMeAuthenticator

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38206
| License       | MIT
| Doc PR        | -

If I read the issue correctly, the problem is not so much that `autoLogin()` is called in supports, but that it is called multiple times in the same request (in lazy firewalls). This is fixed by this issue.

@qurben or @fancyweb do you have an application with this error, and can you please test the patch in this PR? Please let me know if this actually fixed the issue. (if you can't, I'll create a small demo app to test this one)

Commits
-------

e0d1867b54 Handle consecutive supports() calls in the RememberMeAuthenticator
2020-10-04 09:05:27 +02:00
Fabien Potencier
200392e473 minor #38404 [HttpClient] Minor fix of type and message in ExponentialBackOff (bohanyang)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpClient] Minor fix of type and message in ExponentialBackOff

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Make the type consistent and fix an error message

Commits
-------

6149a0c04b [HttpClient] Minor fix of type and message in ExponentialBackOff
2020-10-04 09:03:11 +02:00
Fabien Potencier
42d86cf2af minor #38397 [Console] Remove "php" invokation from help messages. (rodrigoaguilera)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Console] Remove "php" invokation from help messages.

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT

Discusstion started here:
https://github.com/symfony/symfony/pull/38349

I was a bit puzzled to find that the help for the list and help commands suggests that you call the console application by prefixing it with `php myconsoleapp`.

As suggested in the PR above I am removing the `php ` prefix from the help.

I am providing a script with a shebang like the first example suggested in the following link:
https://symfony.com/doc/current/components/console.html
Eventually I want to distribute my console app as docker image so there is no need for php installed or the users even knowing is written in php.
The script name is easy to override by just setting a different value to `$_SERVER['PHP_SELF']` but this php prefix is hardcoded into the help strings for the the two default commands available.

Slightly related to #38347 as I am trying to improve the console help output.

Commits
-------

e036c30e7a [Console] Remove "php" invokation from help messages.
2020-10-04 09:01:38 +02:00
Bohan Yang
6149a0c04b [HttpClient] Minor fix of type and message in ExponentialBackOff 2020-10-04 10:23:35 +08:00
Graham Campbell
8b291a49a6
Remove array return type from Request::toArray() 2020-10-03 23:39:59 +01:00
Rodrigo Aguilera
e036c30e7a [Console] Remove "php" invokation from help messages. 2020-10-03 16:00:31 +02:00
Fabien Potencier
8fa6b3625b Merge branch '5.1'
* 5.1:
  Fix tests
  [Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter
  [Serializer][Minor] Fix exception message
2020-10-03 15:58:25 +02:00
Fabien Potencier
40bc14ab78 Merge branch '4.4' into 5.1
* 4.4:
  Fix tests
  [Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter
  [Serializer][Minor] Fix exception message
2020-10-03 15:58:17 +02:00
Wouter de Jong
e0d1867b54 Handle consecutive supports() calls in the RememberMeAuthenticator 2020-10-03 15:02:03 +02:00
Jérémy Derussé
1ec0630262
Prevent user serializing the key 2020-10-03 14:03:42 +02:00
Fabien Potencier
6a79f3e06f Fix tests 2020-10-03 08:31:32 +02:00
Fabien Potencier
35e04d9136 bug #36291 [Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter (Jontsa)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #35350
| License       | MIT
| Doc PR        |

Updates `Symfony\Component\Lock\Store\StoreFactory` to accept same DSN syntax as `Symfony\Component\Cache\Adapter\AbstractAdapter` which is used to create Redis class instance.

Commits
-------

4ebbe3d86b [Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter
2020-10-03 08:30:09 +02:00
Joni Halme
4ebbe3d86b [Lock] Fix StoreFactory to accept same DSN syntax as AbstractAdapter 2020-10-03 08:30:00 +02:00
Fabien Potencier
534466d1cf feature #38177 [Security] Magic login link authentication (weaverryan)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Security] Magic login link authentication

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | none
| License       | MIT
| Doc PR        | TODO

Hi!

This adds a Slack-style "magic link" login authenticator to the new login system: (A) enter your email into a form, (B) receive an email with a link in it (C) click that link and you are authenticated!

For most users, implementing this would require:

A) Create a [controller](https://github.com/weaverryan/symfony-magic-login-link-example/blob/master/src/Controller/MagicLinkLoginController.php) with the "enter your email" form and a route for the "check" functionality (similar to `form_login`)
B) Activate in `security.yaml`:

```yml
security:
    enable_authenticator_manager: true
    # ...
    firewalls:
        # ...
        main:
            # ...
            login_link:
                check_route: 'magic_link_verify'
                # this is an important and powerful option
                # An array of properties on your User that are used to sign the link.
                # If any of these change, all existing links will become invalid
                # tl;dr If you want the modification of ANY field to invalidate ALL existing magic links immediately,
                # then you can add it to this list. You could even add a "lastLoginLinkSentAt" to invalid
                # all existing login links when a new one is sent.
                signature_properties: [id, password, email]

                # optional - by default, links can be reused but have a 10 minute lifetime
                #max_uses: 3
                #used_link_cache: cache.app
```

Done! This will generate a URL that looks something like this:

> https://127.0.0.1:9033/login/verify?user=weaverryan@gmail.com&expires=1601342578&hash=YzE1ZDJlYjM3YTMyMjgwZDdkYzg2ZjFlMjZhN2E5ZWRmMzk3NjAxNjRjYThiMjMzNmIxYzAzYzQ4NmQ2Zjk4NA%3D%3D

We would implement a Maker command this config + login/controller. The implementation is done via a "signed URL" and an optional cache pool to "expire" links. The hash of the signed URL can contain any user fields you want, which give you a powerful mechanism to invalidate magic tokens on user data changes. See `signature_properties` above.

#### Security notes:

There is a LOT of variability about how secure these need to be:

* A) Many/most implementation only allow links to be used ONE time. That is *possible* with this implementation, but is not the *default*. You CAN add a `max_uses` config which stores the expired links in a cache so they cannot be re-used. However, to make this work, you need to do more work by adding some "page" between the link the users clicks and *actually* using the login link. Why? Because unless you do this, email clients may follow the link to "preview" it and will "consume" the link.

* B) Many implementations will invalidate all other login links for a user when a new one is created. We do *not* do that, but that IS possible (and we could even generate the code for it) by adding a `lastLoginLinkSentAt` field to `User` and including this in `signature_properties`.

* C) We *do* invalidate all links if the user's email address is changed (assuming the `email` is included in `signature_properties`, which it should be). You can also invalidate on password change or whatever you want.

* D) Some implementations add a "state" so that you can only use the link on the same device that created it. That is, in many cases, quite annoying. We do not currently support that, but we could in the future (and the user could add it themselves).

Thanks!

#### TODOS:

* [x] A) more tests: functional (?) traits
* [ ] B) documentation
* [ ] C) MakerBundle PR
* [ ] D) Make sure we have what we need to allow that "in between" page
* [ ] E) Create a new cache pool instead of relying on cache.app?

Commits
-------

a8afe109d8 [Security] Magic login link authentication
2020-10-03 08:23:42 +02:00
Ryan Weaver
a8afe109d8 [Security] Magic login link authentication 2020-10-03 08:23:35 +02:00
Fabien Potencier
f589ff41ca feature #38224 [HttpFoundation] Add Request::toArray() for JSON content (Nyholm)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[HttpFoundation] Add Request::toArray() for JSON content

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | ni
| New feature?  | yes
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

The past few months I've been working more and more with javascript and APIs. I've written controllers that parse json from the request body. I've found myself copying code between projects so I looked at the possibility to add this code to the `Request` class itself.

### Usage

```http
POST /add-user
Content-Type: application/json

{"name": "Tobias", "email": "tobias.nyholm@gmail.com"}
```

```php
use Symfony\Component\HttpFoundation\Exception\JsonException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;

class MyController
    // ...
    public function addUser(Request $request): JsonResponse
    {
        try {
            $data = $request->toArray();
        } catch (JsonException $e) {
            return new JsonResponse(['message'=>'Request does not contain valid json'], 415);
        }

        $command = new AddUser($data['email'] ?? '', $data['name'] ?? '');

        try {
            $this->commandBus->dispatch($command);
        } catch (ValidationFailedException $e) {
            return new JsonResponse(['message' => 'Unexpected JSON body'], 400);
        }

        return new JsonResponse(['message' => 'User successfully added']);
    }
}
```
----------

I've searched but I have not found that this has been proposed before.. With is strange.. ¯\\_(ツ)_/¯

Commits
-------

83c1a2666d [HttpFoundation] Add Request::toArray() for JSON content
2020-10-03 08:14:02 +02:00
Nyholm
83c1a2666d [HttpFoundation] Add Request::toArray() for JSON content 2020-10-03 08:13:56 +02:00
Fabien Potencier
f8b154357d Fix CS 2020-10-03 08:07:27 +02:00
Fabien Potencier
d69b525000 bug #38385 [PropertyInfo] Fix failure over array<string,mixed> PhpDoc type (romaricdrigon)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[PropertyInfo] Fix failure over array<string,mixed> PhpDoc type

| Q             | A
| ------------- | ---
| Branch?       | master (issue introduced in master)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

**Background**

Since a few days ago ([this commit](80e5a7fbd8)), PropertyInfo 5.2 component supports array PhpDoc types, such as `array<string,string>`.
While testing SF 5.2 over my project, it was failing over:
```php
class SomeDoctrineEntityProxy implements \Doctrine\ORM\Proxy\Proxy
{
    /**
     * @var array<string, mixed> default values of properties to be lazy loaded, with keys being the property names
     *
     * @see \Doctrine\Common\Proxy\Proxy::__getLazyProperties
     */
    public static $lazyPropertiesDefaults = array();
}
```

Upon investigation, it appears `array<string,mixed>` is causing the issue: `mixed` type is not handled.

**Expected behavior**

PropertyInfo component should not guess anything for `mixed` type (return `NULL`), but it should not throw any exception.

**Comment about my fix**

I added a test case (`arrayOfMixed`) you can use to reproduce the issue.
Since array PhpDoc types were not tested at all, I also added a test case over `array<string,string>`.

Commits
-------

590177ff8e [PropertyInfo] Fix failure over array<string,mixed> PhpDoc type
2020-10-03 08:03:47 +02:00
Yonel Ceruto
3d83f94a89 Fixed undefined property in Firewall\ExceptionListener 2020-10-02 17:21:50 -04:00
Laurent VOULLEMIER
36ce9029f7 [Serializer][Minor] Fix exception message
Wrong circular reference limit displayed.
2020-10-02 22:12:42 +02:00
Romaric Drigon
590177ff8e [PropertyInfo] Fix failure over array<string,mixed> PhpDoc type 2020-10-02 16:56:39 +02:00
Nicolas Grekas
5e48c1e1c6 Merge branch '5.1'
* 5.1:
  [HttpClient] Always "buffer" empty responses
2020-10-02 16:25:10 +02:00
Nicolas Grekas
c453c3dbd5 Merge branch '4.4' into 5.1
* 4.4:
  [HttpClient] Always "buffer" empty responses
2020-10-02 16:24:03 +02:00
Nicolas Grekas
700462f118 [HttpClient] fix last fix 2020-10-02 16:15:25 +02:00
Nicolas Grekas
993525a366 [HttpClient] Fix dealing with empty responses in AsyncResponse 2020-10-02 16:11:19 +02:00
Nicolas Grekas
1f7b8fdf7b bug #38378 [HttpClient] Fix exception triggered with AsyncResponse (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpClient] Fix exception triggered with AsyncResponse

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | https://github.com/symfony/symfony/pull/38289#issuecomment-702573975
| License       | MIT
| Doc PR        | /

When a request is replayed with the AsyncResponse and the 2nd request failed, users get an exception even when they pass `$throw=false`.

In fact, there are 2 exceptions:

1. Cannot get the content of the response twice: buffering is disabled.

73ca97c97a/src/Symfony/Component/HttpClient/Response/CommonResponseTrait.php (L51-L68)

Because CommonResponseTrait::$content is null and `self::stream` yield only the LastChunk. The content is stays null

2. HTTP/2 429  returned for "https://httpbin.org/status/429"

73ca97c97a/src/Symfony/Component/HttpClient/Response/AsyncResponse.php (L209-L225)

Because on the second request passthru is null, it didn't disable the the exception thrown on destruct for the wrapped response.
This

Commits
-------

3aedb51dd8 [HttpClient] Fix exception triggered with AsyncResponse
2020-10-02 15:57:56 +02:00
Jérémy Derussé
3aedb51dd8 [HttpClient] Fix exception triggered with AsyncResponse 2020-10-02 15:57:08 +02:00
Nicolas Grekas
03d60fce47 [HttpClient] Always "buffer" empty responses 2020-10-02 15:41:48 +02:00
Fabien Potencier
a3e8c112c2 feature #38323 [Mime] Allow multiple parts with the same name in FormDataPart (HypeMC)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Mime] Allow multiple parts with the same name in FormDataPart

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #38258
| License       | MIT
| Doc PR        | -

Added the possibility to choose whether multiple parts with the same name should be suffixed or not:

```php
$f1 = new FormDataPart([
    'foo' => [
        'one',
        'two',
    ],
]);

var_dump($f1->toString());
```

```
Content-Type: multipart/form-data; boundary=6rqazwiG

--6rqazwiG
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="foo[0]"

one
--6rqazwiG
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="foo[1]"

two
--6rqazwiG--
```

```php
$f1 = new FormDataPart([
    ['foo' => 'one'],
    ['foo' => 'two'],
]);

var_dump($f1->toString());
```

```
Content-Type: multipart/form-data; boundary=xxW9dGzq

--xxW9dGzq
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="foo"

one
--xxW9dGzq
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="foo"

two
--xxW9dGzq--
```

Only applies to numeric keys:

```php
$f1 = new FormDataPart([
    'foo' => [
        'a' => 'one',
        'b' => 'two',
    ],
], true);

var_dump($f1->toString());
```

```
Content-Type: multipart/form-data; boundary=W6qkqgrD

--W6qkqgrD
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="foo[a]"

one
--W6qkqgrD
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name="foo[b]"

two
--W6qkqgrD--
```

Commits
-------

1f7f2c6ddc Allow multiple parts with the same name in FormDataPart
2020-10-02 15:33:43 +02:00
Alexander M. Turek
b5bdf8288f [Validator] Use comparison constraints as attributes. 2020-10-02 15:13:55 +02:00
Nicolas Grekas
9d6333a7ff Merge branch '5.1'
* 5.1:
  [5.1] Ignore more deprecations for Mockery mocks
  [PhpUnitBridge] Fix Deprecation file when it comes from the TestsListener
  disallow FrameworkBundle 4.4+
  propagate validation groups to subforms
  [Form] [Validator] Add failing testcase to demonstrate group sequence issue
2020-10-02 15:09:26 +02:00
Thomas Calvet
58e6cb1ddc [5.1] Ignore more deprecations for Mockery mocks 2020-10-02 15:05:43 +02:00
Nicolas Grekas
8ea3e7a6bb Merge branch '4.4' into 5.1
* 4.4:
  disallow FrameworkBundle 4.4+
  propagate validation groups to subforms
  [Form] [Validator] Add failing testcase to demonstrate group sequence issue
2020-10-02 14:58:01 +02:00
Nicolas Grekas
3d39874a2c Merge branch '3.4' into 4.4
* 3.4:
  disallow FrameworkBundle 4.4+
  propagate validation groups to subforms
  [Form] [Validator] Add failing testcase to demonstrate group sequence issue
2020-10-02 14:43:11 +02:00
Fabien Potencier
bd8c3c1c42 feature #38354 [RateLimiter] add Limit::ensureAccepted() which throws RateLimitExceededException if not accepted (kbond)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[RateLimiter] add Limit::ensureAccepted() which throws RateLimitExceededException if not accepted

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Ref https://github.com/symfony/symfony/issues/38241#issuecomment-695212027
| License       | MIT
| Doc PR        | todo

Example:

```php
try {
    $limit = $limiter->consume()->ensureAccepted();
} catch (RateLimitExceededException $e) {
    $limit = $e->getLimit();
}
```

Commits
-------

a7ecd0ed08 [RateLimiter] add Limit::ensureAccepted() and RateLimitExceededException
2020-10-02 13:18:49 +02:00
Nicolas Grekas
48adfb2e4b Merge branch '5.1'
* 5.1:
  [HttpClient] fix unsetting context[ssl][peer_name]
2020-10-02 12:20:36 +02:00
Nicolas Grekas
56679fe735 Merge branch '4.4' into 5.1
* 4.4:
  [HttpClient] fix unsetting context[ssl][peer_name]
2020-10-02 12:20:30 +02:00
Nicolas Grekas
8eb8a7c400 [HttpClient] fix unsetting context[ssl][peer_name] 2020-10-02 12:07:58 +02:00
Christian Flothmann
04f5698e29 propagate validation groups to subforms 2020-10-02 11:43:30 +02:00
Johan de Ruijter
e2c7c3373d [Form] [Validator] Add failing testcase to demonstrate group sequence issue
When using group sequences on a form, sometimes constraints are ignored even though they should fail.
2020-10-02 11:43:30 +02:00
HypeMC
1f7f2c6ddc Allow multiple parts with the same name in FormDataPart 2020-10-02 11:11:56 +02:00
Nicolas Grekas
73ca97c97a Merge branch '5.1'
* 5.1:
  [HttpClient] fix using proxies with NativeHttpClient
  [4.4] Ignore more deprecations for Mockery mocks
  [Routing] fix using !important and defaults/reqs in inline route definitions
  [ErrorHandler][DebugClassLoader] Do not check Mockery mocks classes
  [HttpClient] Fix using https with proxies
  [TwigBundle] Only remove kernel exception listener if twig is used
  [DI] Fix changelog
  Remove CHANGELOG files for 4.x
  Adjust expired range check
  Fix redis connection error message
  [DI] fix dumping non-shared lazy services
2020-10-02 10:56:13 +02:00
Nicolas Grekas
d8255138ae Merge branch '4.4' into 5.1
* 4.4:
  [HttpClient] fix using proxies with NativeHttpClient
  [4.4] Ignore more deprecations for Mockery mocks
  [Routing] fix using !important and defaults/reqs in inline route definitions
  [ErrorHandler][DebugClassLoader] Do not check Mockery mocks classes
  [HttpClient] Fix using https with proxies
  [TwigBundle] Only remove kernel exception listener if twig is used
  Adjust expired range check
  Fix redis connection error message
2020-10-02 10:49:02 +02:00
Nicolas Grekas
0d8721fc01 Merge branch '3.4' into 4.4
* 3.4:
  Adjust expired range check
2020-10-02 10:38:15 +02:00
Nicolas Grekas
3cfd991ae6 bug #38377 [4.4] Ignore more deprecations for Mockery mocks (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[4.4] Ignore more deprecations for Mockery mocks

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Commits
-------

1a801e8452 [4.4] Ignore more deprecations for Mockery mocks
2020-10-02 10:36:26 +02:00
Nicolas Grekas
aca260fbd0 bug #38375 [HttpClient] fix using proxies with NativeHttpClient (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix using proxies with NativeHttpClient

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

As spotted by @stof in https://github.com/symfony/symfony/pull/38368#issuecomment-702272737, we cannot use local DNS resolution with HTTP proxies.

Commits
-------

28f301bf03 [HttpClient] fix using proxies with NativeHttpClient
2020-10-02 10:29:59 +02:00
Nicolas Grekas
9c8a3009cf bug #38372 [Routing] fix using !important and defaults/reqs in inline route definitions (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Routing] fix using !important and defaults/reqs in inline route definitions

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #33224
| License       | MIT
| Doc PR        | -

Commits
-------

826db225b7 [Routing] fix using !important and defaults/reqs in inline route definitions
2020-10-02 10:22:10 +02:00
Nicolas Grekas
28f301bf03 [HttpClient] fix using proxies with NativeHttpClient 2020-10-02 10:17:19 +02:00
Thomas Calvet
1a801e8452 [4.4] Ignore more deprecations for Mockery mocks 2020-10-02 09:34:48 +02:00
Fabien Potencier
d0ded920e6 bug #38367 [RateLimiter] Fix cache storage (use namespaced pool + remove \Serializable) (wouterj)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[RateLimiter] Fix cache storage (use namespaced pool + remove \Serializable)

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38365, fix #38338
| License       | MIT
| Doc PR        | -

Commits
-------

251c202874 Use a dedicated cache.rate_limiter cache pool
5dc562a318 Use __sleep/__wakeup instead of Serializable
2020-10-02 08:02:03 +02:00
Fabien Potencier
67a7be2bd0 Fix CS 2020-10-02 07:59:23 +02:00
Fabien Potencier
954009a4d7 feature #32904 [Messenger] Added ErrorDetailsStamp (TimoBakx)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Added ErrorDetailsStamp

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32311
| License       | MIT
| Doc PR        | No doc changes are needed

#SymfonyHackday

This PR is part of the work started in #32341. That PR has a workaround for showing exceptions added to a previous retry. This PR stores error messages in a separate stamp, so they're more easily accessed.

I also added the exceptionClass as a separate string (independant of FlattenException), so that information is always available, even if the trace is not (due to FlattenException not being available).

Duplicated exceptions (compared to the last one) are not stored separately.

**Questions:**
- Should we limit the total amount of exceptions (remove the oldest when adding a new one)?
  - Yes, but in a new PR
- The current implementation adds this stamp in the Worker instead of the listeners to prevent duplicate code (due to the immutability of the envelope in the event). Is this the proper way to do this?
  - No, create a new listener and a way to add stamps to the envelope inside the event.
- When adding details of a `HandlerFailedException`, should we add a stamp per wrapped `Throwable`? There can be multiple errors wrapped by a single `HandlerFailedException`.
  - Yes, but in a later PR

**Todo:**
- [x] only add new information if it differs from the previous exception
- [x] add deprecations
- [x] fall back to old stamp data if no new stamp is available
- [x] rebase and retarget to master
- [x] update CHANGELOG.md
- [x] check for docs PR

**BC Breaks:**
When this PR is merged, RedeliveryStamps will no longer be populated with exception data. Any implementations that use `RedeliveryStamp::getExceptionMessage()` or `RedeliveryStamp::getFlattenedException()` will receive an empty string or `null` respectively for stamps added after this update. They should rely on `ErrorDetailsStamp` instead.

**New stuff:**
- New stamp `ErrorDetailsStamp`.
- New event subscriber `AddErrorDetailsStampListener`.
- New method `AbstractWorkerMessageEvent::addStamps`.

Commits
-------

cd27b863f9 [Messenger] Added FailedMessageErrorDetailsStamp
2020-10-02 07:56:41 +02:00
Fabien Potencier
14942dbbe8 feature #36152 [Messenger] dispatch event when a message is retried (nikophil)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Messenger] dispatch event when a message is retried

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT

Hello,

i'm working on a bundle which helps to monitor messenger queues (add some stats for queues/transports + ability to manage failed messages from the browser)
https://github.com/SymfonyCasts/messenger-monitor-bundle/

and we're missing some hooks in the messaging system:
1. a way to know when a message has been retried (fixed by dispatching a new `WorkerMessageRetriedEvent` in `SendFailedMessageForRetryListener::onMessageFailed()`)
2. a way to update the enveloppe in worker message events (fixed by adding `AbstractWorkerMessageEvent::setEnvelope()`)

if needed i can provide some precise use cases.

thanks.

Commits
-------

55bddcb721 [Messenger] dispatch event when a message is retried
2020-10-02 07:48:00 +02:00
Nicolas PHILIPPE
55bddcb721 [Messenger] dispatch event when a message is retried 2020-10-02 07:47:55 +02:00
Olivier Dolbeau
09c9bde479 Can define ChatMessage transport to null 2020-10-02 07:42:01 +02:00
Fabien Potencier
b35bbdbde5 feature #38289 [HttpClient] provide response body to the RetryDecider (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpClient] provide response body to the RetryDecider

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes but for not-yet released 5.2 feature
| Tickets       | /
| License       | MIT
| Doc PR        | TODO

Some servers, like AWS, does not always return standard HTTP code. The strategy needs to parse the body to take a decision.
example:
```
400
x-amzn-requestid: XXXXX
content-type: application/x-amz-json-1.1
content-length: 58
date: Thu, 24 Sep 2020 11:17:35 GMT
connection: close

{"__type":"ThrottlingException","message":"Rate exceeded"}
````

This PR update the `RetryDeciderInterface` interface to let the decider notifying the Client when it need the body to take a decision. in that case, the Client, fetch te client, and call again the decider with the full body.

usage
```php
class Decider implements RetryDeciderInterface {
    public function shouldRetry(string $requestMethod, string $requestUrl, array $requestOptions, int $responseCode, array $responseHeaders, ?string $responseContent, \Throwable $throwable = null): ?bool
    {
        if (null !== $throwable) {
            return true;
        }
        if (in_array($responseCode, [423, 425, 429, 500, 502, 503, 504, 507, 510])) {
            return true;
        }
        if (
            $responseCode !== 400
            || $headers['content-type'][0] ?? null !== 'application/x-amz-json-1.1'
            || (int) $headers['content-length'][0] ?? '0' > 1024
        ) {
            return false;
        }
        if (null === $responseContent) {
            return null; // null mean no decision taken and need to be called again with the body
        }

        $data = json_decode($responseContent, true);

        return $data['__type'] ?? '' === 'ThrottlingException';
    }
}
```

Commits
-------

321be5884d [HttpClient] provide response body to the RetryDecider
2020-10-02 07:36:08 +02:00
Kevin Bond
a7ecd0ed08
[RateLimiter] add Limit::ensureAccepted() and RateLimitExceededException 2020-10-01 20:04:22 -04:00
Nicolas Grekas
826db225b7 [Routing] fix using !important and defaults/reqs in inline route definitions 2020-10-01 18:25:17 +02:00
Thomas Calvet
bbd12fe27f [ErrorHandler][DebugClassLoader] Do not check Mockery mocks classes 2020-10-01 18:21:20 +02:00
Bohan Yang
7e0cd4e621 [HttpClient] Fix using https with proxies 2020-10-01 18:05:21 +02:00
Jérémy Derussé
321be5884d
[HttpClient] provide response body to the RetryDecider 2020-10-01 17:55:44 +02:00
Timo Bakx
cd27b863f9 [Messenger] Added FailedMessageErrorDetailsStamp 2020-10-01 16:25:39 +02:00
Wouter de Jong
5dc562a318 Use __sleep/__wakeup instead of Serializable
Fixes #38338
2020-10-01 14:20:33 +02:00
Roland Franssen
d784b50da3
[DI] Fix changelog 2020-10-01 14:14:45 +02:00
Fabien Potencier
1b6894781c bug #38360 [BrowserKit] Cookie expiration at current timestamp (iquito)
This PR was merged into the 3.4 branch.

Discussion
----------

[BrowserKit] Cookie expiration at current timestamp

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| License       | MIT

In `Symfony\Component\BrowserKit\Cookie` a cookie is expired if the `expires` timestamp is in the past. I would like to change it to also be expired if the `expires` timestamp equals the current exact timestamp. This would still be in line with [RFC 6265](https://tools.ietf.org/html/rfc6265#section-4.1.2.1), as it states `The Expires attribute indicates the maximum lifetime of the cookie, represented as the date and time at which the cookie expires`.

Reason for this change: Cookies usually both have `expires` and `Max-Age` set, and Symfony sets `Max-Age` to zero if a cookie is expired (in `Symfony\Component\HttpFoundation\Cookie`). When converting cookies between string and object representations, `Max-Age` is the preferred source of truth for the expiration, but `Max-Age` set to zero is converted to an `expires` timestamp at this exact second, currently making the cookie not expired in `Symfony\Component\BrowserKit\Cookie`, even though it should be.

I noticed this discrepancy in my tests when checking if a cookie no longer existed after deleting it, yet it was still there, because `Cookie` thought it would only expire after the `expires` timestamp had passed. I am also thinking of raising an issue for `Symfony\Component\HttpFoundation\Cookie`, as importing and exporting an expired cookie (via strings) changes the `expired` value. I thought this change was a simpler one for now, and should have no negative/unexpected impact.

Commits
-------

9d187c0d1a Adjust expired range check
2020-10-01 12:44:36 +02:00
Andreas
9d187c0d1a Adjust expired range check
Include current second when deciding if cooke has expired.
2020-10-01 12:06:12 +02:00
Fabien Potencier
127724d519 feature #38308 [Security][RateLimiter] Added request rate limiter to prevent breadth-first attacks (wouterj)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Security][RateLimiter] Added request rate limiter to prevent breadth-first attacks

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

This allows limiting on different elements of a request. The normal `CompoundLimiter` requires the same key for all its limiters.

This request limiter is useful to e.g. prevent breadth-first attacks, by allowing to enforce a limit on both IP and IP+username. It can also be useful for applications using some sort of API request limiting (or e.g. file upload limiting).

The default login throttling limiter will allow `max_attempts` (default: 5) attempts per minute for `username + IP` and `5 * max_attempts` for `IP`. Customizing this will require creating a new service that extends `AbstractRequestRateLimiter` and implementing `getLimiters(Request $request): LimiterInterface[]`.

Commits
-------

5d03afea99 Added request rate limiters and improved login throttling
2020-10-01 08:42:40 +02:00
Robin Chalas
e8dd14ac9e bug #38351 [Console] clone stream on multiline questions so EOT doesn't close input (ramsey)
This PR was squashed before being merged into the 5.2-dev branch (closes #38351).

Discussion
----------

[Console] clone stream on multiline questions so EOT doesn't close input

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

This fixes a bug in the multiline question feature that was introduced in #37683.

Today, @epitre commented on https://github.com/symfony/symfony/pull/37683#issuecomment-700666826:

> If I ask a question AFTER using the multiline option in a previous question, then it seems that the ctrl+d is kind of saved, and the command gets aborted.

I'm honestly not sure how I missed this while working on #37683, since I was testing it with multiple questions, but I think it might have resulted from some of the back-and-forth and the lack of ability to effectively test the EOT character from a unit test.

The solution was to _clone_ the input stream resource and use the clone to read the multiline input and capture the EOT byte. In this way, the primary input stream is not closed by the EOT.

This is similar to @epitre's solution in https://github.com/symfony/symfony/pull/38345, but I'm using the `uri` and `mode` from `stream_get_meta_data()` to create the new stream, and if the existing stream has any data and is seekable and writable (like the streams used in the tests), I add the data to the clone and seek to the same offset.

I've ensured that this solution works on a question that is in the middle of a series of other questions, and I've tested in on *nix and Windows. I've also improved the tests for multiline questions. While I'm unable to test (with a unit test) that an EOT character effectively stops reading from STDIN while continuing to the next question and prompt, I feel confident that the tests here provide sufficient coverage.

Commits
-------

ec688a361e [Console] clone stream on multiline questions so EOT doesn't close input
2020-09-30 21:48:20 +02:00
Ben Ramsey
ec688a361e [Console] clone stream on multiline questions so EOT doesn't close input 2020-09-30 21:34:12 +02:00
Wouter de Jong
5d03afea99 Added request rate limiters and improved login throttling
This allows limiting on different elements of a request. This is usefull to
e.g. prevent breadth-first attacks, by allowing to enforce a limit on both IP
and IP+username.
2020-09-30 21:18:40 +02:00
Alexander Schranz
f4e42ad3d4 Fix redis connection error message
Use correct instance of redis to getLastError
2020-09-30 18:06:18 +02:00
Nicolas Grekas
e33a0b0f94 [DI] fix dumping non-shared lazy services 2020-09-30 17:55:21 +02:00
Wouter de Jong
0279f88e6c Call all compound limiters on failure and added IO blocking 2020-09-30 12:14:20 +02:00
Fabien Potencier
aa661492d2 feature #38257 [RateLimiter] Add limit object on RateLimiter consume method (Valentin, vasilvestre)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[RateLimiter] Add limit object on RateLimiter consume method

| Q             | A
| ------------- | ---
| Branch?       | master (should be merged in 5.2 before 31 September if possible)
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #38241
| License       | MIT
| Doc PR        | Not yet :/ <!-- https://github.com/symfony/symfony-docs/pull/X -->

Commits
-------

8f62afc5f9 [RateLimiter] Return Limit object on Consume method
2020-09-30 07:47:32 +02:00
Valentin
8f62afc5f9 [RateLimiter] Return Limit object on Consume method 2020-09-30 07:47:20 +02:00
Fabien Potencier
5eb442ec18 feature #38309 [Validator] Constraints as php 8 Attributes (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Validator] Constraints as php 8 Attributes

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | #38096
| License       | MIT
| Doc PR        | TODO

This is my attempt to teach the validator to load constraints from PHP attributes. Like we've done it for the `Route` attribute, I've hooked into the existing `AnnotationLoader`, so we can again mix and match annotations and attributes.

### Named Arguments

An attribute declaration is basically a constructor call. This is why, in order to effectively use a constraint as attribute, we need to equip it with a constructor that works nicely with named arguments. This way, IDEs like PhpStorm can provide auto-completion and guide a developer when declaring a constraint without the need for additional plugins. Right now, PhpStorm supports neither attributes nor named arguments, but I expect those features to be implemented relatively soon.

To showcase this, I have migrated the `Range` and `Choice` constraints. The example presented in #38096 works with this PR.

```php
#[Assert\Choice(
    choices: ['fiction', 'non-fiction'],
    message: 'Choose a valid genre.',
)]
private $genre;
```

A nice side effect is that we get a more decent constructor call in php 8 in situations where we directly instantiate constraints, for instance when attaching constraints to a form field via the form builder.

```php
$builder->add('genre, TextType::class, [
    'constraints' => [new Assert\Choice(
        choices: ['fiction', 'non-fiction'],
        message: 'Choose a valid genre.',
    )],
]);
```

The downside is that all those constructors generate the need for some boilerplate code that was previously abstracted away by the `Constraint` class.

The alternative to named arguments would be leaving the constructors as they are. That would basically mean that when declaring a constraint we would have to emulate the array that Doctrine annotations would crate. We would lose IDE support and the declarations would be uglier, but it would work.

```php
#[Assert\Choice([
    'choices' => ['fiction', 'non-fiction'],
    'message' => 'Choose a valid genre.',
])]
private $genre;
```

### Nested Attributes

PHP does not support nesting attributes (yet?). This is why I could not recreate composite annotations like `All` and `Collection`. I think it's okay if they're not included in the first iteration of attribute constraints and we can work on a solution in a later PR. Possible options:
* A later PHP 8.x release might give us nested attributes.
* We could find a way to flatten those constraints so we can recreate them without nesting.
* We could come up with a convention for a structure that lets us emulate nested attributes in userland.

### Repeatable attributes

In order to attach two instances of the same attribute class to an element, we explicitly have to allow repetition via the flag `Attribute::IS_REPEATABLE`. While we could argue if it really makes sense to do this for certain constraints (like `NotNull` for instance), there are others (like `Callback`) where having two instances with different configurations could make sense. On the other hand, the validator certainly won't break if we repeat any of the constraints and all other ways to configure constraints allow repetition. This is why I decided to allow repetition for all constraints I've marked as attributes in this PR and propose to continue with that practice for all other constraints.

### Migration Path

This PR only migrates a handful of constraints. My plan is to discuss the general idea with this PR first and use it as a blueprint to migrate the individual constraints afterwards. Right now, the migration path would look like this:

* Attach the `#[Attribute]` attribute.
* Recreate all options of the constraint as constructor arguments.
* Add test cases for constructor calls with named arguments to the test class of the constraint's validator.

Commits
-------

d1cb2d6354 [Validator] Constraints as php 8 Attributes.
2020-09-30 07:35:13 +02:00
Fabien Potencier
dbedd284f4 minor #38315 [Notifier] Add Dsn test case (jschaedl)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Notifier] Add Dsn test case

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | - <!-- 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 master.
-->

Commits
-------

6a0510d859 Add Dsn test case
2020-09-30 07:33:36 +02:00
Rodrigo Aguilera
c451c48258 [Console] Improve description for the help flag. 2020-09-30 07:13:00 +02:00
Alexander M. Turek
d1cb2d6354 [Validator] Constraints as php 8 Attributes. 2020-09-30 00:43:35 +02:00
Nicolas Grekas
55c17e1af7 [Validator] Add support for UUIDv6 in Uuid constraint 2020-09-29 08:56:19 +02:00
Fabien Potencier
d5ce0e3bc9 feature #38330 [Contracts] add TranslatableInterface (nicolas-grekas)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Contracts] add TranslatableInterface

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | #38319
| License       | MIT
| Doc PR        | -

An alternative to #38328:

- `TranslatableInterface` is added to symfony/contracts;
- `Translatable`, still in the component, implements it (and is not final as it makes no sense for a value-object)
- the `t()` function is kept in the component - it doesn't fit in the contracts IMHO;
- `Translatable::trans()` is not static anymore;
- the domain is nullable instead of defaulting to "messages";
- the `t()` function moved in the `Symfony\Component\Translation` namespace (for reference, the `s()` function from String is also namespaced.);
- the Twig extension is made strictly polymorphic: if you pass a Translatable, you cannot pass arguments/domain/count.

Commits
-------

9224f7ac5b [Contracts] add TranslatableInterface
2020-09-29 08:51:20 +02:00
Fabien Potencier
e159dff938 feature #38322 [Validator] Add Ulid constraint and validator (Laurent Clouet)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Validator] Add Ulid constraint and validator

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #38152
| License       | MIT

ULID constraint and validator as mentioned in ticket #38103
I checked for it ulid specifications https://github.com/ulid/spec

Commits
-------

e36fd559da [Validator] Add Ulid constraint and validator
2020-09-29 08:36:34 +02:00
Laurent Clouet
e36fd559da [Validator] Add Ulid constraint and validator 2020-09-29 08:36:29 +02:00
Fabien Potencier
3113fce1df feature #38333 [Uid] make UUIDv6 always return truly random nodes to prevent leaking the MAC of the host (nicolas-grekas)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Uid] make UUIDv6 always return truly random nodes to prevent leaking the MAC of the host

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

As explained in http://gh.peabody.io/uuidv6/, the wording of the UUIDv1 spec suggests that using the MAC of the host is preferred to compute the "node" field of UUIDs. This is what the uuid extension does, and the reason why the 12 last chars of the UUIDv1 it generates are stable. But this is a privacy leak. There are stories in the wild about how knowing the MAC has been abused in the past.

UUIDv6 prefers putting a secure random number there.

So here is the PR to do so.

Commits
-------

b9c61ca86c [Uid] make UUIDv6 always return truly random nodes to prevent leaking the MAC of the host
2020-09-29 08:35:35 +02:00
Nicolas Grekas
b9c61ca86c [Uid] make UUIDv6 always return truly random nodes to prevent leaking the MAC of the host 2020-09-29 08:01:16 +02:00
Nicolas Grekas
9224f7ac5b [Contracts] add TranslatableInterface 2020-09-28 15:05:58 +02:00
Jérémy Derussé
7a80e41cd8
Fix non-blocking store fallback 2020-09-28 12:11:42 +02:00
Nicolas Grekas
6349a1b2fc Merge branch '5.1'
* 5.1:
  [HttpFoundation] skip tests when the IANA server is throttling the list of status codes
  [DoctrineBridge] fix DBAL v3 compat
2020-09-27 16:15:50 +02:00
Nicolas Grekas
66758ad5dc Merge branch '4.4' into 5.1
* 4.4:
  [HttpFoundation] skip tests when the IANA server is throttling the list of status codes
  [DoctrineBridge] fix DBAL v3 compat
2020-09-27 16:14:57 +02:00
Nicolas Grekas
cbb0b1d54b Merge branch '3.4' into 4.4
* 3.4:
  [HttpFoundation] skip tests when the IANA server is throttling the list of status codes
  [DoctrineBridge] fix DBAL v3 compat
2020-09-27 16:14:06 +02:00
Nicolas Grekas
feaa9a6b2a [HttpFoundation] skip tests when the IANA server is throttling the list of status codes 2020-09-27 16:13:16 +02:00
Nicolas Grekas
cde8ffecce Merge branch '5.1'
* 5.1:
  [Filesystem] fix for PHP 8
  [Cache] fix DBAL v3 compat
  Bump Symfony version to 5.1.7
  Update VERSION for 5.1.6
  Update CHANGELOG for 5.1.6
  Bump Symfony version to 4.4.15
  Update VERSION for 4.4.14
  Update CHANGELOG for 4.4.14
  Bump Symfony version to 3.4.46
  Update VERSION for 3.4.45
  Update CONTRIBUTORS for 3.4.45
  Update CHANGELOG for 3.4.45
2020-09-27 16:05:32 +02:00
Nicolas Grekas
b93dea7244 Merge branch '4.4' into 5.1
* 4.4:
  [Filesystem] fix for PHP 8
  [Cache] fix DBAL v3 compat
  Bump Symfony version to 4.4.15
  Update VERSION for 4.4.14
  Update CHANGELOG for 4.4.14
  Bump Symfony version to 3.4.46
  Update VERSION for 3.4.45
  Update CONTRIBUTORS for 3.4.45
  Update CHANGELOG for 3.4.45
2020-09-27 16:02:37 +02:00
Nicolas Grekas
7529d131cc Merge branch '3.4' into 4.4
* 3.4:
  [Filesystem] fix for PHP 8
2020-09-27 15:54:16 +02:00
Nicolas Grekas
a4324447f1 [Filesystem] fix for PHP 8 2020-09-27 15:07:29 +02:00
Jan Schädlich
6a0510d859 Add Dsn test case 2020-09-27 14:45:53 +02:00
Nicolas Grekas
911e120fa4 Merge branch '3.4' into 4.4
* 3.4:
  [Cache] fix DBAL v3 compat
  Bump Symfony version to 3.4.46
  Update VERSION for 3.4.45
  Update CONTRIBUTORS for 3.4.45
  Update CHANGELOG for 3.4.45
2020-09-27 14:40:39 +02:00
Nicolas Grekas
3d1ed2e90d [Cache] fix DBAL v3 compat 2020-09-27 14:33:10 +02:00
Jonas Hünig
91a44524ff [HttpFoundation][Cache][Messenger] Replace redis "DEL" commands with "UNLINK" 2020-09-27 12:41:29 +02:00
Fabien Potencier
176262b3b9 Bump Symfony version to 5.1.7 2020-09-27 06:36:47 +02:00
Fabien Potencier
81bcd90f08 Update VERSION for 5.1.6 2020-09-27 06:33:19 +02:00
Fabien Potencier
08e27e9f03 Bump Symfony version to 4.4.15 2020-09-27 06:29:46 +02:00
Fabien Potencier
9e8f2e7db6 Update VERSION for 4.4.14 2020-09-27 06:25:44 +02:00
Fabien Potencier
2abc465335 Merge branch '5.1'
* 5.1:
  Fix wrong merge
2020-09-27 06:23:47 +02:00
Fabien Potencier
46e609b262 Fix wrong merge 2020-09-27 06:23:37 +02:00
Fabien Potencier
9a774ede48 Bump Symfony version to 3.4.46 2020-09-27 06:03:03 +02:00
Fabien Potencier
bc38373380 Update VERSION for 3.4.45 2020-09-27 05:46:58 +02:00
Fabien Potencier
6ca92258d7 Merge branch '5.1'
* 5.1:
  [ErrorHandler] Return false directly and remove unused variable
  [OptionsResolver] Assert that the error type is valid in deprecations test
  [OptionsResolver] Fix deprecation message access
  [HttpClient] Allow bearer token with colon
  [Form] Fix custom formats deprecation with HTML5 widgets
  [Translator] Optional Intl dependency
  [Contracts][Translation] Optional Intl dependency
  [ErrorHandler] Escape JSON encoded log context
  update missing translations arabic
  [Yaml] simplify the test
  fix test by letting mock throw the actual expected exception
2020-09-27 05:44:38 +02:00
Fabien Potencier
5685496974 Merge branch '4.4' into 5.1
* 4.4:
  [ErrorHandler] Return false directly and remove unused variable
  [OptionsResolver] Assert that the error type is valid in deprecations test
  [HttpClient] Allow bearer token with colon
  [Form] Fix custom formats deprecation with HTML5 widgets
  [Translator] Optional Intl dependency
  [Contracts][Translation] Optional Intl dependency
  [ErrorHandler] Escape JSON encoded log context
  update missing translations arabic
  [Yaml] simplify the test
  fix test by letting mock throw the actual expected exception
2020-09-27 05:44:28 +02:00
Fabien Potencier
55a450d827 Merge branch '3.4' into 4.4
* 3.4:
  update missing translations arabic
  [Yaml] simplify the test
  fix test by letting mock throw the actual expected exception
2020-09-27 05:36:23 +02:00
Fabien Potencier
a6aa08e166 feature #38296 [lock] Provides default implementation when store does not supports the behavior (jderusse)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[lock] Provides default implementation when store does not supports the behavior

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| Tickets       | /
| License       | MIT
| Doc PR        | /

All stores does not provide the same behaviors. Some are blocking, some allows shared Locks, ...
Issue is: When people use `lock` to use a behavior that is not supported by the store, they get an `UnsuportedException`, but they don't have any way to know if the store supports or not the behavior they want to use.

ie: when using the FrameworkBundle
```yaml
framework:
    lock: '%env(LOCK_DSN)%'
```
User (or bundle) can't use safely `$lock->acquire(true)` or `$lock->acquireRead()`.

Given it's very easy to provide an fallback implementation to those behavior, this PR
- use fallback implementation when store does not support the behavior
- deprecate the RetryTillSaveStore (not needed anymore)

Commits
-------

575b391b9b [lock] Provides default implementation when store does not supports the behavior
2020-09-27 05:25:42 +02:00
Jérémy Derussé
575b391b9b [lock] Provides default implementation when store does not supports the behavior 2020-09-27 05:25:36 +02:00
Fabien Potencier
934b125dff feature #38298 [Notifier] Add Sendinblue notifier. (ptondereau)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Notifier] Add Sendinblue notifier.

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | no
| New feature?  | yes <!-- 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        | todo <!-- required for new features -->

Add Sendinblue SMS notifier bridge.

Commits
-------

e7300a8580 Add Sendinblue notifier.
2020-09-27 05:14:32 +02:00
Pierre Tondereau
e7300a8580 Add Sendinblue notifier. 2020-09-26 11:58:00 +02:00
Fabien Potencier
9e4f511cbf Fix CS 2020-09-26 07:31:43 +02:00
Fabien Potencier
013bbcc23e minor #38303 [Messenger] Fix misleading comment about time-limit (sylfabre)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Fix misleading comment about time-limit

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

The current explanation of the time-limit option of the `messenger:consume` command is misleading as it lets you think that this is an enforced hard limit.

For instance, you may think that a command started with `--time-limit=10` will stop once 10 seconds are elapsed, no matter what.

Actually, two things happen:
- Once 10 seconds have elapsed, then the worker won't receive and handle any other message
- The worker will keep running until the currently handled message is fully handled so it can last way longer than 10 seconds, then it will stop.

I'm not sure this is behavior is actually a bug or not, but the current documentation does not describe the current behavior

Commits
-------

21176646e9 [Messenger] Fix misleading comment about time-limit
2020-09-26 07:30:40 +02:00
Titouan Galopin
0ba206420e [Translation] Allow Translatable objects to be used as strings 2020-09-25 18:10:29 +02:00
Sylvain Fabre
21176646e9 [Messenger] Fix misleading comment about time-limit 2020-09-25 15:58:44 +02:00
Thomas Calvet
3933957d1a [ErrorHandler] Return false directly and remove unused variable 2020-09-25 10:51:35 +02:00
Thomas Calvet
926d18f2f9 [OptionsResolver] Assert that the error type is valid in deprecations test 2020-09-24 18:40:22 +02:00
Thomas Calvet
232af423aa [OptionsResolver] Fix deprecation message access 2020-09-24 18:12:55 +02:00
Fabien Potencier
2bdcf4ac8f feature #36326 [Validator] Add invalid datetime message in Range validator (przemyslaw-bogusz)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Validator] Add invalid datetime message in Range validator

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

When the validated value is invalid (it isn't a number nor a datetime), but `min` or `max` option indicate that the `Range` constraint is being used to validate a datetime, the displayed message will be `This value should be a valid datetime` instead of `This value should be a valid number`. This PR replaces #35998.

Commits
-------

c77730699e [Validator] Add invalid datetime message in Range validator
2020-09-24 16:49:32 +02:00
Przemysław Bogusz
c77730699e [Validator] Add invalid datetime message in Range validator 2020-09-24 16:49:16 +02:00
Fabien Potencier
59f712475b feature #38243 [HttpKernel] Auto-register kernel as an extension (HypeMC)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[HttpKernel] Auto-register kernel as an extension

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Symfony already supports having the kernel as an extension. This is evident by the fact that the [`config:dump-reference` and `debug:config`](https://github.com/symfony/symfony/pull/36186) commands check whether the kernel implements the `ExtensionInterface`. Nonetheless, it's still required to register the kernel manually as an extension.

With this PR the kernel will be automatically registered as an extension if it implements the `ExtensionInterface`. This is the same logic as when the kernel implements the `CompilerPassInterface`.

Commits
-------

9c34980869 Auto-register kernel as an extension
2020-09-24 16:31:11 +02:00
Fabien Potencier
5c48235e71 feature #38277 [Mailer] Added Sendinblue bridge (drixs6o9)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Mailer] Added Sendinblue bridge

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT
| Doc PR        | [https://github.com/symfony/symfony-docs/pull/14272](https://github.com/symfony/symfony-docs/pull/14272)
| Recipe | [https://github.com/symfony/recipes/pull/822](https://github.com/symfony/recipes/pull/822)

<!--
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.
-->

N.B. I had a little help from [Pierre TONDEREAU](https://github.com/ptondereau) for the API.

Commits
-------

836a20350b [Mailer] Added Sendinblue bridge
2020-09-24 16:10:39 +02:00
drixs6o9
836a20350b [Mailer] Added Sendinblue bridge 2020-09-24 16:10:25 +02:00
Fabien Potencier
6e9949b9b2 feature #35956 [Form] Added "html5" option to both MoneyType and PercentType (romaricdrigon)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Form] Added "html5" option to both MoneyType and PercentType

| Q             | A
| ------------- | ---
| Branch?       | master for features
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       |  -
| License       | MIT
| Doc PR        | TBD

Hello,

In the same way that [NumberType](https://symfony.com/doc/current/reference/forms/types/number.html) offers a `html5` option to render a `number` input instead of a `text` input, this PR adds the same option to both `MoneyType` and `PercentType`. Number inputs offer a better UI, especially on mobile (specific keyboard), and they accept extra HTML attributes, such as `max=100`, which are quite useful.

The challenge is that `number` inputs need a "raw" value, nor formatted nor localized.
Format is described here https://www.w3.org/TR/html51/sec-forms.html#date-time-and-number-formats (non-normative, but tested on a few browsers). It matches number formatting for `en` locale (which is great, since it is the one provided by Symfony Intl polyflil), without grouping.

Implementation was done in a manner similar to `NumberType` for `MoneyType`.
`PercentType` required to modify `PercentToLocalizedStringTransformer` too.

As a bonus, `PercentType` had no tests at all, I added a few.

I wanted to get some feedback on the idea first, remaining steps:
 - update `CHANGELOG.md`
 - update the doc

Commits
-------

f7312a48ea [Form] Added "html5" option to both MoneyType and PercentType
2020-09-24 15:56:19 +02:00
Fabien Potencier
2e819f3ba9 Revert "feature #33381 [Form] dispatch submit events for disabled forms too (xabbuh)"
This reverts commit dc63d712ab, reversing
changes made to 59ae592909.
2020-09-24 15:50:42 +02:00
Romaric Drigon
f7312a48ea [Form] Added "html5" option to both MoneyType and PercentType 2020-09-24 15:48:47 +02:00
Nicolas Grekas
caab0f1b4f bug #38248 [HttpClient] Allow bearer token with colon (stephanvierkant)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[HttpClient] Allow bearer token with colon

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

The JetBrains Hub (YouTrack API) creates tokens with a `perm:` prefix. This doesn't work right now, because HttpClient doesn't allow a colon in the bearer token.

As far as I can see, there is no reason to disallow the use of the semicolon in the bearer token, so this PR fixes it.

Example of a token: `perm:c3RlcGhhbg==.NTUtMw==.NiZw16agafhsQAShTvclhb78hyJh2H`

Commits
-------

82ed1ec20a [HttpClient] Allow bearer token with colon
2020-09-24 15:25:52 +02:00
Stephan Vierkant
82ed1ec20a [HttpClient] Allow bearer token with colon 2020-09-24 15:25:24 +02:00
Fabien Potencier
9e7e2a87c9 bug #37837 [Form] Fix custom formats deprecation with HTML5 widgets (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] Fix custom formats deprecation with HTML5 widgets

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | https://github.com/symfony/symfony/issues/37698
| License       | MIT
| Doc PR        | -

1. The options resolver only show the deprecations for user defined (overidden) options.
2. The default value of the `html5` option is enough to pass the logical condition of the callback.

That means that only setting the `format` option (like in the reproducer) does not trigger the deprecation while it should. I think we need a feature in the options resolver component to handle those kind of cases 🤷‍♂️

Meanwhile, we can fix the issue by "deprecating" all the concerned options of the logical condition of the callback.

Commits
-------

d28182f99b [Form] Fix custom formats deprecation with HTML5 widgets
2020-09-24 12:57:15 +02:00
Kevin Bond
f20a318f37 [String] allow passing null to string functions 2020-09-24 11:57:23 +02:00
Thomas Calvet
d28182f99b [Form] Fix custom formats deprecation with HTML5 widgets 2020-09-24 11:52:40 +02:00
Fabien Potencier
d9bcb64fc0 bug #38283 [Translator] Optional Intl dependency (ro0NL)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Translator] Optional Intl dependency

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38279
| 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 master.
-->

i decided to cast $locale at construct, given its property is documented to be string

Commits
-------

a2eb263457 [Translator] Optional Intl dependency
2020-09-24 11:40:07 +02:00
Roland Franssen
a2eb263457 [Translator] Optional Intl dependency 2020-09-24 11:40:01 +02:00
Robin Chalas
02be26a39c bug #38271 [ErrorHandler] Escape JSON encoded log context (ro0NL)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Escape JSON encoded log context

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | eno <!-- 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 -->

Fixes https://github.com/symfony/symfony/issues/35569#issuecomment-581317792
Fixes https://github.com/symfony/symfony/issues/35569#issuecomment-696767559

The initial issue remains though (the webprofiler showing the logs tab in the exception panel), i'll try to give it another look sometime, but this is a quick win nevertheless.

cc @yceruto

Commits
-------

5572a68ed7 [ErrorHandler] Escape JSON encoded log context
2020-09-24 11:16:22 +02:00
Christian Flothmann
9323b75603 Merge branch '5.1' into master
* 5.1:
  fix compatibility with Doctrine DBAL 3
2020-09-24 10:13:58 +02:00
Christian Flothmann
79686c63ef Merge branch '4.4' into 5.1
* 4.4:
  fix compatibility with Doctrine DBAL 3
2020-09-24 09:56:38 +02:00
Christian Flothmann
a03885168e fix compatibility with Doctrine DBAL 3 2020-09-24 08:54:33 +02:00
Roland Franssen
5572a68ed7
[ErrorHandler] Escape JSON encoded log context 2020-09-22 18:24:16 +02:00
Fabien Potencier
7cb8ba585d Fix CS 2020-09-22 11:22:20 +02:00
Fabien Potencier
90056b871a feature #38176 [Config] Adding the "info" to a missing option error messages (weaverryan)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Config] Adding the "info" to a missing option error messages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | None
| License       | MIT
| Doc PR        | Not needed

New error:

<img width="1063" alt="Screen Shot 2020-09-13 at 10 51 32 AM" src="https://user-images.githubusercontent.com/121003/93021186-6329ff00-f5af-11ea-83c6-98581b12ef75.png">

I used the missing `class` just as an example. I hit this while building a new feature in Symfony. It occurred to me that if, for example, you activate some feature in config and that feature has a required sub-key, why not print the `info()` for that sub key to make it discoverable?

Commits
-------

3780f122c7 adding the description to a missing option
2020-09-22 11:20:33 +02:00
Zairig Imad
76a47b38e2 update missing translations arabic 2020-09-22 10:56:57 +02:00
Christian Flothmann
593a94c932 replace expectExceptionMessageRegExp() with expectExceptionMessageMatches() 2020-09-20 09:51:18 +02:00
Christian Flothmann
ccecffeff6 Merge branch '5.1' into master
* 5.1: (25 commits)
  stop using the deprecated at() PHPUnit matcher
  fix lowest allowed version of the HTTP client contracts
  fix lowest allowed version for the PHPUnit bridge
  fix merge
  fix merge
  drop logger mock in favor of using the BufferingLogger
  catch ValueError thrown on PHP 8
  [Yaml Parser] Fix edge cases when parsing multiple documents
  fix parsing comments not prefixed by a space
  [Translator] Make sure a null locale is handled properly
  deal with errors being thrown on PHP 8
  loadRoutes shoud receive RoutingPhpFileLoader
  [Cache] Allow cache tags to be objects implementing __toString()
  [HttpKernel] Do not override max_redirects option in HttpClientKernel
  Log notice when no entry point is configured
  remove superfluous cast
  [HttpClient] Support for CURLOPT_LOCALPORT.
  Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
  Fixed exception message formatting
  [FrameworkBundle] Fix error in xsd which prevent to register more than one metadata
  ...
2020-09-20 09:20:17 +02:00
HypeMC
9c34980869 Auto-register kernel as an extension 2020-09-20 02:47:54 +02:00
Christian Flothmann
2a76d51da5 minor #38238 [Validator] stop using the deprecated at() PHPUnit matcher (xabbuh)
This PR was merged into the 5.1 branch.

Discussion
----------

[Validator] stop using the deprecated at() PHPUnit matcher

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

0d0f92b7c6 stop using the deprecated at() PHPUnit matcher
2020-09-18 20:37:45 +02:00
Christian Flothmann
0d0f92b7c6 stop using the deprecated at() PHPUnit matcher 2020-09-18 20:24:55 +02:00
Christian Flothmann
f88caa81da minor #38237 [HttpClient] fix lowest allowed version of the HTTP client contracts (xabbuh)
This PR was merged into the 5.1 branch.

Discussion
----------

[HttpClient] fix lowest allowed version of the HTTP client contracts

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

fixes `deps=low` builds for the HttpClient component by making sure that the installed version of the HTTP client contracts package contains the changes from #37831

Commits
-------

edca581889 fix lowest allowed version of the HTTP client contracts
2020-09-18 19:14:44 +02:00
Christian Flothmann
edca581889 fix lowest allowed version of the HTTP client contracts 2020-09-18 18:31:55 +02:00
Alexander M. Turek
34dbf01618 [VarDumper] Support for ReflectionAttribute. 2020-09-18 18:10:35 +02:00
Christian Flothmann
fb7ee79dba fix lowest allowed version for the PHPUnit bridge 2020-09-18 18:07:05 +02:00
Christian Flothmann
bb64fc9c3b [Yaml] simplify the test 2020-09-18 17:58:55 +02:00
Christian Flothmann
9610daf1bc fix merge 2020-09-18 17:39:40 +02:00
Christian Flothmann
4ee591bec6 Merge branch '4.4' into 5.1
* 4.4:
  fix merge
  drop logger mock in favor of using the BufferingLogger
  catch ValueError thrown on PHP 8
  [Yaml Parser] Fix edge cases when parsing multiple documents
  fix parsing comments not prefixed by a space
  [Translator] Make sure a null locale is handled properly
  deal with errors being thrown on PHP 8
  [Cache] Allow cache tags to be objects implementing __toString()
  [HttpKernel] Do not override max_redirects option in HttpClientKernel
  remove superfluous cast
  [HttpClient] Support for CURLOPT_LOCALPORT.
  Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
  Fixed exception message formatting
  [FrameworkBundle] Fix error in xsd which prevent to register more than one metadata
  [Console] work around disabled putenv()
  [PhpUnitBridge] Fix error with ReflectionClass
  [HttpClient][HttpClientTrait] don't calculate alternatives if option is auth_ntlm
  Change 'cache_key' to AbstractRendererEngine::CACHE_KEY_VAR
  Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
2020-09-18 16:27:32 +02:00
Christian Flothmann
50f37f0ccc fix merge 2020-09-18 16:07:46 +02:00
Christian Flothmann
d1353c0602 Merge branch '3.4' into 4.4
* 3.4:
  drop logger mock in favor of using the BufferingLogger
  [Yaml Parser] Fix edge cases when parsing multiple documents
  fix parsing comments not prefixed by a space
2020-09-18 15:54:02 +02:00
Christian Flothmann
f6f162dcdd fix test by letting mock throw the actual expected exception 2020-09-18 15:46:38 +02:00
Christian Flothmann
86a7e3289b drop logger mock in favor of using the BufferingLogger 2020-09-18 14:06:50 +02:00
Alexander M. Turek
14642fb6dd Added missing changelog entries. 2020-09-18 12:11:46 +02:00
Christian Flothmann
e299544639 minor #38231 [Validator] catch ValueError thrown on PHP 8 (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] catch ValueError thrown on PHP 8

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

see php/php-src@95f4ee38bb

Commits
-------

fb0d7beaaf catch ValueError thrown on PHP 8
2020-09-18 12:06:31 +02:00
Fabien Potencier
2eeb75dd6f bug #38228 [Yaml Parser] Fix edge cases when parsing multiple documents (digilist)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml Parser] Fix edge cases when parsing multiple documents

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

I identified some edge cases when parsing multiple YAML documents with the same parser instance, because the totalNumberOfLines was not reset and so any subsequent parsing considered the number of lines of the first document.

Consider this document:
```yaml
a:
    b: |
        row
        row2
c: d
```

Normally, `a.b` would be parsed as `row\nrow2\n`. But if the parser parsed a shorter document before, the `\n` after row2 was missing, as the parser considered it as the end of the file (that's why the `c: d` at the end is important).

So this fix resets the `totalNumberOfLines` in the YAML parser to `null` so that any subsequent parsing will initialize the value for the new document and does not use the file length of the first parsed document.

I stumbled upon this because of a flickering unit test that was using the translation component. Sometimes the translated string contained a trailing `\n` and sometimes not. In the end it was based on this bug, as the translation files were not loaded in the same order every time (not really sure why. It's somehow related to the cache state, but even with a warm cache it was not totally deterministic).

Commits
-------

012ee4fa59 [Yaml Parser] Fix edge cases when parsing multiple documents
2020-09-18 12:04:33 +02:00
Christian Flothmann
fb0d7beaaf catch ValueError thrown on PHP 8 2020-09-18 11:45:13 +02:00
Christian Flothmann
74f41f3313 bug #38229 [Yaml] fix parsing comments not prefixed by a space (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] fix parsing comments not prefixed by a space

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38223
| License       | MIT
| Doc PR        |

Commits
-------

35b223aaa4 fix parsing comments not prefixed by a space
2020-09-18 11:29:40 +02:00
Markus Fasselt
012ee4fa59 [Yaml Parser] Fix edge cases when parsing multiple documents 2020-09-18 11:21:31 +02:00
Christian Flothmann
35b223aaa4 fix parsing comments not prefixed by a space 2020-09-18 11:15:17 +02:00
Fabien Potencier
785a06653c bug #38127 [Translator] Make sure a null locale is handled properly (jschaedl)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Translator] Make sure a null locale is handled properly

| 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 #38124  <!-- 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 master.
-->

Commits
-------

080ea5a0f7 [Translator] Make sure a null locale is handled properly
2020-09-18 10:46:54 +02:00
Jan Schädlich
080ea5a0f7 [Translator] Make sure a null locale is handled properly 2020-09-18 10:46:47 +02:00
Christian Flothmann
948e107a1b Merge branch '3.4' into 4.4
* 3.4:
  deal with errors being thrown on PHP 8
2020-09-18 10:35:10 +02:00
Christian Flothmann
6175d528e8 deal with errors being thrown on PHP 8 2020-09-18 10:10:16 +02:00
Fabien Potencier
791761277d bug #38221 [Cache] Allow cache tags to be objects implementing __toString() (lstrojny)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Cache] Allow cache tags to be objects implementing __toString()

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | maybe
| New feature?  | maybe
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

`\Symfony\Contracts\Cache\CacheInterface::get(string $key, …)` implicitly converts objects with `__toString` while `CacheItem::tag()` will throw an exception. That’s a bit of a sharp edge.

Commits
-------

c2c03e050f [Cache] Allow cache tags to be objects implementing __toString()
2020-09-17 12:06:33 +02:00
Lars Strojny
c2c03e050f [Cache] Allow cache tags to be objects implementing __toString() 2020-09-17 12:06:27 +02:00
Fabien Potencier
2f67bf3a37 bug #38212 [HttpKernel] Do not override max_redirects option in HttpClientKernel (dmolineus)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Do not override max_redirects option in HttpClientKernel

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38207
| License       | MIT
| Doc PR        | -

As [proposed](https://github.com/symfony/symfony/issues/38207#issuecomment-693382336) by @nicolas-grekas this pull request removes the `max_redirects` setting in the `\Symfony\Component\HttpKernel\HttpClientKernel::handle` method.

It solves the issue that requests made by the `\Symfony\Component\HttpClient\CachingHttpClient` wouldn't follow redirects as described in the linked issue.

Commits
-------

981a11beed [HttpKernel] Do not override max_redirects option in HttpClientKernel
2020-09-17 12:05:06 +02:00
David Molineus
981a11beed [HttpKernel] Do not override max_redirects option in HttpClientKernel 2020-09-17 12:05:00 +02:00
Wouter de Jong
68f891ff65 Log notice when no entry point is configured 2020-09-17 11:39:20 +02:00
Fabien Potencier
8d450130e0 feature #38182 [HttpClient] Added RetryHttpClient (jderusse)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[HttpClient] Added RetryHttpClient

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | TODO

This PR adds a new HttpClient decorator to automatically retry failed requests.

When calling API, A very small % of requests are expected to timeout due to transient network issues. Some providers like AWS recommends retrying these requests and use a lower connection timeout so that the clients can fail fast and retry.

I used the almost the same configuration as Messenger
```yaml
framework:
    http_client:
        default_options:
            retry_failed:
                enabled: true // default false
                decider_service: null
                backoff_service: null
                http_codes: [423, 425, 429, 500, 502, 503, 504, 507, 510]
                max_retries: 3
                delay: 1000
                multiplier: 2
                max_delay: 0
                response_header: true
        scoped_clients:
            github:
                scope: 'https://api\.github\.com'
                retry_failed:
                    max_delay: 2000
```

Commits
-------

712ac5999d [HttpClient] Added RetryHttpClient
2020-09-17 11:07:30 +02:00
Jérémy Derussé
712ac5999d [HttpClient] Added RetryHttpClient 2020-09-17 11:07:22 +02:00
Fabien Potencier
86c7113994 Merge branch '5.1'
* 5.1:
  [String] improve slugger's portability accross implementations of iconv()
  Fix errors parsing in FirebaseTransport
2020-09-17 09:22:48 +02:00
Wouter de Jong
afdd805b1c [Security] Added login throttling feature 2020-09-17 07:36:46 +02:00
Fabien Potencier
ad226185af bug #38215 [HttpClient] Support for CURLOPT_LOCALPORT (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] Support for CURLOPT_LOCALPORT

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | https://github.com/symfony/symfony/issues/38081#issuecomment-688166943
| License       | MIT
| Doc PR        | N/A

Commits
-------

45fa6b8f24 [HttpClient] Support for CURLOPT_LOCALPORT.
2020-09-17 06:58:25 +02:00
Fabien Potencier
c965be8aaa minor #38214 Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3) (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3)

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | #37564
| License       | MIT
| Doc PR        | N/A

This is #38103 on the 4.4 branch.

Commits
-------

73647e5ffe Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
2020-09-17 06:54:14 +02:00
Fabien Potencier
ee0f5a2a4d Merge branch '3.4' into 4.4
* 3.4:
  remove superfluous cast
  Change 'cache_key' to AbstractRendererEngine::CACHE_KEY_VAR
  Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3).
2020-09-17 06:53:48 +02:00
Tom Klingenberg
05a9660a1e remove superfluous cast
in YAML component.

minor.
2020-09-17 01:52:20 +02:00
Alexander M. Turek
45fa6b8f24 [HttpClient] Support for CURLOPT_LOCALPORT. 2020-09-17 00:10:08 +02:00
Alexander M. Turek
73647e5ffe Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3). 2020-09-16 23:25:34 +02:00
Fabien Potencier
83910df242 feature #38007 [Amqp] Add amqps support (vasilvestre-OS)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Amqp] Add amqps support

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #37002
| License       | MIT
| Doc PR        | symfony/symfony-docs#... TODO <!-- required for new features -->

### Cases

_Case 1 (simple):_
I want to set up my app with a locally installed amqp broker supporting SSL. No auth is needed, no vhost, only SSL certificate file located at /etc/ssl/cafile.
'amqps://'

_Case 2 (complex):_
I use a special port, special file locations for SSL. I pass it through php.ini or configuration.

### Questions

1) Actually AmqpTransportFactory use `supports` function to see if 'amqp://' is contained in dsn string and accept cacert argument to use SSL
How are we supposed to cover AMQPS's case in your opinion?

cacert argument is settable through php.ini and code.

### Observations

I think this PR should aim at:

- Having correct defaults ssl values in case of 'amqps://' eg : case 1
- Being able to pass cacert file path and verify argument. eg : case 2
- Test: but test what?

#### EDIT

As discuted with @nicolas-grekas, we should check that cacert is existing in php.ini or is passed in configuration and throw an exception to give a nice feedback about what's wrong. Php amqp lib isn't actually precise about why it fails when you forget it.

### Steps

- [x] Ensure AMQPS can be used out of the box without DSN.
- [x] If not, try to modify vendor directly to fix it.
- [x] Modify vendor to make AMQPS works with DSN.
- [x] Check cacert to throw a better exception.
- [x] Add test related to last point.
- [ ] Pass CI

Commits
-------

99fc3f3b89 [Amqp] Add amqps support
2020-09-16 15:50:25 +02:00
Fabien Potencier
7cd5bbf458 feature #37546 [RFC] Introduce a RateLimiter component (wouterj)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[RFC] Introduce a RateLimiter component

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Refs #37444
| License       | MIT
| Doc PR        | tbd

Based on the discussions in #37444, I decided to write a general purpose RateLimiter component. This implementation uses the token bucket algorithm, inspired by the [Go's time/rate](3af7569d3a/rate/rate.go) library and the [PHP `bandwidth-throttle/token-bucket` package](https://github.com/bandwidth-throttle/token-bucket) (which is [unmaintained for years](https://github.com/bandwidth-throttle/token-bucket/issues/19)).

### Usage

The component has two main methods:

* `Limiter::reserve(int $tokens, int $maxTime)`, allocates `$tokens` and returns a `Reservation` containing the wait time. Use this method if your process wants to wait before consuming the token.
* `Limiter::consume(int $tokens)`, checks if `$tokens` are available now and discards the reservation if that's not the case. Use this method if you want to skip when there are not enough tokens at this moment.

The component uses the Lock component to make sure it can be used in parallel processes.

Example:

```php
<?php

namespace App\EventListener;

use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpKernel\Event\RequestEvent;
use Symfony\Component\RateLimiter\LimiterFactory;

class LimitListener
{
    private $limiterFactory;

    public function __construct(LimiterFactory $apiLimiterFactory)
    {
        $this->limiterFactory = $apiLimiterFactory;
    }

    public function __invoke(RequestEvent $event)
    {
        $ip = $event->getRequest()->getClientIp();

        $limiter = $this->limiterFactory->createLimiter(preg_replace('/[^a-zA-Z0-9]/', '-', $ip));
        if (!$limiter->consume()) {
            $event->setResponse(new Response('Too many requests', 429));
        }
    }
}
```

### Usefullness of the component

I think a generic rate limiter is usefull in quite some places:

* Add a login throttling feature in Symfony
* <s>Rate limiting outgoing API calls (e.g. HttpClient), to prevent hitting upstream API limits.</s> See #37471 (and https://blog.heroku.com/rate-throttle-api-client )
* Allowing users to easily implement API rate limits in their own Symfony-based APIs.

### State of the art

There are some rate limiting packages in PHP, but I think there is no precendent for this component:

* [`graham-campbell/throttle`](https://github.com/GrahamCampbell/Laravel-Throttle) is heavily relying on Laravel. It is however very popular, proofing there is a need for such feature
* [`nikolaposa/rate-limit`](https://github.com/nikolaposa/rate-limit) does not implement reservation of tokens and as such less feature complete. Also its architecture combines the rate limiter and storage, making it harder to implement different storages.

### Todo

If it is agreed that this component can bring something to Symfony, it needs some more love:

* [x] Add more tests
* [x] Integrate with the FrameworkBundle
* [x] Add sliding window implementation
* [x] Add integration with the Security component
* <s>Maybe add more storage implementations? I didn't want to duplicate storage functionalities already existing in the Lock and Cache component, thus I for now focused mostly on integrating the Cache adapters. But maybe a special Doctrine adapter makes sense?</s>

Commits
-------

67417a693e [RFC] Introduce a RateLimiter component
2020-09-16 15:45:08 +02:00
Wouter de Jong
67417a693e [RFC] Introduce a RateLimiter component 2020-09-16 15:45:01 +02:00
Fabien Potencier
128bbd11eb feature #38193 Make RetryTillSaveStore implements the SharedLockStoreInterface (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Make RetryTillSaveStore implements the SharedLockStoreInterface

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

The `RetryTillSaveStore` decorates a non blocking store (ie. `RedisStore`) to make it blockable.
The issue is: if the decorate store manage SharedLock, the Decorator does not implements this interface. It's currently not possible to get both `blocking` and `sharable` store.

Commits
-------

a0321e66c9 Make RetryTillSaveStore implements the SharedLockStoreInterface
2020-09-16 14:38:44 +02:00
Fabien Potencier
c34865f175 feature #37968 [Form] Add new way of mapping data using callback functions (yceruto)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Form] Add new way of mapping data using callback functions

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| Tickets       | Fix #37597 (partially)
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/14241

Replaces https://github.com/symfony/symfony/pull/37614

## What this solves

Objects and Forms have different mechanisms for structuring data. When you build an object model with a lot of business logic it's valuable to use these mechanisms to better collect the data and the behavior that goes with it. Doing so leads to variant schemas; that is, the object model schema and the form schema don't match up.

You still need to transfer data between the two schemas, and this data transfer becomes a complexity in its own right. If the objects know about the form structure, changes in one tend to ripple to the other.

Currently, the Data Mapper layer separates the objects from the form, transfering data between the two and also isolating them from each other. That's fine, but at present the default data mapper has a limitation: _it's very tied to one property path_ (see [`PropertyPathMapper`](https://github.com/symfony/symfony/blob/5.1/src/Symfony/Component/Form/Extension/Core/DataMapper/PropertyPathMapper.php)).

That said, you'll have to write your own data mapper in the following situations:
 * When the property path differs for reading and writing
 * When several form fields are mapped to a single method
 * When you need to read data based on the model's state
 * When the mapping of the model depends on the submitted form data
 * ...

Also, when we create a new data mapper, we usually forget about checking the status of the given data and forms. Whether the data is empty or not; throw an exception if the given data is not an object/array and whether the form field is submitted/synchronized/disabled or not. Not doing that could lead to unwanted behavior.

## What this proposes

Create a new way to write and read values to/from an object/array using callback functions. This feature would be tied to each form field and would also mean a new way of mapping data, but a very convenient one, in which it won't be necessary to define a new data mapper and take into account all what it would imply when you only need to map one field in a different manner or perhaps in only one direction (writing or reading the value).

This PR adds two new options for each form type: `getter` and `setter`, allowed to be `null` or `callable`:
```php
$builder->add('name', TextType::class, [
    'getter' => function (Person $person, FormInterface $form): string {
        return $person->firstName().' '.$person->lastName();
    },
    'setter' => function (Person &$person, ?string $name, FormInterface $form): void {
        $person->rename($name);
    },
]);
```
This would give us the same possibilities as data mappers, but within the form field scope, where:
 * `$person` is the view data, basically the underlying data to the form.
 * `$form` is the current child form that is being mapped.
 * `$name` is the submitted data that belongs to that field.

These two callbacks will be executed following the same rules as for property paths before read and write any value (e.i. early return if empty data, skip mapping if the form field is not mapped or it's disabled, etc).

## What this also proposes

I based the implementation on solving this problem first:

> https://github.com/symfony/symfony/pull/37614#issuecomment-662957865
> [...] the property_path option defines the rules on how it's accessed. From there, the actual way it is accessed (direct property access, accessors, reflection, whatever) are hidden from view. All that matters is the property path (which is deduced from the name if not explicitly set). [...]

So splitting the default data mapper `PropertyPathMapper` into two artifacts: "[DataMapper](https://github.com/yceruto/symfony/blob/data_accessor/src/Symfony/Component/Form/Extension/Core/DataMapper/DataMapper.php)" and "[DataAccessor](https://github.com/yceruto/symfony/blob/data_accessor/src/Symfony/Component/Form/DataAccessorInterface.php)" would allow us adding multiple data accessors along the way (the code that varies in this case) without having to reinvent the wheel over and over again (the data mapper code).

You can also think about a new `ReflectionAccessor` for instance? or use this `CallbackAccessor` to map your form partially from an external API? yes, you could do it :)

Here is a view of the proposed changes:

![data_accessor](https://user-images.githubusercontent.com/2028198/91452859-16bf8f00-e84d-11ea-8564-d497c2f73730.png)

Where "DataMapper" will take care of common checks, iterates the given child forms, manages the form data and all what is needed for mapping a standard form, whereas "DataAccessor" will take care of how to read and write values to/from the underlying object or array.

## BC

The `PropertyPathMapper` is being deprecated in favor of `DataMapper` class, which uses the `PropertyPathAccessor` by default.

Although `DataMapper` is now the default for each compound form, the behavior must remains the same (tests prove it). So that if `getter` or `setter` option is null (they're by default) the `CallbackAccessor` will falls back to `PropertyPathAccessor` either for reading or writing values.

---

Sorry for the long description, but I think that sometimes it is necessary for too complex issues and big changes. Besides, now you know a little more about what these changes is about.

/cc @xabbuh as creator of [rich-model-forms-bundle](https://github.com/sensiolabs-de/rich-model-forms-bundle) and @alcaeus as you had worked on this issue.

WDYT?

Commits
-------

878effaf47 add new way of mapping data using callback functions
2020-09-16 14:32:39 +02:00
Jérémy Derussé
a0321e66c9
Make RetryTillSaveStore implements the SharedLockStoreInterface 2020-09-16 13:06:13 +02:00
Yonel Ceruto
878effaf47 add new way of mapping data using callback functions 2020-09-15 10:00:10 -04:00
Nicolas Grekas
21e4e320b4 [String] improve slugger's portability accross implementations of iconv() 2020-09-15 14:23:47 +02:00
Nicolas Grekas
0bb48df2b0 [String] allow translit rules to be given as closure 2020-09-15 14:13:10 +02:00
SenTisso
d3f909bff3 [Console] work around disabled putenv() 2020-09-15 09:58:55 +02:00
Nicolas Grekas
ae655bf6d4 bug #38190 [Notifier] Fix errors parsing in FirebaseTransport (jderusse)
This PR was merged into the 5.1 branch.

Discussion
----------

[Notifier] Fix errors parsing in FirebaseTransport

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

I noticed that, when parsing the response, this transport use `getHeader()` like a `string[]` instead of `string[][]`.

I did not test it and I'm not sure about this fix: could you have a look @Jeroeny ?

Commits
-------

2818e2cd43 Fix errors parsing in FirebaseTransport
2020-09-15 09:17:03 +02:00
Nicolas Grekas
61c1175d05 bug #38173 [HttpClient][HttpClientTrait] don't calculate alternatives if option is auth_ntlm (ybenhssaien)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[HttpClient][HttpClientTrait] don't calculate alternatives if option is auth_ntlm

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | no
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

If option is `auth_ntlm` an exception is thrown, `$alternatives` then is not used.

Commits
-------

ab1a96c999 [HttpClient][HttpClientTrait] don't calculate alternatives if option is auth_ntlm
2020-09-15 09:11:04 +02:00
Youssef BENHSSAIEN
ab1a96c999 [HttpClient][HttpClientTrait] don't calculate alternatives if option is auth_ntlm 2020-09-15 09:10:35 +02:00
Jérémy Derussé
2818e2cd43
Fix errors parsing in FirebaseTransport 2020-09-15 08:07:14 +02:00
Thibault RICHARD
1ff3e293e0 [Mailer] Mailjet - Allow using Reply-To with Mailjet API 2020-09-15 07:09:07 +02:00
vladyslavstartsev
4fcb41c3ba
Change 'cache_key' to AbstractRendererEngine::CACHE_KEY_VAR
The purpose of this change is to find all usages of AbstractRendererEngine::CACHE_KEY_VAR. Currently, if you search for AbstractRendererEngine::CACHE_KEY_VAR you will see only access to it, i.e. (`$view->vars[AbstractRendererEngine::CACHE_KEY_VAR]`), but you can't find it in write level. With this pull request you can see where is was used for write.
2020-09-14 19:22:49 +03:00
Fabien Potencier
28edd705e8 * 5.1:
[Messenger] Improve error message readability
  fix filename being cleaned up at end of tests
2020-09-14 17:02:31 +02:00
Fabien Potencier
2df87a36bd Merge branch '4.4' into 5.1
* 4.4:
  [Messenger] Improve error message readability
  fix filename being cleaned up at end of tests
2020-09-14 17:02:15 +02:00
Laurent VOULLEMIER
63bc620efa [Messenger] Improve error message readability
Since slashes are escaped, vhosts are not very readable.
2020-09-14 16:48:28 +02:00
Alexander M. Turek
ff47516ea0 Upgrade PHPUnit to 8.5 (php 7.2) and 9.3 (php >= 7.3). 2020-09-14 08:11:19 +02:00
Ryan Weaver
3780f122c7 adding the description to a missing option 2020-09-13 10:51:40 -04:00
Valentin
99fc3f3b89 [Amqp] Add amqps support 2020-09-13 07:20:39 +02:00
Fabien Potencier
3b1ab7bfac Merge branch '5.1'
* 5.1:
  Internal classes are not legacy.
  [HttpFoundation] Skip the cookie_max_age fixture on PHP 8.
  add choice_translation_domain tests to prevent further regressions
  Update validators.tr.xlf
2020-09-13 07:01:37 +02:00
Fabien Potencier
9fae49fb20 Merge branch '4.4' into 5.1
* 4.4:
  Internal classes are not legacy.
  [HttpFoundation] Skip the cookie_max_age fixture on PHP 8.
  add choice_translation_domain tests to prevent further regressions
  Update validators.tr.xlf
2020-09-13 07:01:27 +02:00
Fabien Potencier
f2e7158bc0 Merge branch '3.4' into 4.4
* 3.4:
  [HttpFoundation] Skip the cookie_max_age fixture on PHP 8.
  add choice_translation_domain tests to prevent further regressions
  Update validators.tr.xlf
2020-09-13 07:00:26 +02:00
Alexander M. Turek
d6d9b2927d [HttpFoundation] Skip the cookie_max_age fixture on PHP 8. 2020-09-12 22:41:00 +02:00
Fabien Potencier
f1f37a899c Fix CS 2020-09-12 10:28:26 +02:00
Jérôme Vasseur
20f316906e [RFC][HttpKernel][Security] Allowed adding attributes on controller arguments that will be passed to argument resolvers. 2020-09-12 10:22:10 +02:00
Jérémy Derussé
a7d51937f0 [RFC][lock] Introduce Shared Lock (or Read/Write Lock) 2020-09-12 07:27:01 +02:00
Fabien Potencier
8a89170284 Fix CHANGELOG 2020-09-12 07:23:15 +02:00
Fabien Potencier
9b84bc0e78 feature #37759 [Messenger] - Add option to confirm message delivery in Amqp connection (scyzoryck)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] - Add option to confirm message delivery in Amqp connection

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Hello! My first PR here.

Sometimes we need to be sure that messages are delivered to Amqp. To make it work we need to wait for the confirmation from the Amqp server. So let's wait for it confirmation if confirmation timeout is defined. Default behaviour are not modified - waiting for confirmation will impact performance of sending message.

Commits
-------

5682d76b2a Messenger - Add option to confirm message delivery in Amqp connection
2020-09-12 07:22:34 +02:00
Fabien Potencier
adedd76a3d feature #30572 [Cache] add integration with Messenger to allow computing cached values in a worker (nicolas-grekas)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Cache] add integration with Messenger to allow computing cached values in a worker

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

~~This PR needs and for now embeds #30334. See 2nd commit.~~

Using the new `CacheInterface` enables probabilistic early expiration by default. This means that from time to time, items are elected as early-expired while they are still fresh ([see Wikipedia](https://en.wikipedia.org/wiki/Cache_stampede#Probabilistic_early_expiration) for details).

This PR adds a new `early_expiration_message_bus` option when configuring cache pools. When this option is set, cache pools are configured to send those early-expired items on a Messenger bus, then serve the current value immediately, while the updated value is computed in a worker in the background.

`CacheInterface::get($key, $callback)` accepts any callable, but sending any callable on a bus is not possible (e.g. a `Closure` cannot be serialized). To bypass this constraint, this feature works only with callables in the form `[$service, 'publicMethod']`, where `$service` is any public or [reversible service](https://github.com/symfony/symfony/pull/30334).

This constraint is a serious one: this $service must compute a value when knowing only its key. This means keys should embed enough information for this to happen. I think that's not that hard - and we may find ways to provide additional context in the future.

At least the goal is worth it: in theory, this strategy allows achieving a 100% hit ratio even when invalidation-by-expiration is used.

There are two things one needs to do to enable this behavior:

1. bind a message bus to a cache pool:
```yaml
framework:
    cache:
        pools:
            test.cache:
                early_expiration_message_bus: messenger.default_bus
```

2. route EarlyExpirationMessage to a transport:
```yaml
framework:
    messenger:
        routing:
            'Symfony\Component\Cache\Messenger\EarlyExpirationMessage': amqp
```

Commits
-------

6c0911f58c [Cache] add integration with Messenger to allow computing cached values in a worker
2020-09-12 07:07:36 +02:00
Fabien Potencier
11b142928a feature #38149 [SecurityBundle] Comma separated ips for security.access_control (a-menshchikov)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[SecurityBundle] Comma separated ips for security.access_control

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/14219

There is currently no way to use env vars to configure `security.access_control` ips with multiple values. Ability to use comma separated ips make it able.

Commits
-------

0412e91060 [SecurityBundle] Comma separated ips for security.access_control
2020-09-12 07:06:14 +02:00
Zmey
0412e91060 [SecurityBundle] Comma separated ips for security.access_control 2020-09-12 07:06:09 +02:00
Ramazan
f346eccb60 Update validators.tr.xlf
Turkish Spelling error corrected.
2020-09-11 17:36:36 +02:00
Nicolas Grekas
fce331a978 Merge branch '5.1'
* 5.1:
  [Cache] fix merge
2020-09-11 15:55:47 +02:00
Nicolas Grekas
ca8944b512 [Cache] fix merge 2020-09-11 15:55:31 +02:00
Nicolas Grekas
6c0911f58c [Cache] add integration with Messenger to allow computing cached values in a worker 2020-09-11 15:42:58 +02:00
Christian Flothmann
6d5617d08d Merge branch '5.1' into master
* 5.1:
  fix merge
  [Cache] fix previous PR
  add mising sr (latn & cyrl) translations
  [Cache] fix ProxyAdapter not persisting items with infinite expiration
  [HttpClient] fail properly when the server replies with HTTP/0.9
  Fix CS
  [Cache] Limit cache version character range
  [Mailer] Fixed Mailgun API bridge JsonException when API response is not applicaton/json
  [String] improve fix
  fix tests
  [DI] dump OS-indepent paths in the compiled container
  [DI] dump OS-indepent paths in the preload file
  Run postgres setup trigger in transaction
  allow consumers to mock all methods
2020-09-11 14:25:32 +02:00
Christian Flothmann
f5b08da897 fix merge 2020-09-11 14:17:27 +02:00
Nicolas Grekas
25941ffe73 [Cache] fix previous PR 2020-09-11 13:46:01 +02:00
Nicolas Grekas
da71a5d933 Merge branch '4.4' into 5.1
* 4.4:
  add mising sr (latn & cyrl) translations
  [Cache] fix ProxyAdapter not persisting items with infinite expiration
  [HttpClient] fail properly when the server replies with HTTP/0.9
  Fix CS
  [Cache] Limit cache version character range
  [DI] dump OS-indepent paths in the compiled container
  allow consumers to mock all methods
2020-09-11 13:43:06 +02:00
Nicolas Grekas
ac188871c2 bug #38156 [Cache] fix ProxyAdapter not persisting items with infinite expiration (dmaicher)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] fix ProxyAdapter not persisting items with infinite expiration

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38066
| License       | MIT
| Doc PR        | -

Commits
-------

d3af877022 [Cache] fix ProxyAdapter not persisting items with infinite expiration
2020-09-11 13:34:06 +02:00
Nicolas Grekas
77530a9b75 Merge remote-tracking branch 'origin/3.4' into 4.4
* origin/3.4:
  add mising sr (latn & cyrl) translations
  allow consumers to mock all methods
2020-09-11 13:33:24 +02:00
ivan
e927c7cf69 add mising sr (latn & cyrl) translations 2020-09-11 11:15:49 +02:00
David Maicher
d3af877022 [Cache] fix ProxyAdapter not persisting items with infinite expiration 2020-09-11 11:01:32 +02:00
Nicolas Grekas
0383e53e5c bug #38148 [HttpClient] fail properly when the server replies with HTTP/0.9 (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fail properly when the server replies with HTTP/0.9

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #37923
| License       | MIT
| Doc PR        | -

Commits
-------

96759af1da [HttpClient] fail properly when the server replies with HTTP/0.9
2020-09-11 09:06:13 +02:00
Nicolas Grekas
96759af1da [HttpClient] fail properly when the server replies with HTTP/0.9 2020-09-11 08:30:42 +02:00
Fabien Potencier
dafcc58e6b bug #38153 Move form error normalizer to the Serializer component (fabpot)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Move form error normalizer to the Serializer component

| Q             | A
| ------------- | ---
| Branch?       | master
| 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

Commits
-------

c053db5553 Move form error normalizer to the Serializer component
2020-09-11 08:29:22 +02:00
Fabien Potencier
c053db5553 Move form error normalizer to the Serializer component 2020-09-11 08:19:30 +02:00
Fabien Potencier
1b5f996378 Fix CS 2020-09-11 07:50:30 +02:00
Fabien Potencier
cc9c48fe14 Fix tests 2020-09-11 07:35:08 +02:00
Fabien Potencier
7a0cc2c0e4 Fix CS 2020-09-11 07:25:20 +02:00
Fabien Potencier
8cb2d296f9 Fix previous merge 2020-09-11 07:20:58 +02:00
Tomas
d6a899395b Update based on feedback 2020-09-11 07:18:37 +02:00
Guillaume Pédelagrabe
1c21c78d25 UidNormalizer. 2020-09-11 07:18:37 +02:00
Nicolas Grekas
be6146c566 [HttpClient] fix compat with older PHP/curl versions 2020-09-10 20:24:52 +02:00
Nicolas Grekas
5aadd607ce [HttpClient] forbid CURLOPT_HTTP09_ALLOWED 2020-09-10 20:22:28 +02:00
Maxime Steinhausser
1e8ae43372 [Messenger] Don't prevent dispatch out of another bus 2020-09-10 19:13:35 +02:00
Fabien Potencier
4bbb250d83 bug #38140 [DI] dump OS-indepent paths in the preload file (nicolas-grekas)
This PR was merged into the 5.1 branch.

Discussion
----------

[DI] dump OS-indepent paths in the preload file

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38123
| License       | MIT
| Doc PR        | -

This allows generating the file on Windows and running it on Linux (Docker).

Commits
-------

e8feba5c36 [DI] dump OS-indepent paths in the preload file
2020-09-10 19:00:34 +02:00
Fabien Potencier
44dd80f3fd bug #38139 [DI] dump OS-indepent paths in the compiled container (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] dump OS-indepent paths in the compiled container

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38123
| License       | MIT
| Doc PR        | -

This allows compiling on Windows and running on Linux (Docker).

Commits
-------

4dcf9e7d13 [DI] dump OS-indepent paths in the compiled container
2020-09-10 18:59:53 +02:00
Fabien Potencier
9cd3e674e6 bug #38141 [Messenger] Added factory methods to DelayStamp for better DX (Toflar)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Added factory methods to DelayStamp for better DX

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        | not necessary imho

I often find myself delaying messages for a few minutes or so and I always have to remember the `DelayStamp` uses milliseconds. I guess these simple factories could improve DX quite a bit :)

Commits
-------

fdc8da0aaa [Messenger] Added factory methods to DelayStamp for better DX
2020-09-10 18:59:02 +02:00
Yanick Witschi
fdc8da0aaa [Messenger] Added factory methods to DelayStamp for better DX 2020-09-10 18:54:55 +02:00
Nicolas Grekas
474e877035 feature #38134 [Lock] Fix wrong interface for MongoDbStore (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Lock] Fix wrong interface for MongoDbStore

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

The MongoDbStore is not a `BlockingStore` because does not "really" implements  the method `waitAndSave`.

This PR changes the interface of `MongoDbStore` and remove the dummy implementation of `waitAndSave`.

Commits
-------

4c2d32ce11 Fix wrong interface for MongoDbStore
2020-09-10 18:54:54 +02:00
Jérémy Derussé
4c2d32ce11 Fix wrong interface for MongoDbStore 2020-09-10 18:54:38 +02:00
Fabien Potencier
b84f3cea9a bug #38147 [Mailer] Fixed Mailgun API bridge JsonException when API response is not applicaton/json (asprega)
This PR was merged into the 5.1 branch.

Discussion
----------

[Mailer] Fixed Mailgun API bridge JsonException when API response is not applicaton/json

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38146
| License       | MIT
| Doc PR        | -

Handles gracefully cases in which the Mailgun API does not return JSON responses.

Commits
-------

ce8f7e5c02 [Mailer] Fixed Mailgun API bridge JsonException when API response is not applicaton/json
2020-09-10 18:48:58 +02:00
Lars Strojny
15c21db856 [Cache] Limit cache version character range 2020-09-10 18:47:22 +02:00
Nicolas Grekas
ff29f3ae11 minor #38144 [String] improve fix (nicolas-grekas)
This PR was merged into the 5.1 branch.

Discussion
----------

[String] improve fix

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

Improves https://github.com/symfony/symfony/pull/38128
(let's wait for the CI before merging)

Commits
-------

db4b1df062 [String] improve fix
2020-09-10 18:40:56 +02:00
Nicolas Grekas
f1fd3c0069 bug #38136 [Messenger] Run postgres setup trigger in transaction (akondas)
This PR was merged into the 5.1 branch.

Discussion
----------

[Messenger] Run postgres setup trigger in transaction

| 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 #37179 <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | n/a <!-- required for new features -->

This PR fix `messenger:setup-transports` command when using with ` doctrine/doctrine-bundle` version >= 2.1

Commits
-------

7ed93b4dc0 Run postgres setup trigger in transaction
2020-09-10 18:35:00 +02:00
Andrea Sprega
ce8f7e5c02 [Mailer] Fixed Mailgun API bridge JsonException when API response is not applicaton/json
- Fixes issue #38146
2020-09-10 17:34:37 +02:00
Nicolas Grekas
db4b1df062 [String] improve fix 2020-09-10 15:37:03 +02:00
Fabien Potencier
4c873fe501 feature #38135 [AmazonSqsMessenger] Added the count message awareness on the transport (raphahardt)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[AmazonSqsMessenger] Added the count message awareness on the transport

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

Added the possibility of have message count awareness of the receiver on the transport.

Commits
-------

96b63b83bf [AmazonSqsMessenger] Added the count message awareness on the transport
2020-09-10 14:42:05 +02:00
Fabien Potencier
ad0c9f5d62 Merge branch '5.1'
* 5.1:
  [FrameworkBundle] adopt src/.preload.php
  [Cache] Fix key encoding issue in Memcached adapter
  [HttpClient] Fix Array to string conversion notice when parsing JSON error body with non-scalar detail property
2020-09-10 14:33:14 +02:00
Fabien Potencier
4409a30dee Merge branch '4.4' into 5.1
* 4.4:
  [FrameworkBundle] adopt src/.preload.php
  [Cache] Fix key encoding issue in Memcached adapter
  [HttpClient] Fix Array to string conversion notice when parsing JSON error body with non-scalar detail property
2020-09-10 14:33:01 +02:00
Nicolas Grekas
4dcf9e7d13 [DI] dump OS-indepent paths in the compiled container 2020-09-10 12:08:39 +02:00
Nicolas Grekas
e8feba5c36 [DI] dump OS-indepent paths in the preload file 2020-09-10 11:51:08 +02:00
Tobias Schultze
38e414003c minor #38138 [Translation] fix parsing tokens on PHP 8 (xabbuh)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Translation] fix parsing tokens on PHP 8

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

1d1194e973 fix parsing tokens on PHP 8
2020-09-10 11:38:32 +02:00
Christian Flothmann
6bf856cd15 Merge branch '5.1' into master
* 5.1:
  ensure that the offset is part of the string
2020-09-10 10:46:37 +02:00
Nicolas Grekas
0ceafbcbea feature #38026 [HttpClient] Allow to provide additional curl options to CurlHttpClient (pizzaminded)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[HttpClient] Allow to provide additional curl options  to CurlHttpClient

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #37798
| License       | MIT
| Doc PR        | symfony/symfony-docs#14195

~~**Tagging as a draft because:**~~
- ~~there is no Doc PR Ready yet~~
- probably there are better test cases required here.

This PR introduces an option to override default curl options defined in `CurlHttpClient`.  To override them, there is a special place in `$options` provided:

````php
$response = $httpClient->request('GET', 'http://your.url.here', [
            'extra' => [
                'curl' => [
                    CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4,
                ]
            ]
        ]);
````

This feature is available only in `CurlHttpClient` and would be ignored in another clients.

Commits
-------

89329bd979 [HttpClient] Allow to provide additional curl options  to CurlHttpClient
2020-09-10 10:40:05 +02:00
pizzaminded
89329bd979 [HttpClient] Allow to provide additional curl options to CurlHttpClient 2020-09-10 10:39:47 +02:00
Christian Flothmann
1d1194e973 fix parsing tokens on PHP 8 2020-09-10 10:35:47 +02:00
Arkadiusz Kondas
7ed93b4dc0
Run postgres setup trigger in transaction 2020-09-10 10:05:16 +02:00
Raphael Hardt
96b63b83bf [AmazonSqsMessenger] Added the count message awareness on the transport 2020-09-10 02:04:08 -03:00
Christian Flothmann
3227303dab allow consumers to mock all methods 2020-09-09 19:04:53 +02:00
Christian Flothmann
a6c046f3ab ensure that the offset is part of the string 2020-09-09 14:58:41 +02:00
Christian Flothmann
1bdae34365 Merge branch '5.1' into master
* 5.1:
  [Intl] promote warnings to value errors on PHP 8
  Fix CS
  DateTime validator support for trailing data
  Remove some leftover for HHVM support
  Simplify code
  Fix tests on 5.6
  [Debug] Skip a test that was meant for HHVM.
  [Console] Silence warnings on sapi_windows_cp_set() call
  guard $argv + $token against null, preventing unnecessary exceptions
2020-09-09 14:41:49 +02:00
Nicolas Grekas
afd4027c11 bug #38108 [Cache] Fix key encoding issue in Memcached adapter (lstrojny)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Cache] Fix key encoding issue in Memcached adapter

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | n.A.
| License       | MIT
| Doc PR        | Fix double encoding in memcached which lead to overlong keys being generated

Because the memcached adapter uses `rawurlencode()` to encode each and every key, keys will sometimes be too long and therefore hit the memcached limit of 250 bytes. This happens when the key is small enough to be below 250 when passed to `AbstractAdapterTrait::getId()` and is then blown up over the 250 bytes limit in memcached adapter without validating the length again.

Looking through the code, it seems that the double encoding is wholly unnecessary assuming if one makes sure the namespace is properly encoded. This PR therefore removes the double encoding and instead uses rawurlencode on the namespace (which is in turn properly accounted for when calculating whether or not we are over the ID limit).

Commits
-------

23bf9be8ce [Cache] Fix key encoding issue in Memcached adapter
2020-09-09 11:22:51 +02:00
Lars Strojny
23bf9be8ce [Cache] Fix key encoding issue in Memcached adapter 2020-09-09 11:22:35 +02:00
Nicolas Grekas
9bb80841ed bug #38122 [HttpClient] Fix Array to string conversion notice when parsing JSON error body with non-scalar detail property (emarref)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[HttpClient] Fix Array to string conversion notice when parsing JSON error body with non-scalar detail property

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38118
| License       | MIT
| Doc PR        | no

An earlier commit added the ability to detect common API formats and extract a useful error message from the error response payload. To achieve this, if a `title` and `detail` property are found in the error response, the response is considered to be in a known format (RFC 7807) and these values are concatenated to form a helpful error message.

However, when either `title` or `detail` property are present, but the document is not intended to follow the RFC semantics, if the properties are not scalar (e.g. if the detail property is an array of field validation violations) then the concatenation of the strings causes a notice to be raised.

This pull request checks that the `title` and `detail` properties are scalar before attempting to concatenate them. If they are not, no enhanced error message is provided.

Commits
-------

76fa884319 [HttpClient] Fix Array to string conversion notice when parsing JSON error body with non-scalar detail property
2020-09-09 11:17:46 +02:00
Malcolm Fell
76fa884319 [HttpClient] Fix Array to string conversion notice when parsing JSON error body with non-scalar detail property 2020-09-09 11:17:34 +02:00
Christian Flothmann
41cb27beb0 Merge branch '4.4' into 5.1
* 4.4:
  [Intl] promote warnings to value errors on PHP 8
  Fix CS
  DateTime validator support for trailing data
  Remove some leftover for HHVM support
  Simplify code
  Fix tests on 5.6
  [Debug] Skip a test that was meant for HHVM.
  [Console] Silence warnings on sapi_windows_cp_set() call
  guard $argv + $token against null, preventing unnecessary exceptions
2020-09-09 10:28:14 +02:00
Christian Flothmann
0ed20be407 Merge branch '3.4' into 4.4
* 3.4:
  [Intl] promote warnings to value errors on PHP 8
  Fix CS
  DateTime validator support for trailing data
2020-09-09 10:00:22 +02:00
Christian Flothmann
82d9d41d57 [Intl] promote warnings to value errors on PHP 8 2020-09-09 09:45:25 +02:00
Fabien Potencier
799624b6f1 Fix CS 2020-09-09 07:35:36 +02:00
Fabien Potencier
1e52146339 bug #37097 DateTime validator support for trailing data (stefankleff)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

DateTime validator support for trailing data

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #37094
| License       | MIT

Commits
-------

27f6e28f5b DateTime validator support for trailing data
2020-09-09 07:34:53 +02:00
Stefan Kleff
27f6e28f5b DateTime validator support for trailing data 2020-09-09 07:34:45 +02:00
Fabien Potencier
cf9e75614b Remove some leftover for HHVM support 2020-09-09 07:20:36 +02:00
Fabien Potencier
80e5a7fbd8 feature #37559 [PropertyInfo] fix array types with keys (array<string, string>) (digilist)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[PropertyInfo] fix array types with keys (array<string, string>)

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

Array types with keys are currently not detected correctly from the PropertyInfo component:

```
@var array<string, string>
@var array<string, array<integer, string>>
```

Those are currently identified as object with class `rray<string, string>`.

This PR tries to fix it.

What I noticed while fixing this, is that union types in arrays are not supported in general at the moment, because the `Type` class supports only one collectionValueType and I do not see how to pass a Union Type there. But I guess that's a different issue and for those types I decided to return null as collection value type for now. (Or better throw on exception?)

Commits
-------

64f7bd7832 [PropertyInfo] fix array types with keys (array<string, string>)
2020-09-09 07:17:12 +02:00
Fabien Potencier
656fc3b82a Simplify code 2020-09-09 07:14:52 +02:00
Fabien Potencier
5ad8c2a630 Merge branch '3.4' into 4.4
* 3.4:
  Fix tests on 5.6
  [Debug] Skip a test that was meant for HHVM.
  [Console] Silence warnings on sapi_windows_cp_set() call
  guard $argv + $token against null, preventing unnecessary exceptions
2020-09-09 07:14:20 +02:00
Fabien Potencier
1df26c20a0 minor #38117 [Debug] Skip a test that was meant for HHVM (derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

[Debug] Skip a test that was meant for HHVM

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #36872
| License       | MIT
| Doc PR        | N/A

This PR skips a test that fails on php 8. If I read the test correctly, it is meant to run on HHVM, so I assumed it's save to skip it if we're on PHP.

Commits
-------

bf62a4d622 [Debug] Skip a test that was meant for HHVM.
2020-09-09 07:12:18 +02:00
Fabien Potencier
336946a499 Fix tests on 5.6 2020-09-09 07:09:37 +02:00
Alexander M. Turek
bf62a4d622 [Debug] Skip a test that was meant for HHVM. 2020-09-09 00:19:14 +02:00
Robin Chalas
2a57ba5267 [Console] Silence warnings on sapi_windows_cp_set() call 2020-09-08 23:46:32 +02:00
bilogic
dbe335d9be guard $argv + $token against null, preventing unnecessary exceptions 2020-09-08 22:57:41 +02:00
Nicolas Grekas
966514c46b Merge branch '5.1'
* 5.1:
  [Debug] fix merge
2020-09-08 16:53:50 +02:00
Nicolas Grekas
11596bc02f Merge branch '4.4' into 5.1
* 4.4:
  [Debug] fix merge
2020-09-08 16:52:05 +02:00
Nicolas Grekas
bf9ce8b8b0 [Debug] fix merge 2020-09-08 16:30:03 +02:00
Nicolas Grekas
d96c7a0f40 Merge branch '5.1'
* 5.1:
  [Debug] fix test
  consistently use same types for strict comparisons
  [PhpUnitBridge] Skip internal classes in CoverageListenerTrait
  [VarExporter] unserialize() might throw an Exception on php 8.
  [SecurityHttp] Don't call createMock() with multiple interfaces.
  [ErrorHandler] Parse "x not found" errors correctly on php 8.
  Prevent parsing invalid octal digits as octal numbers
  remove unnecessary check for  existing request
  [DI] fix ContainerBuilder on PHP8
  [Console] Make sure $maxAttempts is an int or null.
  [VarDumper] Fix caster for invalid SplFileInfo objects on php 8.
  [Intl] Skip test cases that produce a TypeError on php 8.
  [PhpUnitBridge] Adjust output parsing for PHPUnit 9.3.
  [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
  add bosnian (bs) translation
  [Debug] Parse "x not found" errors correctly on php 8.
2020-09-08 16:20:09 +02:00
Nicolas Grekas
62a4559619 Merge branch '4.4' into 5.1
* 4.4:
  [Debug] fix test
  consistently use same types for strict comparisons
  [PhpUnitBridge] Skip internal classes in CoverageListenerTrait
  [VarExporter] unserialize() might throw an Exception on php 8.
  [ErrorHandler] Parse "x not found" errors correctly on php 8.
  Prevent parsing invalid octal digits as octal numbers
  remove unnecessary check for  existing request
  [DI] fix ContainerBuilder on PHP8
  [Console] Make sure $maxAttempts is an int or null.
  [VarDumper] Fix caster for invalid SplFileInfo objects on php 8.
  [Intl] Skip test cases that produce a TypeError on php 8.
  [PhpUnitBridge] Adjust output parsing for PHPUnit 9.3.
  [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
  add bosnian (bs) translation
  [Debug] Parse "x not found" errors correctly on php 8.
2020-09-08 16:19:54 +02:00
Nicolas Grekas
702916b5a8 minor #38110 [Debug] fix test (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Debug] fix test

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

16a76739c0 [Debug] fix test
2020-09-08 16:12:36 +02:00
Fabien Potencier
4b2b64a97f feature #37519 [Process] allow setting options esp. "create_new_console" to detach a subprocess (andrei0x309)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Process] allow setting options esp. "create_new_console" to detach a subprocess

Process.php to include support for create_new_console (Windows ONLY)

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      |  no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | #36583 <!-- 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 -->

Based on this issue: https://github.com/symfony/symfony/issues/36583
I created a quick repo [ https://github.com/andrei0x309/tets_sym_proc]( https://github.com/andrei0x309/tets_sym_proc) to illustrate
how this feature can be used, it essentially lets you run something even if your main script has terminated.

It is useful if you want to create something like
`new Process(['php', 'script_with_long_execution_time.php']);`
This was impossible to do on windows until the **create_new_console** flag was added in PHP 7.4.4.
With this feature Process can be used like this:

```
// Start a process and detach form it on Win only
$process = new Process(['php', 'worker.php']);
$process->setOptions(["create_new_console" => true]); // New method I added
$process->disableOutput();
$process->start();
Process Class behavior will never change if the user doesn't use setWinOptions()
```

Commits
-------

e9ab235b66 [Process] allow setting options esp. "create_new_console" to detach a subprocess
2020-09-08 15:25:06 +02:00
Christian Flothmann
16a76739c0 [Debug] fix test 2020-09-08 15:04:06 +02:00
Nicolas Grekas
638f9ecc15 minor #38107 [DependencyInjection] consistently use same types for strict comparisons (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] consistently use same types for strict comparisons

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

afc11684e0 consistently use same types for strict comparisons
2020-09-08 15:02:55 +02:00
Andrei O
e9ab235b66 [Process] allow setting options esp. "create_new_console" to detach a subprocess 2020-09-08 14:47:24 +02:00
Christian Flothmann
261a939ea6 Merge branch '3.4' into 4.4
* 3.4:
  Prevent parsing invalid octal digits as octal numbers
  [DI] fix ContainerBuilder on PHP8
  [Console] Make sure $maxAttempts is an int or null.
  [VarDumper] Fix caster for invalid SplFileInfo objects on php 8.
  [Intl] Skip test cases that produce a TypeError on php 8.
  [PhpUnitBridge] Adjust output parsing for PHPUnit 9.3.
  [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
  add bosnian (bs) translation
  [Debug] Parse "x not found" errors correctly on php 8.
2020-09-08 13:16:46 +02:00
Christian Flothmann
afc11684e0 consistently use same types for strict comparisons 2020-09-08 10:26:11 +02:00
Nicolas Grekas
f8fddf3917 bug #38101 [VarExporter] unserialize() might throw an Exception on php 8 (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarExporter] unserialize() might throw an Exception on php 8

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #36872
| License       | MIT
| Doc PR        | N/A

VarExporter attempts a deserialization in order to check if a given object can be exported in serialized form. On php 8, the `unserialize` call might throw an exception that needs to be caught and converted to the expected `NotInstantiableTypeException`.

Commits
-------

65112e11bc [VarExporter] unserialize() might throw an Exception on php 8.
2020-09-08 09:04:33 +02:00
Alexander M. Turek
65112e11bc [VarExporter] unserialize() might throw an Exception on php 8. 2020-09-07 23:10:21 +02:00
Alexander M. Turek
028ec0cf68 [SecurityHttp] Don't call createMock() with multiple interfaces. 2020-09-07 21:55:33 +02:00
Alexander M. Turek
d9c9aea7ee [ErrorHandler] Parse "x not found" errors correctly on php 8. 2020-09-07 20:45:32 +02:00
Julien Falque
c7dcd82f03
Prevent parsing invalid octal digits as octal numbers 2020-09-07 20:13:13 +02:00
Markus Fasselt
64f7bd7832 [PropertyInfo] fix array types with keys (array<string, string>) 2020-09-07 14:53:44 +02:00
Fabien Potencier
38926159e3 Merge branch '5.1'
* 5.1:
  Bump ext-igbinary to 3.1.5 to fix compile error on php 8.
  [HttpClient] with "bindto" with NativeHttpClient
2020-09-07 14:08:32 +02:00
Fabien Potencier
60350341ea Merge branch '4.4' into 5.1
* 4.4:
  Bump ext-igbinary to 3.1.5 to fix compile error on php 8.
  [HttpClient] with "bindto" with NativeHttpClient
2020-09-07 14:08:23 +02:00
Nicolas Grekas
a3275a7be9 [DI] fix ContainerBuilder on PHP8 2020-09-07 14:07:49 +02:00
Fabien Potencier
b26f11ca0b feature #37545 [DependencyInjection] Add the Required attribute (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[DependencyInjection] Add the Required attribute

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | TODO

This PR proposes a new attribute `#[Required]` that can be used instead of the `@required` annotation.

Commits
-------

ea262441e7 [DependencyInjection] Add the Required attribute.
2020-09-07 14:06:46 +02:00
Alexander M. Turek
ea262441e7 [DependencyInjection] Add the Required attribute. 2020-09-07 13:33:47 +02:00
Alexander M. Turek
f0978de493 [Routing] Added the Route attribute. 2020-09-07 11:14:39 +02:00
Nicolas Grekas
cea05311fc [HttpClient] with "bindto" with NativeHttpClient 2020-09-07 09:41:14 +02:00
Fabien Potencier
b89b7474ca Merge branch '5.1'
* 5.1:
  Update UPGRADE-5.1.md
  [HttpKernel] Adjust tests to new "class not found" error message format.
  Don't call createMock with an array of interfaces.
  [FrameworkBundle] Fix Tests on PHPUnit 9.3.
  [WebProfilerBundle] Fix Tests on PHPUnit 9.3.
  esmtp error not being thrown properly
  [Yaml Parser] fixed Parser to skip comments when inlining sequences
  Update Connection.php
  [DI] fix generating preload file when cache_dir is outside project_dir
  Fix CacheCollectorPass with decorated cache pools
  [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
  Remove invalid instantiation declaration
  [PropertyInfo] Fix typed collections in PHP 7.4
2020-09-07 07:10:36 +02:00
Fabien Potencier
0bdef0a996 Merge branch '4.4' into 5.1
* 4.4:
  [HttpKernel] Adjust tests to new "class not found" error message format.
  Don't call createMock with an array of interfaces.
  [FrameworkBundle] Fix Tests on PHPUnit 9.3.
  [WebProfilerBundle] Fix Tests on PHPUnit 9.3.
  esmtp error not being thrown properly
  [Yaml Parser] fixed Parser to skip comments when inlining sequences
  [DI] fix generating preload file when cache_dir is outside project_dir
  Fix CacheCollectorPass with decorated cache pools
  [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
  Remove invalid instantiation declaration
  [PropertyInfo] Fix typed collections in PHP 7.4
2020-09-07 07:10:28 +02:00
Fabien Potencier
beb6fd85a8 minor #38079 Don't call createMock with an array of interfaces (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

Don't call createMock with an array of interfaces

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #37564
| License       | MIT
| Doc PR        | N/A

PHPUnit 8 allows us to pass an array of interfaces to `createMock()`. The result was a mock object that implemented all of the given interfaces. This feature has sadly been removed (see sebastianbergmann/phpunit#3955), which forces us to create dummy classes that can be mocked instead. I've done this already on the 3.4 branch with #37566.

This PR fixes all affected tests (that I could find) on the 4.4 branch.

Commits
-------

a8e762d8c3 Don't call createMock with an array of interfaces.
2020-09-07 07:02:32 +02:00
Alexander M. Turek
4fcd4916ed [Console] Make sure $maxAttempts is an int or null. 2020-09-07 07:00:31 +02:00
Fabien Potencier
93a82a296c minor #38083 [HttpKernel] Adjust tests to new "class not found" error message format (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Adjust tests to new "class not found" error message format

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #36872
| License       | MIT
| Doc PR        | N/A

Commits
-------

5b95bcd009 [HttpKernel] Adjust tests to new "class not found" error message format.
2020-09-07 06:59:00 +02:00
Alexander M. Turek
5b95bcd009 [HttpKernel] Adjust tests to new "class not found" error message format. 2020-09-06 23:28:28 +02:00
Alexander M. Turek
a8e762d8c3 Don't call createMock with an array of interfaces. 2020-09-06 21:21:37 +02:00
Anton Zagorskii
976eea3be0 esmtp error not being thrown properly 2020-09-06 19:12:23 +02:00
Fabien Potencier
f0bf853a86 bug #38040 [Yaml Parser] fixed Parser to skip comments when inlining sequences (korve)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Yaml Parser] fixed Parser to skip comments when inlining sequences

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #37972
| License       | MIT

The parser didn't skip comments when parsing values in a sequence. This resulted in the YamlFileLoader trying to
parse a comment as a IteratorArgument which resulted in a InvalidArgumentException.

Consider the following valid yaml:

```yaml
- !foo [
    bar,
    #baz
  ]
```

The parser would generate the following array:
```php
['bar', '#baz']
```

After this fix the parser will generate the following array:
```php
['bar']
```

This  bug only appeared for me in 4.4

Commits
-------

b5316ebebb [Yaml Parser] fixed Parser to skip comments when inlining sequences
2020-09-06 19:03:15 +02:00
Andre Eckardt
b5316ebebb [Yaml Parser] fixed Parser to skip comments when inlining sequences 2020-09-06 19:03:09 +02:00
dFayet
c1e3703efd Create impersonation_exit_path() and *_url() functions 2020-09-06 10:51:53 +02:00
Aleksandar Dimitrov
c638b497bf
Update Connection.php
remove DelaySeconds parameter for FIFO queues
2020-09-06 02:19:07 +03:00
Alexander M. Turek
ab45e2aaae [VarDumper] Fix caster for invalid SplFileInfo objects on php 8. 2020-09-05 19:45:10 +02:00
Fabien Potencier
ede0a12247 minor #38072 [Intl] Skip test cases that produce a TypeError on php 8 (derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

[Intl] Skip test cases that produce a TypeError on php 8

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #36872
| License       | MIT
| Doc PR        | N/A

On php 8, `NumberFormatter::setAttribute()` will throw a type error if the provided value is not of type `int|float`. This is why I'm skipping the corresponding tests for now. Alternatively, we could check for the PHP version in Symfony's implementation of that class and throw the `TypeError` as well, if we're on php 8. But since this is a breaking change, I'm was unsure if I sould go that way.

Commits
-------

7f1055b97c [Intl] Skip test cases that produce a TypeError on php 8.
2020-09-05 19:05:54 +02:00
Alexander M. Turek
7f1055b97c [Intl] Skip test cases that produce a TypeError on php 8. 2020-09-05 18:44:57 +02:00
ivan
dd44563004 add bosnian (bs) translation 2020-09-05 17:33:22 +02:00
Fabien Potencier
4ab612cad9 feature #37706 [Validator] Debug validator command (loic425, fabpot)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Validator] Debug validator command

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       |
| 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 master.
-->

<img width="891" alt="help" src="https://user-images.githubusercontent.com/8329789/88856285-8281ee00-d1f4-11ea-8395-6e6a4b8e4e2e.png">
<img width="945" alt="CustomerAddress" src="https://user-images.githubusercontent.com/8329789/89049509-a9a20200-d351-11ea-89cf-75e11f805aea.png">
<img width="1353" alt="Customer" src="https://user-images.githubusercontent.com/8329789/89049525-b161a680-d351-11ea-99d5-6c2ede337609.png">

Commits
-------

6ec54c7337 Fix Composer constraints for tests
5dd85e4371 [Validator] Debug validator command
2020-09-05 16:48:54 +02:00
Fabien Potencier
6ec54c7337 Fix Composer constraints for tests 2020-09-05 16:39:15 +02:00
Loic Fremont
5dd85e4371 [Validator] Debug validator command 2020-09-05 16:18:05 +02:00
Fabien Potencier
4222a72ee8 bug #38062 [DI] fix generating preload file when cache_dir is outside project_dir (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] fix generating preload file when cache_dir is outside project_dir

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | no
| License       | MIT
| Doc PR        | -

Commits
-------

02db8e1523 [DI] fix generating preload file when cache_dir is outside project_dir
2020-09-04 18:14:00 +02:00
Nicolas Grekas
02db8e1523 [DI] fix generating preload file when cache_dir is outside project_dir 2020-09-04 16:11:41 +02:00
Soner Sayakci
973442759c
Fix CacheCollectorPass with decorated cache pools 2020-09-04 14:31:16 +02:00
Fabien Potencier
4482fcf28d bug #38041 [PropertyInfo] Fix typed collections in PHP 7.4 (ndench)
This PR was merged into the 4.4 branch.

Discussion
----------

[PropertyInfo] Fix typed collections in PHP 7.4

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | No ticket
| License       | MIT
| Doc PR        | N/A

#37971 introduced support for typed properties in PHP 7.4, however by short circuiting the `getTypes()` method, typed collections are returned as `Type::BUILTIN_TYPE_ARRAY` without a proper collection type. If running on PHP < 7.4, the `getMutator()` method would be called which would extract the collection type from the getter/setter or adder/remover.

I updated the typedPropertiesTest to cover this case.

Commits
-------

282ed2850c [PropertyInfo] Fix typed collections in PHP 7.4
2020-09-04 07:32:57 +02:00
Fabien Potencier
c2522fa325 feature #38052 Increase HttpBrowser::getHeaders() visibility to protected (iansltx)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Increase HttpBrowser::getHeaders() visibility to protected

Resolves symfony/symfony#38051

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #38051
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Increases visibility to allow for oddball header overrides; see #38051 for more detail.

If this looks good, let me know if this is worth adding docs/changelog entries and I'll do so.

Commits
-------

3d75ab515f Increase HttpBrowser::getHeaders() visibility to protected
2020-09-04 07:30:17 +02:00
siganushka
6e17099f7a Remove invalid instantiation declaration 2020-09-04 07:27:08 +02:00
Ian Littman
3d75ab515f
Increase HttpBrowser::getHeaders() visibility to protected
Resolves symfony/symfony#38051
2020-09-03 22:08:06 -05:00
Alexander M. Turek
275496a1f4 [Debug] Parse "x not found" errors correctly on php 8. 2020-09-04 00:12:04 +02:00
Paweł Niedzielski
135c6504f1 [Messenger] Add option to prevent Redis from deleting messages on rejection 2020-09-03 22:33:02 +02:00
Malte Schlüter
b50fc19af0 Add tests for translated error messages of json authentication 2020-09-03 13:33:24 +02:00
Malte Schlüter
7684663818 Translate failure messages of json authentication 2020-09-03 09:35:53 +02:00
Nathan Dench
282ed2850c [PropertyInfo] Fix typed collections in PHP 7.4 2020-09-03 10:26:19 +10:00
Nicolas Grekas
4ee85e8e3b Merge branch '5.1'
* 5.1:
  Enable "native_constant_invocation" CS rule
  Make AbstractPhpFileCacheWarmer public
  Fix CS
  Add a warning comment on ldap empty password
  Bump Symfony version to 4.4.14
  Update VERSION for 4.4.13
  Update CHANGELOG for 4.4.13
  [PhpunitBridge] Fix deprecation type detection
2020-09-02 18:27:44 +02:00
Nicolas Grekas
034602699e Merge branch '4.4' into 5.1
* 4.4:
  Enable "native_constant_invocation" CS rule
  Make AbstractPhpFileCacheWarmer public
2020-09-02 18:23:27 +02:00
Nicolas Grekas
2e8ca94fb8 Merge remote-tracking branch 'origin/4.4' into 5.1
* origin/4.4:
  Fix CS
  Add a warning comment on ldap empty password
  Bump Symfony version to 4.4.14
  Update VERSION for 4.4.13
  Update CHANGELOG for 4.4.13
  [PhpunitBridge] Fix deprecation type detection
2020-09-02 18:21:51 +02:00
Nicolas Grekas
6c2a1c9a57 Merge branch '3.4' into 4.4
* 3.4:
  Enable "native_constant_invocation" CS rule
  Make AbstractPhpFileCacheWarmer public
2020-09-02 18:08:58 +02:00
Nicolas Grekas
4351a70637 Enable "native_constant_invocation" CS rule 2020-09-02 18:06:40 +02:00
Robin Chalas
46ce480801 [Security] Add some missing CHANGELOG entries 2020-09-02 17:49:20 +02:00
Fabien Potencier
ddede31d09 Fix CS 2020-09-02 14:17:05 +02:00
Fabien Potencier
e06d339353 feature #35890 [Cache] give control over cache prefix seed (Tobion)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Cache] give control over cache prefix seed

| Q             | A
| ------------- | ---
| Branch?       | master
| 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        |

Reopened #35723 for master.

The configurable cache prefix seed does not give full control over the cache prefix because the container class is added to the prefix in any case. This is a problem because the container class contains the app env name. We use different app environments for different deployment targets (dev and test). We want dev and test to use the same redis cache. But this is impossible to achieve because even setting the cache prefix seed does not accomplish this.

Commits
-------

6681b92524 [Cache] give control over cache prefix seed
2020-09-02 14:12:28 +02:00
Fabien Potencier
afdb97e864 feature #37337 [Security] Configurable execution order for firewall listeners (scheb)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Security] Configurable execution order for firewall listeners

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT
| Doc PR        | n/a

Hello there, I'm the author of `scheb/two-factor-bundle`, which extends Symfony's security layer with two-factor authentication. I've been closely following the recent changes by @wouterj to rework the security layer with "authenticators" (great work!). While I managed to make my bundle work with authenticators, I see some limitations in the security layer that I'd like to address to make such extensions easier to implement.

In #37336 I've submitted a draft to let security factories add their own authentication listeners to the firewall. This PR is intended to address the issue of execution order. If you look at the `Firewall` class

f64f59a9c0/src/Symfony/Component/Security/Http/Firewall.php (L62-L82)

authentication listeners are executed in the order of their creation. Additionally, there's hardcoded logic to execute `Symfony\Component\Security\Http\Firewall\AccessListener` always last and the logout listener second to last. I'd like to have a more flexible approach, to remove the hardcoded order and give authentication listeners the ability to determine their execution order.

I've added an optional interface to provide a priority to sort all registered authenitication listeners. Sorting is done in a compiler pass, so no time is wasted at runtime.

This is a draft, so I'd like to hear your opinion on this :)

Commits
-------

91388e871b Add ability to prioritize firewall listeners
2020-09-02 13:06:53 +02:00
Tobias Schultze
6681b92524 [Cache] give control over cache prefix seed
The configurable cache prefix seed does not give full control over the cache prefix because the container class is added to the prefix in any case. This is a problem because the container class contains the app env name. We use different app environments for different deployment targets (dev and test). Dev and test should use the same redis cache. But this is impossible to achieve because even setting the cache prefix seed does not accomplish this.
2020-09-02 11:53:39 +02:00
Jérémy Derussé
63a8570a42
Add a warning comment on ldap empty password 2020-09-02 10:52:12 +02:00
Fabien Potencier
a9c93fc094 Bump Symfony version to 5.1.6 2020-09-02 10:20:16 +02:00
Fabien Potencier
cc3335244c Update VERSION for 5.1.5 2020-09-02 10:15:18 +02:00
Fabien Potencier
27c131ca7a Bump Symfony version to 4.4.14 2020-09-02 10:14:21 +02:00
Fabien Potencier
7982e499d6 Update VERSION for 4.4.13 2020-09-02 10:09:29 +02:00
Nicolas Grekas
a64b9449a3 Merge branch '5.1'
* 5.1:
  [HttpClient] Fix deps=low
2020-09-02 10:02:46 +02:00
Nicolas Grekas
6f15fbfe54 Merge branch '4.4' into 5.1
* 4.4:
  [HttpClient] Fix deps=low
2020-09-02 10:02:12 +02:00
Nicolas Grekas
55f451e49c [HttpClient] Fix deps=low 2020-09-02 10:01:15 +02:00
Fabien Potencier
3854b8f8d7 Merge branch '5.1'
* 5.1:
  Remove headers with internal meaning from HttpClient responses
2020-09-02 09:46:15 +02:00
Fabien Potencier
5a0436ff8e Merge branch '4.4' into 5.1
* 4.4:
  Remove headers with internal meaning from HttpClient responses
2020-09-02 09:42:11 +02:00
Fabien Potencier
d9910e0b33 security #cve-2020-15094 Remove headers with internal meaning from HttpClient responses (mpdude)
This PR was merged into the 4.4 branch.
2020-09-02 09:40:48 +02:00
Matthias Pigulla
ba39753291 Remove headers with internal meaning from HttpClient responses 2020-09-02 09:40:10 +02:00
Fabien Potencier
4a10308a54 Merge branch '5.1'
* 5.1:
  Fix undefined index for inconsistent command name definition
2020-09-02 09:07:54 +02:00
Fabien Potencier
286e22354f Merge branch '4.4' into 5.1
* 4.4:
  Fix undefined index for inconsistent command name definition
2020-09-02 09:07:40 +02:00
Fabien Potencier
bca14aa5f8 Merge branch '3.4' into 4.4
* 3.4:
  Fix undefined index for inconsistent command name definition
2020-09-02 09:07:21 +02:00
Fabien Potencier
9d7a8f39a9 Fix CS 2020-09-02 07:46:17 +02:00
Matthias Krauser
3824dafffb [Serializer] fix denormalization of basic property-types in XML and CSV 2020-09-02 07:44:16 +02:00
Nicolas Grekas
78eca9607a Merge branch '5.1'
* 5.1:
  [DI] fix inlining of non-shared services
2020-09-01 20:07:47 +02:00
Nicolas Grekas
117317c8e3 Merge branch '4.4' into 5.1
* 4.4:
  [DI] fix inlining of non-shared services
2020-09-01 20:07:16 +02:00
Robin Chalas
d59140e857 Fix undefined index for inconsistent command name definition 2020-09-01 20:06:56 +02:00
Nicolas Grekas
380cb10587 [DI] fix inlining of non-shared services 2020-09-01 19:42:15 +02:00
Fabien Potencier
dc63d712ab feature #33381 [Form] dispatch submit events for disabled forms too (xabbuh)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Form] dispatch submit events for disabled forms too

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27217
| License       | MIT
| Doc PR        |

TODO:

- [ ] add a test case covering the validation use case

Commits
-------

6da42ae2d1 dispatch submit events for disabled forms too
2020-09-01 18:26:17 +02:00
Fabien Potencier
692fa7a5c1 bug #38022 Missed AbstractArgument (a-menshchikov)
This PR was merged into the 5.1 branch.

Discussion
----------

Missed AbstractArgument

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Missed in 5.1

Commits
-------

b5a47dac52 Missed AbstractArgument
2020-09-01 14:38:02 +02:00
Fabien Potencier
b73ee65c04 Merge branch '5.1'
* 5.1:
  stop using the deprecated at() PHPUnit matcher
2020-09-01 14:25:43 +02:00
Fabien Potencier
3061bfeb48 minor #37874 stop using the deprecated at() PHPUnit matcher (xabbuh)
This PR was merged into the 5.1 branch.

Discussion
----------

stop using the deprecated at() PHPUnit matcher

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

e36e73b9cf stop using the deprecated at() PHPUnit matcher
2020-09-01 14:25:21 +02:00
Christian Flothmann
6da42ae2d1 dispatch submit events for disabled forms too 2020-09-01 14:24:09 +02:00
Zmey
b5a47dac52
Missed AbstractArgument 2020-09-01 15:23:56 +03:00
Fabien Potencier
ccfc4ba269 feature #35338 Added support for using the "{{ label }}" placeholder in constraint messages (a-menshchikov)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

Added support for using the "{{ label }}" placeholder in constraint messages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | #12238
| License       | MIT
| Doc PR        |

- [ ] Add docs PR

Commits
-------

0d9f44235c Added support for using the "{{ label }}" placeholder in constraint messages
2020-09-01 09:49:57 +02:00
Zmey
0d9f44235c Added support for using the "{{ label }}" placeholder in constraint messages 2020-09-01 09:49:48 +02:00
Fabien Potencier
32b82b88eb Fix bad merge 2020-09-01 08:13:06 +02:00
Fabien Potencier
f765cb2900 Merge branch '5.1'
* 5.1:
  [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored
  [Cache] Psr16Cache does not handle Proxy cache items
  [Serializer] fixed fix encoding of cache keys with anonymous classes
  Fix symfony/amazon-mailer constraint
  [Validator] Fix PhpUnitBridge version constraint.
  Bump Symfony version to 5.1.5
  Update VERSION for 5.1.4
  Update CHANGELOG for 5.1.4
  Bump Symfony version to 4.4.13
  Update VERSION for 4.4.12
  Update CHANGELOG for 4.4.12
  Bump Symfony version to 3.4.45
  Update VERSION for 3.4.44
  Update CONTRIBUTORS for 3.4.44
  Update CHANGELOG for 3.4.44
2020-09-01 07:57:52 +02:00
Fabien Potencier
509247b8ff Merge branch '4.4' into 5.1
* 4.4:
  [Cache] Psr16Cache does not handle Proxy cache items
  [Serializer] fixed fix encoding of cache keys with anonymous classes
  Bump Symfony version to 4.4.13
  Update VERSION for 4.4.12
  Update CHANGELOG for 4.4.12
  Bump Symfony version to 3.4.45
  Update VERSION for 3.4.44
  Update CONTRIBUTORS for 3.4.44
  Update CHANGELOG for 3.4.44
2020-09-01 07:52:18 +02:00
scyzoryck
5682d76b2a Messenger - Add option to confirm message delivery in Amqp connection 2020-08-31 23:34:07 +02:00
Fabien Potencier
0d990449b3 bug #37961 [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored (SnakePin)
This PR was squashed before being merged into the 5.1 branch.

Discussion
----------

[Mailer] Fixed 'verify_peer' option in mailer DSN being ignored

| 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       | 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 <!-- required for new features -->

The mailer DSN option 'verify_peer' was being ignored because `$dsn->getOption('verify_peer', true)` was returning a string and thus NOT operator on it was always resulting in false. I propose changing the line where it is used with a `filter_var` call with the `FILTER_VALIDATE_BOOLEAN` as the filter parameter to overcome this issue.

Commits
-------

1c789e87aa [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored
2020-08-31 21:53:05 +02:00
SnakePin
1c789e87aa [Mailer] Fixed 'verify_peer' option in mailer DSN being ignored 2020-08-31 21:52:58 +02:00
Nicolas Grekas
6bebe86d5a bug #38010 [Cache] Psr16Cache does not handle Proxy cache items (alex-dev)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Psr16Cache does not handle Proxy cache items

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38006
| License       | MIT

Add test for Psr16Cache along with a ProxyAdapter

Commits
-------

e525fa1055 [Cache] Psr16Cache does not handle Proxy cache items
2020-08-31 18:53:24 +02:00
Alexandre Parent
e525fa1055 [Cache] Psr16Cache does not handle Proxy cache items 2020-08-31 18:52:20 +02:00
Jérémy Derussé
91a2256716
Fix semaphore branch-alias 2020-08-31 18:13:25 +02:00
Nicolas Grekas
93459a93bd bug #37937 [Serializer] fixed fix encoding of cache keys with anonymous classes (michaelzangerle)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Serializer] fixed fix encoding of cache keys with anonymous classes

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #36589
| License       | MIT
| Doc PR        | -

Commits
-------

3a4675359d [Serializer] fixed fix encoding of cache keys with anonymous classes
2020-08-31 18:04:23 +02:00
Michael Zangerle
3a4675359d [Serializer] fixed fix encoding of cache keys with anonymous classes 2020-08-31 18:03:52 +02:00
Fabien Potencier
d6468a9634 feature #34790 [Console] Remove restriction for choices to be strings (LordZardeck, YaFou, ogizanagi)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Console] Remove restriction for choices to be strings

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #34789
| License       | MIT

When using choice, selected answers are forced into strings, preventing us from using complex values such as a class with a custom __toString. This is a problem, as I need the ability to present the user with a list of display strings to choose from, but need the ID associated with that display string in order to do anything useful.

Commits
-------

d276cc9ca3 [Console] Cast associative choices questions keys to string
a0223088a0 [Console] Add tests for removing restriction for choices to be strings
3349d3ce89 Remove restriction for choices to be strings
2020-08-31 17:31:17 +02:00
Maxime Steinhausser
d276cc9ca3 [Console] Cast associative choices questions keys to string
to prevent inconsistency when choosing by key (getting a string as result) or by value (getting an int as result)
2020-08-31 17:06:49 +02:00
YaFou
a0223088a0 [Console] Add tests for removing restriction for choices to be strings
See 3349d3ce89
2020-08-31 15:43:38 +02:00
Christian Flothmann
427fffa65c skip tests if required class does not exist 2020-08-31 13:01:02 +02:00
Fabien Potencier
69f8eaeec5 bug #37977 [Semaphore] Fixed some bugs (lyrixx)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Semaphore] Fixed some bugs

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

Commits
-------

3c943b94ed [Semaphore] Fixed some bugs
2020-08-31 12:18:25 +02:00
Fabien Potencier
76dc182b65 bug #38002 [Validator] Fix PhpUnitBridge version constraint (derrabus)
This PR was merged into the 5.1 branch.

Discussion
----------

[Validator] Fix PhpUnitBridge version constraint

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

This PR allows Validator 5.1 and PhpUnitBridge 5.1 to be installed alongside each other.

Commits
-------

1055a7f29b [Validator] Fix PhpUnitBridge version constraint.
2020-08-31 12:16:44 +02:00
Michał Jusięga
15643642a3 Fix symfony/amazon-mailer constraint 2020-08-31 12:16:00 +02:00
Maxime Steinhausser
2d21c391e4 bug #38003 [PropertyAccess] fix bitwise operations (xabbuh)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[PropertyAccess] fix bitwise operations

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        |

see https://3v4l.org/DArv9 for the difference

Commits
-------

01b253969a fix bitwise operations
2020-08-31 11:58:56 +02:00
Christian Flothmann
01b253969a fix bitwise operations 2020-08-31 11:42:54 +02:00
Alexander M. Turek
1055a7f29b [Validator] Fix PhpUnitBridge version constraint. 2020-08-31 11:01:51 +02:00
Fabien Potencier
0b65634439 Bump Symfony version to 5.1.5 2020-08-31 08:22:19 +02:00
Fabien Potencier
94ca568810 Update VERSION for 5.1.4 2020-08-31 08:18:12 +02:00
Fabien Potencier
6e59396ff9 Bump Symfony version to 4.4.13 2020-08-31 08:14:12 +02:00
Fabien Potencier
529eac9795 Update VERSION for 4.4.12 2020-08-31 08:09:42 +02:00
Fabien Potencier
f4f7683861 Bump Symfony version to 3.4.45 2020-08-31 07:58:19 +02:00
Fabien Potencier
b1e65241ca Update VERSION for 3.4.44 2020-08-31 07:53:42 +02:00
Fabien Potencier
5ed8ebe50e Remove unneeded code 2020-08-30 12:31:26 +02:00
Christian Flothmann
a9cbac77eb fix the deprecation message 2020-08-30 11:27:09 +02:00
Fabien Potencier
e23a06400d bug #37986 [Translation] Fix logic (fabpot)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Translation] Fix logic

| Q             | A
| ------------- | ---
| Branch?       | master
| 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

Commits
-------

19f8cd423a [Translation] Fix logic
2020-08-30 10:30:45 +02:00
Fabien Potencier
0885ebb706 Merge branch '5.1'
* 5.1:
  Revert "bug #37622 [PropertyAccess] Fix accessing dynamic properties (andreyserdjuk)"
2020-08-30 10:30:09 +02:00
Fabien Potencier
47b9b5cf21 Revert "bug #37622 [PropertyAccess] Fix accessing dynamic properties (andreyserdjuk)"
This reverts commit 92cb709222, reversing
changes made to fc3095ff2f.
2020-08-30 10:29:58 +02:00
Fabien Potencier
19f8cd423a [Translation] Fix logic 2020-08-30 10:02:21 +02:00
Fabien Potencier
45329ab77d Merge branch '5.1'
* 5.1:
  Fix CS
  [HttpClient][MockHttpClient][DX] Throw when the response factory callable does not return a valid response
  [FrameworkBundle] Do not pass the base uri twice to scoped http clients
2020-08-30 09:26:26 +02:00
Fabien Potencier
c367e26e3e Merge branch '4.4' into 5.1
* 4.4:
  Fix CS
  [HttpClient][MockHttpClient][DX] Throw when the response factory callable does not return a valid response
  [FrameworkBundle] Do not pass the base uri twice to scoped http clients
2020-08-30 09:26:18 +02:00
Fabien Potencier
2adacbcff8 Fix CS 2020-08-30 09:21:38 +02:00
Fabien Potencier
4affb4622f Fix CS 2020-08-30 09:20:37 +02:00
Fabien Potencier
241af8057f feature #37371 [Translation] Add support for calling 'trans' with ICU formatted messages (someonewithpc)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Translation] Add support for calling 'trans' with ICU formatted messages

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | maybe, see https://github.com/symfony/symfony/issues/37228
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #37228
| License       | MIT
| Doc PR        | symfony/symfony-docs#13875

Motivation:

```
$apples = [0 => 'No apples', 1 => '1 apple', '# apples'];
echo _m($apples, ['count' => 0]); // Outputs 'No apples'
echo _m($apples, ['count' => 2]); // Outputs '2 apples'
```

where `_m` is a wrapper my application is using, but we obviously don't want to replicate many of the effort of the translation component, so it relies on `trans`.

This wrapper itself could be integrated into Symfony, if deemed appropriate.

See #37228

Commits
-------

d2ec41f4ef [Translation] Add support for calling 'trans' with ICU formatted messages
2020-08-30 09:19:50 +02:00
Hugo Sales
d2ec41f4ef [Translation] Add support for calling 'trans' with ICU formatted messages 2020-08-30 09:19:43 +02:00
Fabien Potencier
4d6ea775b7 bug #37966 [HttpClient][MockHttpClient][DX] Throw when the response factory callable does not return a valid response (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient][MockHttpClient][DX] Throw when the response factory callable does not return a valid response

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

The current message is `TypeError: Argument 4 passed to Symfony\Component\HttpClient\Response\MockResponse::fromRequest() must implement interface Symfony\Contracts\HttpClient\ResponseInterface, instance of Generator given`.

I lost some time with this because I was passing a callable that returns a \Generator instead of passing the resulting \Generator directly. We could support that case but I guess with the added exception message, it is clear we don't support it at all.

Commits
-------

564dce39f8 [HttpClient][MockHttpClient][DX] Throw when the response factory callable does not return a valid response
2020-08-30 08:55:38 +02:00