Commit Graph

41170 Commits

Author SHA1 Message Date
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
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
Jan Schädlich
3feff72186 remove unnecessary check for existing request 2020-09-07 17:24:28 +02:00
Fabien Potencier
3ba965a6cd feature #37704 [MonologBridge] Added SwitchUserTokenProcessor to log the impersonator (IgorTimoshenko)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[MonologBridge] Added SwitchUserTokenProcessor to log the impersonator

| 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       | 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 pull request adds the ability to log the impersonator user in case of user impersonation feature usage. The current TokenProcessor logs only the current token and there are no ability to simply log the original token, so we need to copy-paste the TokenProcessor and change a few lines to log the original token

Commits
-------

2f8651d4ec [MonologBridge] Added SwitchUserTokenProcessor to log the impersonator
2020-09-07 15:03:25 +02:00
Igor Timoshenko
2f8651d4ec [MonologBridge] Added SwitchUserTokenProcessor to log the impersonator 2020-09-07 15:03:17 +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
Fabien Potencier
d0c915caa9 feature #37474 [RFC][Routing] Added the Route attribute (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[RFC][Routing] Added the Route attribute

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

I was wondering if we can make use of [attributes](https://wiki.php.net/rfc/attributes_v2) as a replacement for Doctrine Annotations for configuring routes.

I have modified the existing `AnnotationClassLoader` so that it merges attributes and annotations. This way, an application could transparently switch from annotations to attributes. Moreover, the `AnnotationClassLoader` does not require an annotation reader anymore.

Since the chosen syntax `#[…]` is treated as a comment by php 7, I was able to use the existing annotation class, which makes the migration even easier.

#### Example with Doctrine Annotations
```php
use Symfony\Component\Routing\Attribute\Route;

class ActionPathController
{
    /**
     * @Route("/path", name: "action")
     */
    public function action()
    {
    }
}
```

#### Same example with the proposed Attribute
```php
use Symfony\Component\Routing\Attribute\Route;

class ActionPathController
{
    #[Route('/path', name: 'action')]
    public function action()
    {
    }
}
```

Commits
-------

f0978de493 [Routing] Added the Route attribute.
2020-09-07 14:03:50 +02:00
Alexander M. Turek
ea262441e7 [DependencyInjection] Add the Required attribute. 2020-09-07 13:33:47 +02:00
Christian Flothmann
2cc12596ce Merge branch '5.1' into master
* 5.1:
  fix tests
2020-09-07 11:40:08 +02:00
Christian Flothmann
4cd0c7d591 fix tests 2020-09-07 11:21:39 +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
9150590818 Merge branch '5.1'
* 5.1:
  [FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable
2020-09-07 09:18:55 +02:00
Fabien Potencier
86d805c3b3 Merge branch '4.4' into 5.1
* 4.4:
  [FrameworkBundle] generate preload.php in src/ to make opcache.preload predictable
2020-09-07 09:18:45 +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
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
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
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
Alexander M. Turek
8bc36d7420 [FrameworkBundle] Fix Tests on PHPUnit 9.3. 2020-09-06 20:08:39 +02:00
Alexander M. Turek
f290b97d4f [WebProfilerBundle] Fix Tests on PHPUnit 9.3. 2020-09-06 19:41:24 +02:00
Fabien Potencier
f15f55ceeb feature #38068 [Notifier] Register NotificationDataCollector and NotificationLoggerListener service (jschaedl)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Notifier] Register NotificationDataCollector and NotificationLoggerListener service

| Q             | A
| ------------- | ---
| Branch?       | master<!-- 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 #38009  <!-- 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
-------

1beffd1363 Register NotificationDataCollector and NotificationLoggerListener
2020-09-06 19:14:11 +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
Jan Schädlich
1beffd1363 Register NotificationDataCollector and NotificationLoggerListener 2020-09-06 11:11:59 +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
63eab44e69 bug #38071 [PhpUnitBridge] Adjust output parsing of CoverageListenerTrait for PHPUnit 9.3 (sanmai, derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

[PhpUnitBridge] Adjust output parsing of CoverageListenerTrait for PHPUnit 9.3

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

This PR makes `CoverageListenerTrait` pass with PHPUnit 9.3. It contains a backport of #38054.

The problem that is addressed here is that a one of the fixture classes is now included in the output despite having a coverage of zero. The test now accepts both cases:

* The class is omitted from the output
* The class appears with 0.00% coverage.

Commits
-------

a3831dc0f2 [PhpUnitBridge] Adjust output parsing for PHPUnit 9.3.
99c98bd716 [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
2020-09-05 19:07:18 +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
Alexander M. Turek
a3831dc0f2 [PhpUnitBridge] Adjust output parsing for PHPUnit 9.3. 2020-09-05 18:24:06 +02:00
Alexey Kopytko
99c98bd716 [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x 2020-09-05 18:24:06 +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
Fabien Potencier
da73be818b bug #38059 [Cache] Fix CacheCollectorPass with decorated cache pools (shyim)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Fix CacheCollectorPass with decorated cache pools

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

The `getDefinition` call in `addToCollector` does not work when the service is decorated. Also instances will be added with the decoration name. This looks weird in the profiler. I have changed it to prefer the attribute name.

Before:
![image](https://user-images.githubusercontent.com/6224096/92225243-3be27c00-eea3-11ea-8bd5-2ae69212e658.png)

After: (`\Shopware\Storefront\Framework\Cache\CacheDecorator` did go into `cache.object`)
![image](https://user-images.githubusercontent.com/6224096/92225284-47ce3e00-eea3-11ea-885f-cdba95b89302.png)

Commits
-------

973442759c Fix CacheCollectorPass with decorated cache pools
2020-09-04 14:47:27 +02:00
Soner Sayakci
973442759c
Fix CacheCollectorPass with decorated cache pools 2020-09-04 14:31:16 +02:00
Fabien Potencier
a19f91ad69 bug #38054 [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x (sanmai)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x

Updated to use `PHPUnit\Util\Annotation\Registry` and related classes.

Fixes #37637

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

- [x] Fixes the issue under PHPUnit 8.5+
- [ ] Tests TBD

If this is a sensible approach, I will try to add a test for this addition.

Commits
-------

5f83811002 [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x
2020-09-04 13:30:09 +02:00
Alexey Kopytko
5f83811002 [PhpUnitBridge] CoverageListenerTrait update for PHPUnit 8.5/9.x 2020-09-04 13:30:02 +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
Gennadi Janzen
f44fa34098 [DoctrineBridge] Ulid and Uuid as Doctrine Types 2020-09-03 21:51:16 +02:00
Fabien Potencier
4c96577d4d minor #38044 Add tests for translated error messages of json authentication (Malte Schlüter)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Add tests for translated error messages of json authentication

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

In PR #38037 i added the translator to the json authenticator but there are some tests missing. I added some now.

Commits
-------

b50fc19af0 Add tests for translated error messages of json authentication
2020-09-03 17:07:11 +02:00
Malte Schlüter
b50fc19af0 Add tests for translated error messages of json authentication 2020-09-03 13:33:24 +02:00
Nicolas Grekas
e59ccc5cc0 Merge branch '5.1'
* 5.1:
  [SecurityBundle] fix tests
  relax some test assertions
2020-09-03 13:20:29 +02:00
Nicolas Grekas
b2609c4bae [SecurityBundle] fix tests 2020-09-03 13:19:25 +02:00
Christian Flothmann
a110caa581 Merge branch '4.4' into 5.1
* 4.4:
  relax some test assertions
2020-09-03 12:43:26 +02:00
Christian Flothmann
473e2933f0 relax some test assertions 2020-09-03 11:25:00 +02:00
Christian Flothmann
7ce234a34b Merge branch '5.1' into master
* 5.1:
  fix tests
2020-09-03 10:41:50 +02:00
Christian Flothmann
0a4cb62677 fix tests 2020-09-03 10:04:57 +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
Fabien Potencier
01577db355 minor #38038 [Security] Add some missing CHANGELOG entries (chalasr)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Security] Add some missing CHANGELOG entries

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

Mentions #37337 in CHANGELOG files.

Commits
-------

46ce480801 [Security] Add some missing CHANGELOG entries
2020-09-02 18:15:42 +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
Nicolas Grekas
160a5bf556 Merge branch '5.1'
* 5.1:
  [PHPUnitBridge] Fix deprecation type detection when trigger_deprecation is used
2020-09-02 17:48:48 +02:00
Nicolas Grekas
a8726dfa7b bug #38013 [PHPUnitBridge] Fix deprecation type detection when trigger_deprecation is used (l-vo)
This PR was merged into the 5.1 branch.

Discussion
----------

[PHPUnitBridge] Fix deprecation type detection when trigger_deprecation is used

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

when trigger_deprecation is used, the deprecation types (self, direct, indirect) are not properly detected because the file where the deprecation come from is always `deprecation-contracts/functions.php`. This PR aims to fix that.

Commits
-------

fd39961180 [PHPUnitBridge] Fix deprecation type detection when trigger_deprecation is used
2020-09-02 17:22:00 +02:00
Laurent VOULLEMIER
fd39961180 [PHPUnitBridge] Fix deprecation type detection when trigger_deprecation is used 2020-09-02 17:21:37 +02:00
Fabien Potencier
52719f2800 bug #37959 [PhpunitBridge] Fix deprecation type detection (when several autoload files are used) (l-vo)
This PR was merged into the 4.4 branch.

Discussion
----------

[PhpunitBridge] Fix deprecation type detection (when several autoload files are used)

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

Several autoload files are supported by the PHPUnit Bridge but when the internal paths are registered (for deprecation type detection), the paths (from prefixes) of the last autoload file override the paths previously registered. This PR fixes this bug.

Commits
-------

cc7b6c5e5a [PhpunitBridge] Fix deprecation type detection
2020-09-02 16:59:26 +02:00
Gocha Ossinkine
b82d9a2dc7 Make AbstractPhpFileCacheWarmer public 2020-09-02 19:04:26 +05: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
Alex Pott
03201f0d23
No longer need to silence errors as we're catching them all 2020-09-02 10:52:53 +01:00
Alex Pott
244e8d2408
Revert "Swallow errors"
This reverts commit ee8cc2666b.
2020-09-02 10:51:41 +01:00
Alex Pott
ee8cc2666b
Swallow errors 2020-09-02 10:14:45 +01:00
Fabien Potencier
f9bfe7fd79
Allow Drupal to wrap the Symfony test listener 2020-09-02 10:08:38 +01: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