Commit Graph

51947 Commits

Author SHA1 Message Date
Fabien Potencier c721e025ea bug #39004 [Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText (Jean85)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText

| Q             | A
| ------------- | ---
| Branch?       | 5.x (bugfix of a 5.x-only feature)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #39003
| License       | MIT

~WIP~ This is now complete and, thanks to @yceruto, I've fixed two bugs in this PR:
 * `ErrorDetailsStamp` couldn't be (de)serialized properly with that constructor argument
 * `FlattenException::$statusText` wasn't (de)normalized

Commits
-------

9af554cb41 [Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText
2020-11-10 07:17:29 +01:00
Alessandro Lai 9af554cb41 [Messenger] Fix JSON deserialization of ErrorDetailsStamp and normalization of FlattenException::$statusText 2020-11-10 07:17:22 +01:00
Christian Flothmann a9895ea72b Merge branch '5.1' into 5.x
* 5.1:
  failing test for issue 38861
  [DoctrineBridge]  indexBy could reference to association columns
2020-11-09 20:34:12 +01:00
Christian Flothmann 05e944b9e5 Merge branch '4.4' into 5.1
* 4.4:
  failing test for issue 38861
  [DoctrineBridge]  indexBy could reference to association columns
2020-11-09 20:27:47 +01:00
Christian Flothmann cdfa9c2d8b Merge branch '3.4' into 4.4
* 3.4:
  failing test for issue 38861
  [DoctrineBridge]  indexBy could reference to association columns
2020-11-09 20:21:10 +01:00
Nicolas Grekas 6724ca799a bug #38628 [DoctrineBridge] indexBy could reference to association columns (juanmiguelbesada)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[DoctrineBridge]  indexBy could reference to association columns

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

This is my approach to solve #37982. It partials reverts @xabbuh PR #38604

This is my first Symfony contribution, so please, tell me if I need to do something more or something is wrong.

Also, this bug affects 4.x and 5.x versions. I think merging in this branches is done automatically. If not, please tell me.

Thanks you

Commits
-------

f9a0e000e9 failing test for issue 38861
4c36145664 [DoctrineBridge]  indexBy could reference to association columns
2020-11-09 18:47:11 +01:00
Bart Wach f9a0e000e9 failing test for issue 38861 2020-11-09 18:46:57 +01:00
Juan Miguel Besada 4c36145664 [DoctrineBridge] indexBy could reference to association columns 2020-11-09 18:41:59 +01:00
Fabien Potencier 2994ef0e1a Merge branch '5.1' into 5.x
* 5.1:
  Optimize circular collection by removing flattening
2020-11-09 13:21:52 +01:00
Fabien Potencier 382d6fc696 Merge branch '4.4' into 5.1
* 4.4:
  Optimize circular collection by removing flattening
2020-11-09 13:21:43 +01:00
Fabien Potencier 0ae674a29a bug #39021 [DependencyInjection] Optimize circular collection by removing flattening (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

 [DependencyInjection] Optimize circular collection by removing flattening

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

Alternative to #39019

Commits
-------

e649f47726 Optimize circular collection by removing flattening
2020-11-09 13:20:23 +01:00
Jérémy Derussé e649f47726
Optimize circular collection by removing flattening 2020-11-09 12:28:57 +01:00
Fabien Potencier 47c2764064 Merge branch '5.1' into 5.x
* 5.1:
  also reset id readers
  Fix LDAP pagination
2020-11-09 11:58:06 +01:00
Fabien Potencier 64089870ce Merge branch '4.4' into 5.1
* 4.4:
  also reset id readers
  Fix LDAP pagination
2020-11-09 11:57:52 +01:00
Fabien Potencier 46410f876e bug #39031 [Ldap] Fix pagination (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Ldap] Fix pagination

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

This replaces #38875 to fix a bug introduced by #38392

Commits
-------

4fe0a6f2b9 Fix LDAP pagination
2020-11-09 11:55:57 +01:00
Fabien Potencier dfe60bb8a4 minor #39029 Adds constants for YamlEncoder options (dbrumann)
This PR was merged into the 5.2-dev branch.

Discussion
----------

Adds constants for YamlEncoder options

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

As I understand it encoders and normalizers use (public) constants for context keys so IDEs can help by providing autocomplete. I added these constants for the YamlEncoder where they are missing right now. For reference see other encoders like CsvEncoder or XmlEncoder.

Commits
-------

6ebf7e164e Adds constants for YamlEncoder options
2020-11-09 11:52:36 +01:00
Fabien Potencier 0d10f6b6b8 bug #39038 [DoctrineBridge] also reset id readers (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[DoctrineBridge]    also reset id readers

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

Commits
-------

784bd0080d also reset id readers
2020-11-09 11:48:59 +01:00
Christian Flothmann 784bd0080d also reset id readers 2020-11-09 09:59:19 +01:00
Denis Brumann 6ebf7e164e
Adds constants for YamlEncoder options 2020-11-08 12:35:30 +01:00
Fabien Potencier 77c82cfa18 feature #39032 [Validator] Allow load mappings from attributes without doctrine/annotations (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Validator] Allow load mappings from attributes without doctrine/annotations

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

Follows #38309.

Currently, we cannot enable constraint mapping from attributes without having `doctrine/annotations` installed. Lifting that limitation is a bit tricky because `ValidatorBuilder::enableAnnotationMapping()` creates an annotation reader if you don't pass one. This PR aims at deprecating this behavior.

I know it's a bit late for such a change in 5.2 and I should have seen earlier that this part was missing. 😓 Since I don't expect people to go all-in on attributes on day one, it's probably okay to postpone this change to 5.3.

Commits
-------

441c80603e [Validator] Allow load mappings from attributes without doctrine/annotations.
2020-11-08 09:40:34 +01:00
Alexander M. Turek 441c80603e [Validator] Allow load mappings from attributes without doctrine/annotations. 2020-11-07 22:48:53 +01:00
Jérémy Derussé 4fe0a6f2b9
Fix LDAP pagination 2020-11-07 21:18:28 +01:00
Alexander M. Turek 7b4d22f8d0 feature #39022 [FrameworkBundle] Allow to use attribute-based configuration of routing/serializer without doctrine/annotations (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

 [FrameworkBundle] Allow to use attribute-based configuration of routing/serializer without doctrine/annotations

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

Follows #37474, #38525

Currently, we need `doctrine/annotations` to be installed in order to configure routing and serializer via PHP attributes. Given that for both components we can already replace Doctrine Annotations completely, I'd like to get rid of that limitation.

Commits
-------

e5492e2e55 [FrameworkBundle] Configure PHP Attributes without doctrine/annotations.
2020-11-07 20:25:59 +01:00
Maxime Steinhausser 50c7c3d364 bug #39002 [Validator] Override the default option of the choice constraint (benji07)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Validator] Override the default option of the choice constraint

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

We have a bundle that run test against the last version of symfony and we detect BC Break when passing a string as the first argument of the class Choice

Our code extends the Choice class and change the defaultOption.

I saw that others constraints class had new construct signature (for php8 attributes), but only some of them kept the array options as their first arguments. Why ?

ping @ogizanagi @derrabus

https://travis-ci.com/github/Elao/PhpEnums/jobs/410045368
```
1) Elao\Enum\Tests\Unit\Bridge\Symfony\Validator\Constraint\EnumTest::testDefaultValueIsEnumClass
Symfony\Component\Validator\Exception\MissingOptionsException: The options "class" must be set for constraint "Elao\Enum\Bridge\Symfony\Validator\Constraint\Enum".
/home/travis/build/Elao/PhpEnums/vendor/symfony/symfony/src/Symfony/Component/Validator/Constraint.php:171
/home/travis/build/Elao/PhpEnums/vendor/symfony/symfony/src/Symfony/Component/Validator/Constraint.php:110
/home/travis/build/Elao/PhpEnums/vendor/symfony/symfony/src/Symfony/Component/Validator/Constraints/Choice.php:75
/home/travis/build/Elao/PhpEnums/src/Bridge/Symfony/Validator/Constraint/Enum.php:39
/home/travis/build/Elao/PhpEnums/tests/Unit/Bridge/Symfony/Validator/Constraint/EnumTest.php:22
```

Commits
-------

d553750054 Allow user to override default options when extending the Choice Constraint
2020-11-07 17:47:31 +01:00
Robin Chalas f226d981af Merge branch '5.1' into 5.x
* 5.1:
  [Messenger] Fix DBAL deprecations in PostgreSQLConnection
  [DoctrineBridge] Fix DBAL deprecations in middlewares.
2020-11-07 17:24:48 +01:00
Robin Chalas 245d04189e Merge branch '4.4' into 5.1
* 4.4:
  [DoctrineBridge] Fix DBAL deprecations in middlewares.
2020-11-07 17:24:27 +01:00
Robin Chalas 01316d6014 bug #39026 [Messenger] Fix DBAL deprecations in PostgreSqlConnection (chalasr)
This PR was merged into the 5.1 branch.

Discussion
----------

[Messenger] Fix DBAL deprecations in PostgreSqlConnection

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

Commits
-------

bc42cf604e [Messenger] Fix DBAL deprecations in PostgreSQLConnection
2020-11-07 17:22:16 +01:00
Benjamin Lévêque d553750054 Allow user to override default options when extending the Choice Constraint
Co-authored-by: Maxime Steinhausser <maxime.steinhausser@gmail.com>
2020-11-07 17:03:44 +01:00
Robin Chalas b8a5e48105 bug #39025 [DoctrineBridge] Fix DBAL deprecations in middlewares (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[DoctrineBridge] Fix DBAL deprecations in middlewares

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

Commits
-------

969da48c98 [DoctrineBridge] Fix DBAL deprecations in middlewares.
2020-11-07 15:51:28 +01:00
Robin Chalas bc42cf604e [Messenger] Fix DBAL deprecations in PostgreSQLConnection 2020-11-07 15:49:46 +01:00
Alexander M. Turek 969da48c98 [DoctrineBridge] Fix DBAL deprecations in middlewares. 2020-11-07 15:21:55 +01:00
Alexander M. Turek e5492e2e55 [FrameworkBundle] Configure PHP Attributes without doctrine/annotations. 2020-11-07 14:02:47 +01:00
Alexander M. Turek 5c5b8d61ee Merge branch '5.1' into 5.x 2020-11-07 14:01:53 +01:00
Alexander M. Turek 8c81f33840 Merge branch '4.4' into 5.1 2020-11-07 14:01:26 +01:00
Fabien Potencier be8fd560e3 minor #39017 [ProxyManagerBridge] replace ProxyManager\Version by feature detection (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ProxyManagerBridge] replace ProxyManager\Version by feature detection

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

I'd like to get rid of this `Version` class, which is the source of so many issues with deps.
This won't remove the class from ocramius/proxy-manager, but that's a separate story that this change could enable in the end :)

Commits
-------

5f77aad6ca [ProxyManagerBridge] replace ProxyManager\Version by feature detection
2020-11-06 17:37:15 +01:00
Nicolas Grekas 5f77aad6ca [ProxyManagerBridge] replace ProxyManager\Version by feature detection 2020-11-06 15:18:27 +01:00
Alexander M. Turek 5e3338c1d7 minor #39009 [CI] Fix invalid Doctrine parameter syntax (Nyholm)
This PR was merged into the 4.4 branch.

Discussion
----------

[CI] Fix invalid Doctrine parameter syntax

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

~~I cannot reproduce locally.. So Im trying to fix this with the help of the CI~~

I have reproduced locally. This fix will help.

```
❯ phpunit Tests/Transport/DoctrineIntegrationTest.php
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.

.E....                                                              6 / 6 (100%)

Time: 111 ms, Memory: 6.00 MB

There was 1 error:

1) Symfony\Component\Messenger\Bridge\Doctrine\Tests\Transport\DoctrineIntegrationTest::testSendWithDelay
Doctrine\DBAL\SQLParserUtilsException: Value for :body not found in params array. Params array key should be "body"

src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/SQLParserUtilsException.php:21
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/SQLParserUtils.php:277
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/SQLParserUtils.php:203
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/Connection.php:1019
src/Symfony/Component/Messenger/Bridge/Doctrine/vendor/doctrine/dbal/src/Query/QueryBuilder.php:210
src/Symfony/Component/Messenger/Bridge/Doctrine/Tests/Transport/DoctrineIntegrationTest.php:66

ERRORS!
Tests: 6, Assertions: 8, Errors: 1.
```

Apply patch:

```
❯ phpunit Tests/Transport/DoctrineIntegrationTest.php
PHPUnit 8.5.8 by Sebastian Bergmann and contributors.

......                                                              6 / 6 (100%)

Time: 94 ms, Memory: 6.00 MB

OK (6 tests, 9 assertions)

```

Commits
-------

0ab3032c52 [CI] Fixed invalid doctrine parameter syntax
2020-11-05 22:19:20 +01:00
Nyholm 0ab3032c52
[CI] Fixed invalid doctrine parameter syntax 2020-11-05 21:54:48 +01:00
Robin Chalas 2c39acd159 fix merge 2020-11-05 21:41:09 +01:00
Alexander M. Turek 5f25a6f980 Merge branch '5.1' into 5.x 2020-11-05 21:05:54 +01:00
Alexander M. Turek 2081035295 Merge branch '4.4' into 5.1 2020-11-05 20:04:46 +01:00
Robin Chalas 75f8ac1e9b bug #38991 [Console] Fix ANSI when stdErr is not a tty (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Fix ANSI when stdErr is not a tty

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

Taking the @wouterj 's comment into account (https://github.com/symfony/symfony/issues/38981#issuecomment-721915428)

This PR prevents using the same Formatter for stdOut and stdErr when possible.

When user send a custom formatter (or call `setFormatter`) the previous logic is kept.
Otherwise, symfony is asked to create the Formatter, and thus is able to clone the formatter.

In a future PR targeting 5.3, we could improve the constructor to let people inject 2 distinguished formatters

Commits
-------

f3a398b5af Fix ANSI when stdErr is not a tty
2020-11-05 16:22:05 +01:00
Nicolas Grekas 61b3872b65 bug #38980 [DependencyInjection] Fix circular reference with Factory + Lazy Iterrator (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Fix circular reference with Factory + Lazy Iterrator

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

The issue, occurs when a `factory` iterates over services (think tagged iterator) that also need the `factory`.
The PhpDumper is not able to detect the loop because the TaggedService iterator is flaged as "lazy" which is ignored in the loop detection. 2d7e0b02c6/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php (L474-L476)

See test case for a reproduce case.

This PR takes into account lazy services when computing loops.

I'm not sure this is the right thing to do /cc @nicolas-grekas .
A better solution could be to do this ONLY when the service is used as a factory?

Commits
-------

51ff060603 Fix circular referene with Factory and LazyIterator
2020-11-05 12:51:33 +01:00
Jérémy Derussé f3a398b5af
Fix ANSI when stdErr is not a tty 2020-11-05 10:51:39 +01:00
Fabien Potencier dc0d45d31a bug #38986 [DoctrineBridge] accept converting Uid-as-strings to db-values (nicolas-grekas)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[DoctrineBridge] accept converting Uid-as-strings to db-values

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

In #38605 I made Uid types stricter by taking inspiration from native Doctrine types. But https://github.com/symfony/symfony/issues/38929#issuecomment-720108301 made me realize this doesn't work with ParamConverters. Here is the fix.

Commits
-------

20714d66c9 [DoctrineBridge] accept converting Uid-as-strings to db-values
2020-11-05 09:48:15 +01:00
Nyholm 94818d2a22
minor #38995 [Security] Fix docblock (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Fix docblock

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

Commits
-------

60e506835a [Security] Fix docblock.
2020-11-05 09:37:17 +01:00
Alexander M. Turek 60e506835a [Security] Fix docblock. 2020-11-05 00:24:50 +01:00
Jérémy Derussé 51ff060603
Fix circular referene with Factory and LazyIterator 2020-11-04 15:21:44 +01:00
Nicolas Grekas 20714d66c9 [DoctrineBridge] accept converting Uid-as-strings to db-values 2020-11-04 12:11:20 +01:00
Fabien Potencier 57e39b41b9 feature #38850 [Messenger] Do not call getQueueUrl when the url is known in AmazonSqs transport (jderusse)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Messenger] Do not call getQueueUrl when the url is known in AmazonSqs transport

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

When user provides a DSN that looks like a queueUrl, we don't need to call the `getQueueUrl` method. This PR inject the known queueUrl and prevent performing a useless call to the API when sending a message

Commits
-------

f1f44d48e0 Do not call getQueueUrl when the url is known
2020-11-04 08:24:27 +01:00