Commit Graph

48774 Commits

Author SHA1 Message Date
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
Yonel Ceruto e4911554e3 [Form] Ignoring invalid forms from delete_empty behavior in CollectionType 2021-02-21 18:50:02 +01:00
Fabien Potencier bda90dfd2f minor #40223 Add Symfony Armenian Translations (ErikSaunier)
This PR was merged into the 4.4 branch.

Discussion
----------

Add Symfony Armenian Translations

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

Added missing armenian translations for Form components

Commits
-------

d1c3e21eff Add Symfony Armenian Translations
2021-02-21 18:47:22 +01:00
Nicolas Grekas e15ac7ad97 minor #40253 [BrowserKit] Add different header notations to tests (malteschlueter)
This PR was merged into the 4.4 branch.

Discussion
----------

[BrowserKit] Add different header notations to tests

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

In the past there was a issue #29736 that the header wasn't processed correctly. To reproduce and prevent this behaviour i extended the tests for this. At the end everything is fine, also in 5.x branch. See bf03d6889d.

Commits
-------

251ce8f924 Add different header notations to tests
2021-02-20 18:06:12 +01:00
Erik Saunier d1c3e21eff Add Symfony Armenian Translations 2021-02-19 18:17:03 +01:00
Nicolas Grekas 1329689ace cs fix 2021-02-19 10:48:50 +01:00
Nicolas Grekas a7f12dab24 minor #40250 Stop using deprecated ArrayCache from Doctrine (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Stop using deprecated ArrayCache from Doctrine

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

Follows https://github.com/doctrine/cache/pull/355

Commits
-------

15f021f825 Stop using deprecated ArrayCache from Doctrine
2021-02-18 23:32:40 +01:00
Nicolas Grekas 15f021f825 Stop using deprecated ArrayCache from Doctrine 2021-02-18 23:27:55 +01:00
Malte Schlüter 251ce8f924 Add different header notations to tests 2021-02-18 11:52:56 +01:00
Nicolas Grekas 9765b5ab86 bug #40162 [Intl] fix Locale::getFallback() throwing exception on long $locale (AmirHo3ein13)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Intl] fix Locale::getFallback() throwing exception on long $locale

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

`Locale::getFallback()` throws an exception when the `$locale` length is greater than `INTL_MAX_LOCALE_LEN` so I added a condition to check if locale_parse return null, the `Locale::getFallback()` don't call `\count` function and just return null instead.

Commits
-------

a89ced8eac [Intl] fix Locale::getFallback() throwing exception on long $locale
2021-02-17 16:45:36 +01:00
bahram a89ced8eac [Intl] fix Locale::getFallback() throwing exception on long $locale 2021-02-17 16:45:29 +01:00
Nyholm 1a5aec14d7
minor #40222 install compatible versions of mongodb/mongodb only (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

install compatible versions of mongodb/mongodb only

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

Commits
-------

3a231c2030 install compatible versions of mongodb/mongodb only
2021-02-17 16:05:42 +01:00
Christian Flothmann 3a231c2030 install compatible versions of mongodb/mongodb only 2021-02-17 15:20:29 +01:00
Nicolas Grekas c1c20860e5 bug #40208 [PropertyInfo] fix resolving self to name of the analyzed class (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[PropertyInfo] fix resolving self to name of the analyzed class

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

Commits
-------

e9f2ece991 fix resolving parent/self/static type annotations
2021-02-16 13:45:38 +01:00
Christian Flothmann e9f2ece991 fix resolving parent/self/static type annotations 2021-02-16 13:45:26 +01:00
Fabien Potencier f8ce7d0803 bug #40209 [WebLink] Escape double quotes in attributes values (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[WebLink] Escape double quotes in attributes values

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

If the attribute value contains a double quote, the serialized value is invalid: `</foo>; rel="alternate"; title="foo " bar"`. Ideally we would use `addcslashes` but we can't because users that already pass escaped values would then be impacted.

Commits
-------

7946be2b95 [WebLink] Escape double quotes in attributes values
2021-02-16 13:01:27 +01:00
Robin Chalas 9230f69106 bug #40192 [Console] fix QuestionHelper::getHiddenResponse() not working with space in project directory name (Yendric)
This PR was submitted for the 5.2 branch but it was squashed and merged into the 4.4 branch instead.

Discussion
----------

[Console] fix QuestionHelper::getHiddenResponse() not working with space in project directory name

| Q             | A
| ------------- | ---
| Branch?       | 5.2
| 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 #40190 <!-- 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 #40190 to allow spaces in project directory name.

Commits
-------

0e421004eb [Console] fix QuestionHelper::getHiddenResponse() not working with space in project directory name
2021-02-16 12:16:11 +01:00
Yendric 0e421004eb [Console] fix QuestionHelper::getHiddenResponse() not working with space in project directory name 2021-02-16 12:16:02 +01:00
Thomas Calvet 7946be2b95 [WebLink] Escape double quotes in attributes values 2021-02-16 12:01:18 +01:00
Nicolas Grekas 08c789c97b minor #40206 Ignore indirect deprecation triggered by doctrine/orm (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Ignore indirect deprecation triggered by doctrine/orm

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

Commits
-------

8530ada94d Ignore indirect deprecation triggered by doctrine/orm
2021-02-16 10:46:56 +01:00
Nicolas Grekas 8530ada94d Ignore indirect deprecation triggered by doctrine/orm 2021-02-16 10:34:45 +01:00
Fabien Potencier 89d70970a9 minor #39809 Symfony Armenian Translations (azatyan, Nyholm)
This PR was submitted for the 5.x branch but it was squashed and merged into the 4.4 branch instead.

Discussion
----------

Symfony Armenian Translations

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

Commits
-------

93fe4a213e Symfony Armenian Translations
2021-02-16 08:10:23 +01:00
Tigran Azatyan 93fe4a213e Symfony Armenian Translations 2021-02-16 08:10:14 +01:00