Commit Graph

49226 Commits

Author SHA1 Message Date
Petr Duda e89b823c12 [Validator] Add missing Czech translations 2021-06-25 18:48:41 +02:00
Fabien Potencier 396bdcc08b bug #41665 [HttpKernel] Keep max lifetime also when part of the responses don't set it (mpdude)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Keep max lifetime also when part of the responses don't set it

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

https://datatracker.ietf.org/doc/html/rfc7234#section-4.2.2 allows caches to assign a "heuristic expiration time" for responses that have no explicit expiration time set, but are explicitly marked as being cacheable by `public`. We can say that such responses are "more liberal" in what is allowed than a response with an explicit `max-age` or `s-maxage` header.

When merging responses in `ResponseCacheStrategy`, such `public` responses without explicit expiration time should  not cause the `max-age` or `s-maxage` values being dropped on the final response. The most restrictive settings from all responses involved should be used, and any given expiration time is more strict than not setting one when being `public`.

Commits
-------

ad1f057ce2 Public responses without lifetime should not remove lifetime for the resulting response
2021-06-24 12:44:38 +02:00
Nicolas Grekas 7685645b46 [DI] fix fixture 2021-06-24 10:08:16 +02:00
Nicolas Grekas 119b3ec26e bug #41760 [ErrorHandler] fix handling buffered SilencedErrorContext (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] fix handling buffered SilencedErrorContext

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

Commits
-------

07407c74ca [ErrorHandler] fix handling buffered SilencedErrorContext
2021-06-24 09:57:22 +02:00
Nicolas Grekas d35c47bc7b bug #41807 [HttpClient] fix Psr18Client when allow_url_fopen=0 (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix Psr18Client when allow_url_fopen=0

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

I didn't really know what `STREAM_IS_URL` was for, now I do :)

Commits
-------

974516133a [HttpClient] fix Psr18Client when allow_url_fopen=0
2021-06-24 09:56:08 +02:00
Matthias Pigulla ad1f057ce2
Public responses without lifetime should not remove lifetime for the resulting response 2021-06-24 06:25:36 +00:00
Nicolas Grekas 07407c74ca [ErrorHandler] fix handling buffered SilencedErrorContext 2021-06-23 23:14:56 +02:00
Nicolas Grekas 974516133a [HttpClient] fix Psr18Client when allow_url_fopen=0 2021-06-23 22:58:46 +02:00
Nicolas Grekas ef06f338f2 bug #40857 [DependencyInjection] Add support of PHP enumerations (alexandre-daubois)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Add support of PHP enumerations

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes (new PHP version compatibility)
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #40233
| License       | MIT
| Doc PR        | _(see below)_

Added support of enums using `!php/const` tag, as they work the same way.

Commits
-------

88c69c0ec0 [DependencyInjection] Add support of PHP enumerations
2021-06-23 21:07:17 +02:00
Alexandre Daubois 88c69c0ec0 [DependencyInjection] Add support of PHP enumerations 2021-06-23 21:06:53 +02:00
Nicolas Grekas b62881c5d0 minor #41761 [DependencyInjection] fix accepted types on FactoryTrait::factory() (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] fix accepted types on FactoryTrait::factory()

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

Commits
-------

67fae67a9a [DependencyInjection] fix accepted types on FactoryTrait::factory()
2021-06-23 20:53:06 +02:00
Nicolas Grekas 79a87cb64c bug #41767 [Config] fix tracking default values that reference the parent class (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Config] fix tracking default values that reference the parent class

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

Commits
-------

978747e6ea [Config] fix tracking default values that reference the parent class
2021-06-23 20:50:42 +02:00
Nicolas Grekas 08b16824fd bug #41768 [DependencyInjection] Fix binding "iterable $foo" when using the PHP-DSL (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Fix binding "iterable $foo" when using the PHP-DSL

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

Commits
-------

8451a14cf6 [DependencyInjection] Fix binding "iterable $foo" when using the PHP-DSL
2021-06-23 20:50:04 +02:00
Nicolas Grekas 52ca881776 bug #41793 [Cache] handle prefixed redis connections when clearing pools (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] handle prefixed redis connections when clearing pools

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

Commits
-------

7527b5a4f9 [Cache] handle prefixed redis connections when clearing pools
2021-06-23 20:26:53 +02:00
Nicolas Grekas 7527b5a4f9 [Cache] handle prefixed redis connections when clearing pools 2021-06-23 20:14:43 +02:00
Nicolas Grekas c7cd08aa6e bug #41804 [Cache] fix eventual consistency when using RedisTagAwareAdapter with a cluster (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] fix eventual consistency when using RedisTagAwareAdapter with a cluster

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

Right now, if the Symfony app stops in the middle of the invalidation logic, we lose the keys to invalidate.

This PR fixes the invalidation logic by making it eventually consistent, and also more scalable thanks to using `SSCAN` instead of `SMEMBERS` when iterating over the items to delete.

The eventual consistency happens when the same tag is invalidated again. We could improve this eg by garbage collecting also when saving and deleting an item but I'll let this as an exercise for a future contributor :)

/cc `@andrerom` in case you'd like to have a look.

Commits
-------

5f2d5e0437 [Cache] fix eventual consistency when using RedisTagAwareAdapter with a cluster
2021-06-23 20:14:15 +02:00
Nicolas Grekas 5f2d5e0437 [Cache] fix eventual consistency when using RedisTagAwareAdapter with a cluster 2021-06-23 19:19:23 +02:00
Fabien Potencier a9e6087e8d minor #41326 [Translation][Validator] Add ExpressionLanguageSyntax English and French (mpiot)
This PR was submitted for the 5.4 branch but it was merged into the 4.4 branch instead.

Discussion
----------

[Translation][Validator] Add ExpressionLanguageSyntax English and French

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

Add ExpressionLanguageSyntax validator translation: english (reference file) and french.

Commits
-------

5f15f5d65d [Validator][Translation] Add ExpressionLanguageSyntax en and fr
2021-06-23 13:33:39 +02:00
Mathieu Piot 5f15f5d65d [Validator][Translation] Add ExpressionLanguageSyntax en and fr 2021-06-23 13:33:31 +02:00
Fabien Potencier 54a9780e15 bug #41773 [Cache] Disable locking on Windows by default (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Disable locking on Windows by default

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

Commits
-------

dffde22329 [Cache] Disable locking on Windows by default
2021-06-23 13:24:08 +02:00
Fabien Potencier 34c3cf4762 bug #41655 [Mailer] fix encoding of addresses using SmtpTransport (dmaicher)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] fix encoding of addresses using SmtpTransport

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

This fixes https://github.com/symfony/symfony/issues/41651 by using the same IDN encoding logic that was also used on SwiftMailer.

also see https://github.com/swiftmailer/swiftmailer/blob/master/tests/unit/Swift/Transport/AbstractSmtpTest.php#L430

Commits
-------

608a3e596a [Mailer] fix encoding of addresses using SmtpTransport
2021-06-23 12:19:02 +02:00
Fabien Potencier f67f7ff179 minor #41593 [MonologBridge] Fix the server:log help --filter sample (ogizanagi)
This PR was merged into the 4.4 branch.

Discussion
----------

[MonologBridge] Fix the server:log help --filter sample

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

Commits
-------

bc383215a3 [MonologBridge] Fix the server:log help --filter sample
2021-06-23 11:54:53 +02:00
Fabien Potencier 4bbd76d4fe bug #41663 [HttpKernel] [HttpCache] Keep s-maxage=0 from ESI sub-responses (mpdude)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[HttpKernel] [HttpCache] Keep s-maxage=0 from ESI sub-responses

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

When the `ResponseCacheStrategy` is merging ESI surrogates and the master response, it treats `s-maxage=0` as if no `s-maxage` has been set.

The result is that for a main and a surrogate response that both are `public, s-maxage=0`, the result will only be `public`, with no further expiration time.

https://datatracker.ietf.org/doc/html/rfc7234#section-4.2.2 allows caches to assign a _heuristic expiration time_ when no explicit expiration time has been given but the response has been marked as explicitly cacheable with `public`. Clearly, such a heuristic was _not_ intended or desired when `public, s-maxage=0` was given.

This PR ensures that `s-maxage=0` is passed along with the resulting response.

### Some notes on `s-maxage=0`

You might argue that `s-maxage=0` does not make sense on a response.

According to https://datatracker.ietf.org/doc/html/rfc7234#section-3.2, `s-maxage=0` is a valid setting to ensure that a cached response "cannot be used to satisfy a subsequent request without revalidating it on the origin server".

This setting can be used to keep responses in edge caches/CDNs, but to re-validate on every request. The bottom line result can still be faster (304 + response already at the edge vs. fetch response from origin).

To my understanding, the difference between `s-maxage=0` and `must-revalidate` is that a "disconnected" cache (one that cannot contact the origin server) _must not_ use a stale response when `must-revalidate` is used, but _is not prohibited_  from doing so for `s-maxage=0` (https://datatracker.ietf.org/doc/html/rfc7234#section-4.2.4). In other words, `must-revalidate` is not exactly the same as (or the "right" way instead of) `s-maxage=0`.

In the special case of ESI (composite) responses, revalidation is not possible (no `ETag`, no `Last-Modified`). But, as explained above, it is still important to pass on the explicit expiration time, instead of having no value for it.

Commits
-------

ee7bc0272e [HttpKernel] [HttpCache] Keep s-maxage=0 from ESI sub-responses
2021-06-23 11:45:01 +02:00
Matthias Pigulla ee7bc0272e [HttpKernel] [HttpCache] Keep s-maxage=0 from ESI sub-responses 2021-06-23 11:44:56 +02:00
Alexander M. Turek 0c1343f4ee bug #41701 [VarDumper] Fix tests for PHP 8.1 (alexandre-daubois)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] Fix tests for PHP 8.1

| 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       | Part of #41552 <!-- 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
-------

f2b0822401 [VarDumper] Fix tests for PHP 8.1
2021-06-22 22:22:50 +02:00
Alexander M. Turek 6f9f4bee41 minor #41790 Pin masterminds/html5 to the master branch for PHP 8.1 (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

Pin masterminds/html5 to the master branch for PHP 8.1

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

Our tests on PHP 8.1 require the changes I've made in Masterminds/html5-php#207. Unfortunately, Composer will not pick a version with those changes because of the reasons described in Masterminds/html5-php#209. This PR adds a small workaround to the PHP 8.1 job which I'll happily revert as soon as Masterminds/html5-php#209 is resolved.

Commits
-------

9c69e77805 Pin masterminds/html5 to the master branch for PHP 8.1
2021-06-22 22:07:07 +02:00
Alexander M. Turek 124ecf07d0 bug #41795 [FrameworkBundle] Replace var_export with VarExporter to use array short syntax in secrets list files (alexandre-daubois)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] Replace var_export with VarExporter to use array short syntax in secrets list files

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

I've been using secrets a lot lately. Unfortunately, command exports the `{env}.list.php` with the "old" array syntax using `array()`, and writing `null` in uppercase.

This results in tedious situations with PHP CS Fixer (for example) rewriting the whole file to restore the modern syntax, each time we add a secret.

The Sodium vault currently uses `var_export`. I suggest using Symfony VarExporter, which does the work just fine. It adds a dependency to the FrameworkBundle, but it is a cleaner way to do it rather than using [this type of hack](https://www.php.net/manual/fr/function.var-export.php#124194) IMO.

Commits
-------

7f1c76212f [FrameworkBundle] Replace var_export with VarExporter to use array short syntax
2021-06-22 22:03:29 +02:00
Alexandre Daubois 7f1c76212f [FrameworkBundle] Replace var_export with VarExporter to use array short syntax 2021-06-22 20:48:42 +02:00
Alexander M. Turek 8445564d02 bug #41779 [DependencyInjection] throw proper exception when decorating a synthetic service (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] throw proper exception when decorating a synthetic service

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

Commits
-------

b763a29514 [DependencyInjection] throw proper exception when decorating a synthetic service
2021-06-22 18:01:49 +02:00
Alexander M. Turek 9c69e77805 Pin masterminds/html5 to the master branch for PHP 8.1
Signed-off-by: Alexander M. Turek <me@derrabus.de>
2021-06-22 17:42:29 +02:00
Alexander M. Turek 8391e0b2e2 bug #41776 [ErrorHandler] [DebugClassLoader] Do not check Phake mocks classes (adoy)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] [DebugClassLoader] Do not check Phake mocks classes

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | [Phake Issue #300](https://github.com/phake/phake/issues/300)
| License       | MIT
| Doc PR        | -

Similar issue as https://github.com/symfony/symfony/pull/38373 but with Phake mocking framework

Commits
-------

9ed93df77a [ErrorHandler][DebugClassLoader] Do not check Phake mocks classes
2021-06-22 12:26:33 +02:00
Nicolas Grekas 8a32526db8 bug #41780 [PhpUnitBridge] fix handling the COMPOSER_BINARY env var when using simple-phpunit (Taluu)
This PR was merged into the 4.4 branch.

Discussion
----------

[PhpUnitBridge] fix handling the COMPOSER_BINARY env var when using simple-phpunit

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

Since the renaming of the simple phpunit file (from the shebang to the php file) in #31364, it looks like the change made from #36566 was lost as it seems to have been merged after.

So this PR is an attempt to "restore" that functionnality, as it was considered a bug fix on 3.4 at the time.

poke `@nicolas`-grekas

Commits
-------

9589b52a78 Reapply the change to allow to set the composer binary path
2021-06-22 11:38:29 +02:00
Baptiste Clavié 9589b52a78 Reapply the change to allow to set the composer binary path
This change was somehow changed back during the renaming of the file
I think. So this is just restoring the change.
2021-06-22 11:18:56 +02:00
Nicolas Grekas b763a29514 [DependencyInjection] throw proper exception when decorating a synthetic service 2021-06-22 10:35:27 +02:00
Nicolas Grekas 63e42698d9 [WebLink] Sync type with parent interface 2021-06-22 09:44:52 +02:00
Nicolas Grekas f0bb3caad1 minor #41763 [WebLink] fix types on Link::withAttribute() (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[WebLink] fix types on Link::withAttribute()

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

Related to 10e52348a2

Commits
-------

29903e2c35 [WebLink] fix types on Link::withAttribute()
2021-06-22 09:35:25 +02:00
Nicolas Grekas 29903e2c35 [WebLink] fix types on Link::withAttribute() 2021-06-22 09:33:19 +02:00
Alexander M. Turek 6a4dcde41f bug #41670 [HttpFoundation] allow savePath of NativeFileSessionHandler to be null (simon.chrzanowski)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] allow savePath of NativeFileSessionHandler to be null

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

By introducing the great Symfony\Component\HttpFoundation\Session\Storage\Handler\SessionHandlerFactory it is possible to configure session handler via DSN. But if I want to use the NativeFileSessionHandler to use configured session.save_path of php.ini, it doesn't work as expected because the $savePath constructor param is an empty string (and not NULL) by using "file://" as DSN.

Commits
-------

f8a082daeb [HttpFoundation] allow savePath of NativeFileSessionHandler to be null
2021-06-21 23:37:53 +02:00
Pierrick Charron 9ed93df77a
[ErrorHandler][DebugClassLoader] Do not check Phake mocks classes 2021-06-21 16:27:34 -04:00
Nicolas Grekas dffde22329 [Cache] Disable locking on Windows by default 2021-06-21 18:21:37 +02:00
Nicolas Grekas 8451a14cf6 [DependencyInjection] Fix binding "iterable $foo" when using the PHP-DSL 2021-06-21 17:20:28 +02:00
Nicolas Grekas 978747e6ea [Config] fix tracking default values that reference the parent class 2021-06-21 16:51:25 +02:00
Nicolas Grekas 67fae67a9a [DependencyInjection] fix accepted types on FactoryTrait::factory() 2021-06-21 14:31:30 +02:00
simon.chrzanowski f8a082daeb [HttpFoundation] allow savePath of NativeFileSessionHandler to be null 2021-06-18 10:57:27 +02:00
Alexandre Daubois f2b0822401 [VarDumper] Fix tests for PHP 8.1 2021-06-17 08:35:48 +02:00
Nyholm ffb0d2d424
minor #41712 [Validator] Fix some typos in Greek language (simplegr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] Fix some typos in Greek language

| 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 -->
| License       | MIT

Fix some typos in Greek language

Commits
-------

8df2ea12d3 Fix some typos in Greek language
2021-06-16 16:15:28 +02:00
George Yiannoulopoulos 8df2ea12d3
Fix some typos in Greek language 2021-06-15 11:42:13 +03:00
Alexander M. Turek 0fa07c6d7c bug #41644 [Config] fix tracking attributes in ReflectionClassResource (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Config] fix tracking attributes in ReflectionClassResource

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

Commits
-------

7ad8247422 [Config] fix tracking attributes in ReflectionClassResource
2021-06-10 17:19:12 +02:00
David Maicher 608a3e596a [Mailer] fix encoding of addresses using SmtpTransport 2021-06-10 15:25:38 +02:00
Nicolas Grekas 7ad8247422 [Config] fix tracking attributes in ReflectionClassResource 2021-06-09 17:56:09 +02:00