Commit Graph

52315 Commits

Author SHA1 Message Date
Nicolas Grekas
e57b5f2abf minor #39197 [Validation] updating pt translations (hugovms, cenoura)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validation] updating pt translations

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

Finishing PR #38923

Commits
-------

4857be89d3 fix: resolving pt translation issues
935a3b23e2 fix: solving pt-br translation issues
2020-11-27 17:19:44 +01:00
Nicolas Grekas
7d7fa3e822 bug #39129 [DependencyInjection] Fix circular in DI with lazy + byContruct loop (jderusse)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Fix circular in DI with lazy + byContruct loop

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

This fix another issue lazy service.
It partially revert #38980 and #39021

Initially, we trusted lazy services to be lazy and not beeing called while building the services graph
=> bug #38970 when lazy deps is injected in a factory, it may be consumed directly to build the object before the graph is fully built
Fixed by #38980 => lazy service are considered as "normal service"
=> bug #39015 some loop are not resolvable with "normal service", but it shouldn't be an issue when servie proxifyied
Fixed by #39021 => lazy service are considered as "normal service" except when proxyfied
=> bug #39120 some loop are not resolvable with "normal service", but it shouldn't be an issue because the lazy service is injected in the constructor and user

Fixed by this PR => that revert to the initial state. lazy service are trusted.
But now, The IterratorArgument injected in a factory (single exception) is not more considered as lazy

Commits
-------

54af139a4e [DependencyInjection] Fix circular in DI with lazy + byContruct loop
2020-11-27 16:54:06 +01:00
Jérémy Derussé
54af139a4e [DependencyInjection] Fix circular in DI with lazy + byContruct loop 2020-11-27 16:54:00 +01:00
Alexander M. Turek
986f99d9c2 minor #39199 [FrameworkBundle] [minor] adjust Client::getProfile() typehint (kbond)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] [minor] adjust Client::getProfile() typehint

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

#39198's fix for 4.4.

Commits
-------

5f2bb905e7 adjust Client::getProfile() typehint
2020-11-27 16:28:45 +01:00
Alexander M. Turek
878a53bfac minor #39200 [Semaphore] Allow symfony/semaphore on PHP8 (Michał Jusięga)
This PR was merged into the 5.2 branch.

Discussion
----------

[Semaphore] Allow symfony/semaphore on PHP8

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

On `PHP8` we can't install new component.

```
composer prohibits php:8
symfony/semaphore                    v5.2.0-RC2  requires  php (^7.2.5)
```

Commits
-------

c3d00dbeba Allow symfony/semaphore on PHP8
2020-11-27 15:23:16 +01:00
Michał Jusięga
c3d00dbeba Allow symfony/semaphore on PHP8 2020-11-27 15:15:14 +01:00
Kevin Bond
5f2bb905e7
adjust Client::getProfile() typehint 2020-11-27 09:11:20 -05:00
Kevin Bond
ce046fd120
adjust KernelBrowser::getProfile() typehint 2020-11-27 09:08:52 -05:00
Guilherme Augusto Henschel
4857be89d3 fix: resolving pt translation issues 2020-11-27 09:41:21 -03:00
Fabien Potencier
f0aa4e7df1 Merge branch '5.2' into 5.x
* 5.2:
  fix denormalizing scalar with UnwrappingDenormalizer
2020-11-27 11:27:36 +01:00
Fabien Potencier
16535b2a64 Merge branch '5.1' into 5.2
* 5.1:
  fix denormalizing scalar with UnwrappingDenormalizer
2020-11-27 11:27:27 +01:00
Fabien Potencier
458ee9aa2a Merge branch '3.4' into 4.4
* 3.4:
  Update VERSION for 3.4.47
  Update CONTRIBUTORS for 3.4.47
  Update CHANGELOG for 3.4.47
2020-11-27 11:26:46 +01:00
Fabien Potencier
a2691d3683 Merge branch '5.2' into 5.x
* 5.2:
  [Security] Automatically register custom authenticator as entry_point (if supported)
  Support for SwitchUserToken instances serialized with 4.4/5.1.
  [HttpFoundation] Deprecate BinaryFileResponse::create().
  Require doctrine/persistence 2
2020-11-27 11:25:44 +01:00
Fabien Potencier
df7099cb2d feature #39153 [Security] Automatically register custom authenticator as entry_point (if supported) (wouterj)
This PR was squashed before being merged into the 5.2 branch.

Discussion
----------

[Security] Automatically register custom authenticator as entry_point (if supported)

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

@weaverryan came up with exactly the same issue as proposed by a contributor before (see referenced ticket). Back then, it was decided impossible to fix: see https://github.com/symfony/symfony/pull/37075. However, after some thinking we came up with a way to fix the issue and improve the DX for custom authenticators.

The new authenticators are no longer required to implement `AuthenticationEntryPointInterface` (required for internal authenticators like the `RememberMeAuthenticator` and pre authenticated ones). This PR uses a compiler pass to check if a custom authenticator is supported:

```yaml
security:
  firewalls:
    main:
      # in any case, if an entry_point is already configured it'll not be overriden
      # (http_basic remains the entry point here)
      http_basic: ~
      custom_authenticator: App\Security\CustomAuthenticator
      entry_point: http_basic

      # if only one custom authenticator implements AuthenticationEntryPointInterface,
      # it's automatically configured as the entry point
      custom_authenticator: App\Security\CustomAuthenticator
      custom_authenticators: [App\Security\CustomAuthenticator, App\Security\NoEntryPointAuthenticator]

      # if no custom authenticator implements AuthenticationEntryPointInterface,
      # an error is thrown
      custom_authenticator: App\Security\NoEntryPointAuthenticator

      # if more than one authenticator implements AuthenticationEntryPointInterface,
      # the entry point must be configured explicitly (or an error is thrown)
      custom_authenticators: [App\Security\CustomAuthenticator, App\Security\AnotherCustomAuthenticator]
      entry_point: App\Security\CustomAuthenticator
```

---

I know this is very late for Symfony 5.2. It would be good to decide whether this can be included in the release, in order to smooth out the biggest struggle for people using custom authenticators for the first time.

Commits
-------

cab0672248 [Security] Automatically register custom authenticator as entry_point (if supported)
2020-11-27 11:24:59 +01:00
Wouter de Jong
cab0672248 [Security] Automatically register custom authenticator as entry_point (if supported) 2020-11-27 11:24:53 +01:00
Fabien Potencier
83093d5448
Merge pull request #39193 from fabpot/release-3.4.47
released v3.4.47
2020-11-27 09:43:16 +01:00
Fabien Potencier
67f1f1e159 Update VERSION for 3.4.47 2020-11-27 09:42:42 +01:00
Fabien Potencier
f93df0ef1d Update CONTRIBUTORS for 3.4.47 2020-11-27 09:41:54 +01:00
Fabien Potencier
0153c44975 Update CHANGELOG for 3.4.47 2020-11-27 09:41:25 +01:00
Fabien Potencier
123fd2e066 minor #39036 Add Romanian missing translations (gabiudrescu)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

   Add Romanian missing translations

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

Commits
-------

6aa31a13c7 Add Romanian missing translations
2020-11-27 09:28:28 +01:00
Gabi Udrescu
6aa31a13c7 Add Romanian missing translations 2020-11-27 09:28:00 +01:00
Fabien Potencier
bd7a3e1b90 feature #39097 [DomCrawler] Cache discovered namespaces (simonberger, fabpot)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[DomCrawler] Cache discovered namespaces

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Address #39067
| License       | MIT

Discovering namespaces is by far the most expensive task when filtering for nodes and the xpath contains prefixes.
When `Crawler::filterRelativeXPath` is called multiple times with (identical) prefixes the slowdown is huge.

This fix brings the runtime of the linked ticket down from 27 seconds to 9 seconds in my test. Compared to a pure PHP version which takes < 0.5 seconds the design of the crawler API is the limiting factor. There are still many repeated namespace queries caused by new Crawler instances. Ideas to solve this are discussed in the ticket.

Commits
-------

a8e85ecbbd Make some CS changes
4c74dead48 Cache discovered namespaces in DomCrawler
2020-11-27 08:19:20 +01:00
Fabien Potencier
a8e85ecbbd Make some CS changes 2020-11-27 08:04:15 +01:00
Simon Berger
4c74dead48 Cache discovered namespaces in DomCrawler 2020-11-27 07:55:40 +01:00
Fabien Potencier
3ac26fcd67 Remove extra docblock 2020-11-27 07:41:41 +01:00
Fabien Potencier
a4b2bf8e56 feature #39037 [Ldap] Ldap Entry case-sensitive attribute key option (karlshea)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Ldap] Ldap Entry case-sensitive attribute key option

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

See PR #36432

Commits
-------

d3b944046a [Ldap] Ldap Entry case-sensitive attribute key option
2020-11-27 07:40:38 +01:00
Fabien Potencier
6db84b6ae9 bug #39068 [DependencyInjection][Translator] Silent deprecation triggered by libxml_disable_entity_loader (jderusse)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[DependencyInjection][Translator] Silent deprecation triggered by libxml_disable_entity_loader

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

The XML entity loader is disabled by default since libxml 2.9
But, since PHP 8.0, calling the method `libxml_disable_entity_loader` triggers a deprecation which has been solved in symfony by calling `libxml_disable_entity_loader` only for libxml < 2.9

The issue is, some dependencies, enable the entity loader and does not restore the initial state afterward, leading to exceptions triggered by Symfony iteself.

In previous versions symfony was resilient by disabling the flag before working, which is not the case anymore to avoid the deprecation.

This PR restore the resiliency of Symfony for PHP < 8.0, which is not yet deprecated.

But we have no way to check the status of the entity loader without triggering a deprecation with Symfony 8.

Commits
-------

114b7a543a [DependencyInjection][Translator] Silent deprecation triggered by libxml_disable_entity_loader
2020-11-27 07:35:58 +01:00
Jérémy Derussé
114b7a543a [DependencyInjection][Translator] Silent deprecation triggered by libxml_disable_entity_loader 2020-11-27 07:35:49 +01:00
Fabien Potencier
66e76d1916 bug #39119 [Form] prevent duplicated error message for file upload limits (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] prevent duplicated error message for file upload limits

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

Commits
-------

fe6a2dd64f prevent duplicated error message for file upload limits
2020-11-27 07:25:03 +01:00
Fabien Potencier
1fb80e7cf0 bug #39099 [Form] ignore the pattern attribute for textareas (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] ignore the pattern attribute for textareas

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

Commits
-------

e7698e7434 ignore the pattern attribute for textareas
2020-11-27 07:20:55 +01:00
Fabien Potencier
ac25e8c912 feature #39118 [DoctrineBridge] Require doctrine/persistence 2 (greg0ire)
This PR was merged into the 5.2 branch.

Discussion
----------

[DoctrineBridge] Require doctrine/persistence 2

| Q             | A
| ------------- | ---
| Branch       | 5.x
| Bug fix      | no
| New feature  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

This allows us to remove autoload calls that are necessary for the
persistence 1 backwards-compatibility layer to work.

This is a follow up of #35728

Commits
-------

574a184b9a Require doctrine/persistence 2
2020-11-27 07:18:14 +01:00
Fabien Potencier
7378b0b836 feature #39128 [HttpFoundation] Deprecate BinaryFileResponse::create() (derrabus)
This PR was merged into the 5.2 branch.

Discussion
----------

[HttpFoundation] Deprecate BinaryFileResponse::create()

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

Follows #34771. We've deprecated the static `::create()` methods on all response classes but `BinaryFileResponse`. This PR proposes to fix this inconsistency.

Commits
-------

9ce2e86207 [HttpFoundation] Deprecate BinaryFileResponse::create().
2020-11-27 07:13:25 +01:00
Fabien Potencier
4346ef4cb8 feature #39146 [Console] Added Invalid constant into Command Class (TheGarious)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Console] Added Invalid constant into Command Class

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| License       | MIT

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

Regarding into this [link](https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html#:~:text=A%20non%2Dzero%20exit%20status,N%20as%20the%20exit%20status), we have 3 exits status standard :

- 0 is for success
- 1 is for error
- 2 is for _indicate incorrect usage, generally invalid options or missing arguments_

I think if we use a constant into Command class, we need to implement invalid exit status too.

Commits
-------

449147bc17 Added Invalid constant into Command Class
2020-11-27 07:12:26 +01:00
Fabien Potencier
d558964026 bug #39154 [Yaml] fix lexing strings containing escaped quotation characters (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Yaml] fix lexing strings containing escaped quotation characters

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

Commits
-------

673b8e941a fix lexing strings containing escaped quotation characters
2020-11-27 07:07:37 +01:00
Fabien Potencier
9f484e691d bug #39187 [Security] Support for SwitchUserToken instances serialized with 4.4/5.1 (derrabus)
This PR was merged into the 5.2 branch.

Discussion
----------

[Security] Support for SwitchUserToken instances serialized with 4.4/5.1

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

This PR enables `SwitchUserToken` to unserialize earlier versions of itself.

I've executed the following script on the 4.4 branch with php 7.2 to create the fixture included with this PR:

```php
$token = new SwitchUserToken(
    new User('john', null, ['ROLE_USER']),
    ['foo' => 'bar'],
    'main',
    ['ROLE_USER'],
    new UsernamePasswordToken(new User('jane', null, ['ROLE_USER']), ['foo' => 'bar'], 'main', ['ROLE_USER'])
);

file_put_contents(__DIR__.'/switch-user-token-4.4.txt', serialize($token));
```

Commits
-------

01bea3c085 Support for SwitchUserToken instances serialized with 4.4/5.1.
2020-11-27 06:55:40 +01:00
Fabien Potencier
3d384ba76b bug #39180 [Serializer] Fix denormalizing scalar with UnwrappingDenormalizer (camilledejoye)
This PR was merged into the 5.1 branch.

Discussion
----------

[Serializer] Fix denormalizing scalar with UnwrappingDenormalizer

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

In order to work the `UnwrappingDenormlizer` needs to be called first to unwrap the data so that it can be handled by other denormalizers.
To not introduce any BC break this PR does not move the logic into it's own class, instead it checks if a denormalizer supports the data and only denormalize scalar values if there is none.

Commits
-------

98cf389fb9 fix denormalizing scalar with UnwrappingDenormalizer
2020-11-27 06:53:16 +01:00
Alexander M. Turek
01bea3c085 Support for SwitchUserToken instances serialized with 4.4/5.1. 2020-11-27 02:03:01 +01:00
Alexander M. Turek
a07b722891 Merge branch '5.2' into 5.x
* 5.2:
  Fix test.
  [PhpUnitBridge] Fix qualification of deprecations triggered by the debug class loader
  Improve return phpdoc for Normalizer
  Use a partial buffer in SymfonyStyle
  Fix console closing tag
  Fix typo in comment
  [VarDumper] fix casting resources turned into objects on PHP 8
  Removing AnonymousPassport
2020-11-27 01:47:04 +01:00
Alexander M. Turek
62184bd8f0 Merge branch '5.1' into 5.2
* 5.1:
  Fix test.
  [PhpUnitBridge] Fix qualification of deprecations triggered by the debug class loader
  Improve return phpdoc for Normalizer
  Use a partial buffer in SymfonyStyle
  Fix console closing tag
  Fix typo in comment
  [VarDumper] fix casting resources turned into objects on PHP 8
2020-11-27 01:39:34 +01:00
Alexander M. Turek
b047064842 Fix test. 2020-11-27 01:30:48 +01:00
Alexander M. Turek
b96d0089a5 Merge branch '4.4' into 5.1
* 4.4:
  [PhpUnitBridge] Fix qualification of deprecations triggered by the debug class loader
  Improve return phpdoc for Normalizer
  Use a partial buffer in SymfonyStyle
  Fix console closing tag
  Fix typo in comment
  [VarDumper] fix casting resources turned into objects on PHP 8
2020-11-27 00:46:31 +01:00
Alexander M. Turek
6224ffa5a3 bug #38597 [PhpUnitBridge] Fix qualification of deprecations triggered by the debug class loader (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[PhpUnitBridge] Fix qualification of deprecations triggered by the debug class loader

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

I tested it successfully against the two examples stof gave in the issue. However, I don't see how to write a working real test for this.

The solution I found is to add the missing checked file in the original files stack so when the type of the deprecation is computed instead of having "self" -> "self", we have "vendor" -> "self".

Commits
-------

dff539434e [PhpUnitBridge] Fix qualification of deprecations triggered by the debug class loader
2020-11-26 19:03:26 +01:00
Thomas Calvet
dff539434e [PhpUnitBridge] Fix qualification of deprecations triggered by the debug class loader 2020-11-26 18:48:00 +01:00
Camille Dejoye
98cf389fb9 fix denormalizing scalar with UnwrappingDenormalizer 2020-11-26 14:58:42 +01:00
Robin Chalas
fd910eb5b5 bug #39160 [Console] Use a partial buffer in SymfonyStyle (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Use a partial buffer in SymfonyStyle

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

Symfony style needs to buffer output in order to get the last 2 chars in order to prepend Block.

By using a `BufferedOutput` symfony bufferize everything while it not needed.

This PR adds a new `TrimmedBufferOutput` that keep only the N last chars.

Commits
-------

18fca2984d Use a partial buffer in SymfonyStyle
2020-11-26 00:15:36 +01:00
Robin Chalas
fb161ec0ee minor #39170 Improve return value for phpdoc of Normalizer (VincentLanglet)
This PR was merged into the 4.4 branch.

Discussion
----------

Improve return value for phpdoc of Normalizer

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | Phpdoc
| New feature?  | no
| Deprecations? | no
| License       | MIT

The inheritdoc return type is too large.
The return type type can be more precise for lot of Normalizer.

Commits
-------

f2713d6580 Improve return phpdoc for Normalizer
2020-11-25 13:22:39 +01:00
Vincent Langlet
f2713d6580 Improve return phpdoc for Normalizer 2020-11-25 12:55:08 +01:00
Jérémy Derussé
18fca2984d
Use a partial buffer in SymfonyStyle 2020-11-25 12:18:08 +01:00
Fabien Potencier
4c378d467e bug #39168 [Console] Fix console closing tag (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Fix console closing tag

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

When using SymfonyStyle, in some cases, closing a tag, is called twice.
In the following code `<question>do you want <comment>something</>?</>` the first `</>` close both the `comment` and the `question` tags.

![Screenshot from 2020-11-25 01-21-06](https://user-images.githubusercontent.com/578547/100166475-191d9d80-2ebd-11eb-991a-6541210c479b.png)

The reason is, part of the content is sent in 2 Outputs (see #39160 for another issue), and both outputs share the same `$styleStack`.
This PR updates the `OutputFormatter::__clone` method to prevent sharing the same state.

Commits
-------

2834c279d7 Fix console closing tag
2020-11-25 08:47:56 +01:00
Jérémy Derussé
2834c279d7
Fix console closing tag 2020-11-25 01:21:23 +01:00