Commit Graph

47743 Commits

Author SHA1 Message Date
Christian Flothmann
3227303dab allow consumers to mock all methods 2020-09-09 19:04:53 +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
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
81b954b753 minor #38120 [Intl] promote warnings to value errors on PHP 8 (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Intl] promote warnings to value errors on PHP 8

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

Commits
-------

82d9d41d57 [Intl] promote warnings to value errors on PHP 8
2020-09-09 09:59:57 +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
bb3bc7fc48 minor #38119 Remove some leftover for HHVM support (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

Remove some leftover for HHVM support

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

cf9e75614b Remove some leftover for HHVM support
2020-09-09 07:23:40 +02:00
Fabien Potencier
cf9e75614b Remove some leftover for HHVM support 2020-09-09 07:20:36 +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
Fabien Potencier
8a186697dc bug #38116 [Console] Silence warnings on sapi_windows_cp_set() call (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Silence warnings on sapi_windows_cp_set() call

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

Commits
-------

2a57ba5267 [Console] Silence warnings on sapi_windows_cp_set() call
2020-09-09 07:06:23 +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
Nicolas Grekas
68866fbc9e bug #38114 [Console] guard $argv + $token against null, preventing unnecessary exceptions (bilogic)
This PR was submitted for the 4.4 branch but it was merged into the 3.4 branch instead.

Discussion
----------

[Console] guard $argv + $token against null, preventing unnecessary exceptions

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| Tickets       | Fix https://github.com/symfony/symfony/issues/38105
| License       | MIT

This issue was causing an unnecessary exception, leading to difficulty in locating the actual offending code as reported by many cases as detailed in #38105

Commits
-------

dbe335d9be guard $argv + $token against null, preventing unnecessary exceptions
2020-09-08 22:57:49 +02:00
bilogic
dbe335d9be guard $argv + $token against null, preventing unnecessary exceptions 2020-09-08 22:57:41 +02:00
Nicolas Grekas
bf9ce8b8b0 [Debug] fix merge 2020-09-08 16:30:03 +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
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
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
ba61d89ff4 bug #38094 [PhpUnitBridge] Skip internal classes in CoverageListenerTrait (sanmai)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[PhpUnitBridge] Skip internal classes in CoverageListenerTrait

PHPUnit 9+ is picky about test covering, say, a `\RuntimeException`. Fails with the likes:

    "@covers RuntimeException" is invalid

Judging by the commit e06850c12b this change is required for PHPUnit 9.1 and up. [Here's it being tested.](60c6fb972b/tests/unit/ClassMethodUnitTest.php (L49-L54))

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Follow-up to #38054
| License       | MIT

Commits
-------

a0dedb9aa6 [PhpUnitBridge] Skip internal classes in CoverageListenerTrait
2020-09-08 09:26:29 +02:00
Alexey Kopytko
a0dedb9aa6 [PhpUnitBridge] Skip internal classes in CoverageListenerTrait 2020-09-08 09:26:14 +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
Fabien Potencier
12b419e481 bug #38100 [ErrorHandler] Parse "x not found" errors correctly on php 8 (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Parse "x not found" errors correctly on php 8

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

This PR is #38049 applied to the 4.4 branch.

Commits
-------

d9c9aea7ee [ErrorHandler] Parse "x not found" errors correctly on php 8.
2020-09-08 06:56:58 +02:00
Fabien Potencier
91b6739031 bug #38099 Prevent parsing invalid octal digits as octal numbers (julienfalque)
This PR was merged into the 3.4 branch.

Discussion
----------

Prevent parsing invalid octal digits as octal numbers

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

Values starting with `0` but containing `8` or `9` such as `0123456789` are not valid octal numbers, therefore they should be parsed as regular strings. This is consistent with how other invalid octal values are parsed, e.g. `01234567ab` already gets parsed as the string `"01234567ab"`.

Commits
-------

c7dcd82f03 Prevent parsing invalid octal digits as octal numbers
2020-09-08 06:53:29 +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
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
Fabien Potencier
fff8c001e6 bug #38095 [Mailer] Remove unnecessary check for existing request (jschaedl)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Remove unnecessary check for  existing request

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

3feff72186 remove unnecessary check for  existing request
2020-09-07 17:29:19 +02:00
Jan Schädlich
3feff72186 remove unnecessary check for existing request 2020-09-07 17:24:28 +02:00
Fabien Potencier
8e34978e4e bug #38091 [DI] fix ContainerBuilder on PHP8 (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] fix ContainerBuilder on PHP8

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

Commits
-------

a3275a7be9 [DI] fix ContainerBuilder on PHP8
2020-09-07 14:09:53 +02:00
Fabien Potencier
2248fa5fbd minor #38090 Bump ext-igbinary to 3.1.5 to fix compile error on php 8 (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

Bump ext-igbinary to 3.1.5 to fix compile error on php 8

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

Details: http://pecl.php.net/package-changelog.php?package=igbinary

Commits
-------

ddf4fd255e Bump ext-igbinary to 3.1.5 to fix compile error on php 8.
2020-09-07 14:07:53 +02:00
Nicolas Grekas
a3275a7be9 [DI] fix ContainerBuilder on PHP8 2020-09-07 14:07:49 +02:00
Alexander M. Turek
ddf4fd255e Bump ext-igbinary to 3.1.5 to fix compile error on php 8. 2020-09-07 13:53:53 +02:00
Fabien Potencier
7c00aab646 bug #38086 [HttpClient] with "bindto" with NativeHttpClient (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] with "bindto" with NativeHttpClient

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

/cc @derrabus

Commits
-------

cea05311fc [HttpClient] with "bindto" with NativeHttpClient
2020-09-07 09:56:06 +02:00
Nicolas Grekas
cea05311fc [HttpClient] with "bindto" with NativeHttpClient 2020-09-07 09:41:14 +02:00
Fabien Potencier
d441d867cd bug #38063 [FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable

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

As seen in https://github.com/symfonycorp/cloud-templates/pull/15, having the path of the preload file vary by env+debug makes configuring PHP.ini settings impossible.

This PR dump a new `preload.php` file in `src/` when `cache:clear` is called.
This makes the path predictable.

This is submitted as a bugfix because the current behavior is barely usable without this change.

Commits
-------

54c965c7d0 [FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable
2020-09-07 09:18:11 +02:00
Nicolas Grekas
54c965c7d0 [FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable 2020-09-07 09:07:11 +02:00
Fabien Potencier
043e7c34de minor #38078 [FrameworkBundle] Fix Tests on PHPUnit 9.3 (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] Fix Tests on PHPUnit 9.3

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

When joining two constraints with a `LogicalAnd`, PHPUnit will generate a failure message where the message omitted by the first constraint will be wrapped in parenthesis. I'm using a regular expression now, so we can support both variants.

Commits
-------

8bc36d7420 [FrameworkBundle] Fix Tests on PHPUnit 9.3.
2020-09-07 07:09:25 +02:00
Fabien Potencier
d25ea073da minor #38077 [WebProfilerBundle] Fix Tests for PHPUnit 9.3 (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[WebProfilerBundle] Fix Tests for PHPUnit 9.3

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

PHPUnit's `logicalXor()` creates an XOR operation for one or multiple constraints. It expects the operands for that operation to be passed as variadic arguments, but this particullar test passes them in a single array.

This somewhat works on PHPUnit 8, but fails on PHPUnit 9. This PR fixes the failing test.

Commits
-------

f290b97d4f [WebProfilerBundle] Fix Tests on PHPUnit 9.3.
2020-09-07 07:04:20 +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
Fabien Potencier
0afa250fc9 bug #38080 [Console] Make sure $maxAttempts is an int or null (derrabus)
This PR was submitted for the 4.4 branch but it was merged into the 3.4 branch instead.

Discussion
----------

[Console] Make sure $maxAttempts is an int or null

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

The behavior of the "less than" operator for mixed types has changed in php 8. It is now possible to call `setMaxAttempts()` with a random string without raising the expected `InvalidArgumentException`. I've added an explicit type cast in order to restore the previous behavior.

Commits
-------

4fcd4916ed [Console] Make sure $maxAttempts is an int or null.
2020-09-07 07:00:40 +02:00