Commit Graph

48745 Commits

Author SHA1 Message Date
Alexander M. Turek 869c734194 bug #40386 [DependencyInjection][Security] Backport psr/container 1.1/2.0 compatibility (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection][Security] Backport psr/container 1.1/2.0 compatibility

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix https://github.com/symfony/symfony/pull/40384/files#r588494278
| License       | MIT
| Doc PR        | N/A

This PR backports a fix that I had to apply to the 5.x branch in order to make it compatible with the `psr/container` 1.1 interfaces.

It also updates various composer.json files:
* Security Core only consumes a PSR `ContainerInterface` without providing its own implementation. I should be compatible with version 2 of the PSR package already.
* ~~DependencyInjection breaks on PHP 7.2 and 7.3 if `psr/container` 1.1.0 is installed. A version 1.1.1 has already been release that fixes the issue. I've added a conflict rule to document the incompatibility.~~

Commits
-------

7f8242ef58 Backport psr/container 1.1/2.0 compatibility
2021-03-05 21:09:10 +01:00
Alexander M. Turek 7f8242ef58 Backport psr/container 1.1/2.0 compatibility 2021-03-05 19:16:26 +01:00
Fabien Potencier 2536e178b1 Bump Symfony version to 4.4.21 2021-03-04 19:04:32 +01:00
Fabien Potencier fb90227d34
Merge pull request #40363 from fabpot/release-4.4.20
released v4.4.20
2021-03-04 19:00:44 +01:00
Fabien Potencier 369dea8c72 Update VERSION for 4.4.20 2021-03-04 19:00:27 +01:00
Fabien Potencier 0e4e0ed773 Update CONTRIBUTORS for 4.4.20 2021-03-04 19:00:24 +01:00
Fabien Potencier a68006d691 Update CHANGELOG for 4.4.20 2021-03-04 19:00:15 +01:00
Fabien Potencier 218bf5ea9a bug #40318 [Translation] deal with indented heredoc/nowdoc tokens (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Translation] deal with indented heredoc/nowdoc tokens

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

Commits
-------

4721097cab deal with indented heredoc/nowdoc tokens
2021-03-04 16:39:09 +01:00
Fabien Potencier 37506f313a minor #40356 [Validator] Fix return types (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] Fix return types

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

Commits
-------

e67ef5bbff [Validator] Fix return types
2021-03-04 16:31:27 +01:00
Alexander M. Turek e67ef5bbff [Validator] Fix return types 2021-03-03 23:57:07 +01:00
Alexander M. Turek ea741e6165 minor #40297 Add missing translations for Belarusian (Nyholm, OxanaKozlova)
This PR was merged into the 4.4 branch.

Discussion
----------

Add missing translations for Belarusian

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

Add translations for Belarusian

Commits
-------

1b84d5d23b Add translation for Belarusian
8e1d3285ed Adding templates for Belarusian
2021-03-03 18:05:48 +01:00
OxanaKozlova 1b84d5d23b Add translation for Belarusian 2021-03-03 19:55:00 +03:00
Alexander M. Turek 6d2998e4d7 bug #40350 [DependencyInjection] fix parsing calls of methods named "method" (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] fix parsing calls of methods named "method"

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

Commits
-------

a9de390676 fix parsing calls of methods named "method"
2021-03-03 13:27:34 +01:00
Christian Flothmann a9de390676 fix parsing calls of methods named "method" 2021-03-03 13:11:09 +01:00
Alexander M. Turek cc606003a5 minor #40341 Specify that we run CI on Ubuntu-20.04 (Nyholm)
This PR was merged into the 4.4 branch.

Discussion
----------

Specify that we run CI on Ubuntu-20.04

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

This will remove the warning when we run the CI. This will also explicitly show what operating system we run the test on. Currently we just say: "Whatever Ubuntu Github decides"...

Commits
-------

3c47e03e92 Specify that we run CI on Ubuntu-20.04
2021-03-02 12:09:34 +01:00
Nyholm 3c47e03e92
Specify that we run CI on Ubuntu-20.04 2021-03-02 10:27:35 +01:00
Christian Flothmann 07d7f6bad7 bug #40316 [Serializer] zero parts can be omitted in date interval input (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Serializer] zero parts can be omitted in date interval input

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

Commits
-------

c316708669 zero parts can be omitted in date interval input
2021-03-01 14:37:03 +01:00
Christian Flothmann 4721097cab deal with indented heredoc/nowdoc tokens 2021-02-26 14:53:48 +01:00
Nyholm b3c4d639dd
minor #40314 improve exception message if symfony/security-csrf is missing (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

improve exception message if symfony/security-csrf is missing

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

Commits
-------

1a26ed43e7 improve exception message if symfony/security-csrf is missing
2021-02-26 13:58:15 +01:00
Christian Flothmann c316708669 zero parts can be omitted in date interval input 2021-02-26 13:02:03 +01:00
Christian Flothmann 1a26ed43e7 improve exception message if symfony/security-csrf is missing 2021-02-26 11:19:16 +01:00
Nicolas Grekas a5683c5324 bug #40239 MockResponse total_time should not be simulated when provided (Pierrick VIGNAND)
This PR was merged into the 4.4 branch.

Discussion
----------

MockResponse total_time should not be simulated when provided

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

When you provide a `total_time` to a MockResponse, it is overriden. It should be simulated only when it is not provided I guess.
Ex: `new MockResponse('{"foo":"bar"}', ['total_time' => 0.4])`

Commits
-------

8dada95cbf fix: MockResponse total_time should not be simulated when provided
2021-02-26 11:01:20 +01:00
Nicolas Grekas 3fe1564912 bug #40299 [Cache] Add server-commands support for Predis Replication Environments (DemigodCode)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Add server-commands support for Predis Replication Environments

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

This fix is for predis MasterSlaveConnections which don't allow to run server commands.
Due to that it's not possible to e.g. clear a cache with cache:pool:clear.

PhpRedis and Predis do not have the same interface, so have to check which implementation is used.
Furthermore, the getClientFor('master') works only for replicated redis instances.

Commits
-------

2ae5c33c80 [Cache] Add server-commands support for Predis Replication Environments
2021-02-26 00:52:22 +01:00
DemigodCode 2ae5c33c80 [Cache] Add server-commands support for Predis Replication Environments 2021-02-26 00:52:11 +01:00
Nicolas Grekas e141afb60b minor #40311 Speedup psalm (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Speedup psalm

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

My try at #40310

Commits
-------

3fb74abe62 Speedup psalm
2021-02-26 00:44:25 +01:00
Nicolas Grekas 3fb74abe62 Speedup psalm 2021-02-26 00:35:49 +01:00
Pierrick VIGNAND 8dada95cbf
fix: MockResponse total_time should not be simulated when provided 2021-02-25 19:06:45 +01:00
Nicolas Grekas 87aeb8da13 bug #40231 [HttpKernel] Configure `session.cookie_secure` earlier (tamcy)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Configure `session.cookie_secure` earlier

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

This PR does what @stof had suggested in #40221, allow me to quote him directly:

> 1. avoid setting auto as a value for the ini setting in the NativeSessionStorage initialization
> 2. ensuring that SessionListener resolves the auto value by the time the SessionListener runs, and not by the time the getSession() method is called in the Request session factory callback

Commits
-------

e82918cd60 [HttpKernel] Configure `session.cookie_secure` earlier
2021-02-25 18:12:57 +01:00
tamcy e82918cd60 [HttpKernel] Configure `session.cookie_secure` earlier 2021-02-25 18:11:33 +01:00
Nicolas Grekas 07b6efb19f minor #40308 Make sure the Psalm review CI job is working (Nyholm)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Make sure the Psalm review CI job is working

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

This PR is just a test to make sure psalm works as expected.

EDIT: It also fixes issues..

Commits
-------

d5a05f1b30 Make sure the Psalm review CI job is working
2021-02-25 17:51:29 +01:00
Nyholm d5a05f1b30 Make sure the Psalm review CI job is working 2021-02-25 17:51:23 +01:00
Nicolas Grekas 890ada429d minor #40291 Adding a Github action to run Psalm (Nyholm)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Adding a Github action to run Psalm

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

I've seen sometimes that we've forgotten to add `\` before `Throwable` or that we refer to a class that does not exist. One could argue that the code is not properly tested, but somehow these PRs still get merged. (And quickly fixed in a follow up PR).

I suggest to add psalm to check every PR for some errors that can be found with a static analyser. This is to help/automate the PR review process. All psalm errors found should be reviewed and discussed. The maintainers can decide to ignore some warnings if they want to. (Ie false positives)

This PR is about “Psalm PR review”. It does not try to fix “Psalm compatibility”. Psalm compatibility is a separate issue that should be discussed separate from the "Psalm PR review".

I currently plan to follow up with the more controversial topic of "Should we make Symfony more compatible with Psalm or not".

Commits
-------

c5ed24d8cb Adding a Github action to run Psalm
2021-02-25 17:18:26 +01:00
Nyholm c5ed24d8cb Adding a Github action to run Psalm 2021-02-25 17:18:18 +01:00
Nyholm b95544559a
minor #40304 [TwigBridge] Install symfony/intl to run tests on Travis (wouterj)
This PR was merged into the 4.4 branch.

Discussion
----------

[TwigBridge] Install symfony/intl to run tests on Travis

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

The hard dependency on `symfony/intl` was removed from the Form component in 5.3-dev (#40298). I suggest to add the explicit dev dependency on TwigBridge on 4.4 already.

Commits
-------

b2970456bf [TwigBridge] Install symfony/intl to run tests on Travis
2021-02-25 13:43:50 +01:00
Wouter de Jong b2970456bf [TwigBridge] Install symfony/intl to run tests on Travis 2021-02-25 12:27:58 +01:00
Nicolas Grekas 91121acf4b bug #40283 [Translation] Make `name` attribute optional in xliff2 (MarieMinasyan)
This PR was submitted for the 5.2 branch but it was merged into the 4.4 branch instead.

Discussion
----------

[Translation] Make `name` attribute optional in xliff2

Do not set a fake `name` attribute on `unit` element from xliff2 to allow using `source` attribute and avoid missing translation error

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

When `xlf` translations are loaded, if a name exists on `unit` element, the segment's source is ignored:
```foreach ($xml->xpath('//xliff:unit') as $unit) {
            foreach ($unit->segment as $segment) {
                $attributes = $unit->attributes();
                $source = $attributes['name'] ?? $segment->source;
```

At the same time, when dumping translations, the segment's source is copied into the unit's name attribute, unless it's longer than 80 characters. In that case, `substr(md5($source), -7)` is set into the name attribute.
This results in a missing translation error, because the source is ignored and the name is a random string.

Suggested solution: only set the name attribute if the string is less than 80 characters.

Commits
-------

97058559cc [Translation] Make `name` attribute optional in xliff2
2021-02-24 17:01:10 +01:00
Marie Minasyan 97058559cc [Translation] Make `name` attribute optional in xliff2
Do not set a fake `name` attribute on `unit` element from xliff2 to allow using `source` attribute and avoid missing translation error
2021-02-24 17:01:00 +01:00
Nicolas Grekas 56194a4535 Move github templates at the org level 2021-02-23 11:03:30 +01:00
Nyholm 8e1d3285ed
Adding templates for Belarusian 2021-02-22 22:11:34 +01:00
Nicolas Grekas b5dc77ea16 minor #40272 [Console] Handle calls to mb_ functions with non string arguments (Yopai)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Handle calls to mb_ functions with non string arguments

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

In PHP8.1, a number of functions who were accepting null arguments will only accept
string ones.
(see https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg)

In the polyfill, mb_* functions are already declared with a strict type checking of "string".

Therefore, it is necessary to get rid of the use of non string arguments when calling mb_* functions,
so that it won't break when either using the polyfill,or future php8 versions.

In every call where the argument may not be a string, this commit enforces the string type of the argument (with transtyping)

--- For reviewers
* I generally don't like transtyping, but found it was the more "secure" way (on a non-BC point of view) here.
Specially in Console/Helper/Table.php, where $cell can be an object (there are 2 "$cell instanceof ... tests)
However, where the argument can already be either null or string (and not anything else), there may a beter approach ?

* It's the first time I send a PR on symfony, so don't hesitate pointing me to thinks I've forgotten to done.

Commits
-------

ac45be2580 In calls to mb_ functions, silently transform arg into string
2021-02-22 19:44:15 +01:00
Nicolas Grekas 1688e5d9b4 bug #39599 [Cache] Fix Redis TLS scheme `rediss` for Redis connection (misaert)
This PR was submitted for the 5.x branch but it was merged into the 4.4 branch instead.

Discussion
----------

[Cache] Fix Redis TLS scheme `rediss` for Redis connection

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/14728

Like https://github.com/symfony/symfony/pull/35503 on Symfony Messenger, this will enable TLS support for Redis adapter.

The implementation just prefix the host with `tls://` as described here: https://github.com/phpredis/phpredis#connect-open

I don't know how to test it because I guess I need a TLS Redis in `src/Symfony/Component/Cache/Tests/Adapter/RedisAdapterTest.php`.

Commits
-------

3288897e0f [Cache] Fix Redis TLS scheme `rediss` for Redis connection
2021-02-22 19:01:56 +01:00
Mickaël Isaert 3288897e0f [Cache] Fix Redis TLS scheme `rediss` for Redis connection 2021-02-22 19:01:38 +01:00
Pierre-Olivier Vares ac45be2580 In calls to mb_ functions, silently transform arg into string
In PHP8, a number of functions who were accepting null arguments will only accept
string ones.

In the polyfill, mb_* functions are declared with a trict type checking of "string".

Therefore, we deprecate the use of non string arguments, so that it won't break when either using the polyfill,
or future php8 versions.
2021-02-22 18:49:23 +01:00
Nicolas Grekas f3529fd9df minor #40271 Switched to non-null defaults in exception constructors (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

Switched to non-null defaults in exception constructors

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

PHP 8.1 will trigger a deprecation warning if we pass `null` as `$message` or `$code` to the constructor of `\Exception`. However, many of our own exception accept `null` for those parameters and even use them as default.

This is unfortunate because code like the following snippet would trigger that deprecation although the code itself is perfectly fine:

```php
throw new NotFoundHttpException();
```

With this PR, I'd like to change our defaults to `''` and `0` while still allowing to pass `null` for BC. In a follow-up PR for the 5.x branch, I'd like to deprecate passing `null`, matching the future behavior of PHP.

This PR also adjust various PHPDoc blocks with inaccurate types.

Commits
-------

f8e10094a4 Switched to non-null defaults in exception constructors
2021-02-22 16:37:04 +01:00
Alexander M. Turek f8e10094a4 Switched to non-null defaults in exception constructors 2021-02-22 16:36:50 +01:00
Nicolas Grekas 070f003291 bug #40244 [Routing] fix conflict with param named class in attribute (nlhommet)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Routing] fix conflict with param named class in attribute

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

Fix conflict with AnnotationFileLoader and class PHP8 Attribute with param named "class"

Commits
-------

27bba684d8 [Routing] fix conflict with param named class in attribute
2021-02-22 16:26:26 +01:00
Nicolas LHommet 27bba684d8 [Routing] fix conflict with param named class in attribute 2021-02-22 16:26:18 +01:00
Nicolas Grekas 0027d1cd05 bug #40273 [Cache] fix setting items' metadata on commit() (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] fix setting items' metadata on commit()

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

Commits
-------

9bb4b3106d [Cache] fix setting items' metadata on commit()
2021-02-22 15:52:02 +01:00
Nicolas Grekas 9bb4b3106d [Cache] fix setting items' metadata on commit() 2021-02-22 12:06:49 +01:00
Fabien Potencier 8054d1d04c bug #40258 [Form] Ignoring invalid forms from delete_empty behavior in CollectionType (yceruto)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Form] Ignoring invalid forms from delete_empty behavior in CollectionType

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

As expained on linked issue, empty forms cannot be removed if they are invalid upon submitting (e.g. transformation failures). Thus, form errors can be displayed properly to the end user.

Commits
-------

e4911554e3 [Form] Ignoring invalid forms from delete_empty behavior in CollectionType
2021-02-21 18:50:09 +01:00