Commit Graph

39152 Commits

Author SHA1 Message Date
Nicolas Grekas
fb04711b40 [DI] add tags container.preload/.no_preload to declare extra classes to preload/services to not preload 2020-04-05 09:04:12 +02:00
Fabien Potencier
8a2a69f332 feature #36209 [HttpKernel] allow cache warmers to add to the list of preloaded classes and files (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpKernel] allow cache warmers to add to the list of preloaded classes and files

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

This PR makes cache warmers responsible for returning a list of classes or files to preload. It does so by adding the following to `WarmableInterface::warmUp()`:
`@return string[] A list of classes or files to preload on PHP 7.4+`

Of course, this return value is properly implemented so that we can see what this provides in practice. Here are the benchmarks on a simple Hello World rendered with Twig:
- without preloading: 360 req/s
- with preloading in master: 560 req/s (+55%)
- with preloading and this PR: 630 req/s (+75%)

Commits
-------

8ab75d99d4 [HttpKernel] allow cache warmers to add to the list of preloaded classes and files
2020-04-05 09:00:42 +02:00
Fabien Potencier
ddfb3089c9 Fixed CS 2020-04-05 08:49:38 +02:00
Fabien Potencier
6f57fcf9b7 minor #35933 [Mime] strengthen is_resource() checks (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Mime] strengthen is_resource() checks

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

Improves seekable checks by using
`stream_get_meta_data($h)['seekable'] && 0 === fseek($h, 0, SEEK_CUR)`
instead of just
`stream_get_meta_data($h)['seekable']`

which is better when using userland stream wrappers.

Commits
-------

be9c675710 [Mime] strengthen is_resource() checks
2020-04-05 08:41:07 +02:00
Robin Chalas
a165ecca73 fix cs 2020-04-05 01:14:36 +02:00
Wouter de Jong
253cc4ec41 Fixed build after LogoutListener changes 2020-04-04 20:35:10 +02:00
Fabien Potencier
1fc7b86f07 feature #36243 [Security] Refactor logout listener to dispatch an event instead (wouterj)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[Security] Refactor logout listener to dispatch an event instead

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes (sort of...)
| New feature?  | yes
| Deprecations? | yes
| Tickets       | Fix #25212, Fix #22473
| License       | MIT
| Doc PR        | tbd

The current `LogoutListener` has some extension points, but they are not really DX-friendly (ref #25212). It requires hacking a `addMethodCall('addHandler')` in the container builder to register a custom logout handler.
Also, it is impossible to overwrite the default logout functionality from a bundle (ref #22473).

This PR introduces a `LogoutEvent` that replaces both the `LogoutSuccessHandlerInterface` and `LogoutHandlerInterface`. This provides a DX-friendly extension point and also cleans up the authentication factories (no more `addMethodCall()`'s).

In order to allow different logout handlers for different firewalls, I created a specific event dispatcher for each firewall (as also shortly discussed in #33558). The `dispatcher` tag attribute allows you to specify which dispatcher it should be registered to (defaulting to the global dispatcher). The `EventBubblingLogoutListener` also dispatches logout events on the global dispatcher, to be used for listeners that should run on all firewalls.

_@weaverryan and I discussed this feature while working on #33558, but figured it was unrelated and could be done while preservering BC. So that's why a separate PR is created._

Commits
-------

a9f096eb1f [Security] Refactor logout listener to dispatch an event instead
2020-04-04 13:02:32 +02:00
Wouter de Jong
a9f096eb1f [Security] Refactor logout listener to dispatch an event instead 2020-04-04 13:02:21 +02:00
Nicolas Grekas
8ab75d99d4 [HttpKernel] allow cache warmers to add to the list of preloaded classes and files 2020-04-04 11:52:45 +02:00
Fabien Potencier
fdd8ac5f25 feature #36185 [Messenger] Add a \Throwable argument in RetryStrategyInterface methods (Benjamin Dos Santos)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[Messenger] Add a \Throwable argument in RetryStrategyInterface methods

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #36182
| License       | MIT

This allows to define new retry strategies based on the exceptions thrown during the last handling.

Commits
-------

5fa9d68e8b [Messenger] Add a \Throwable argument in RetryStrategyInterface methods
2020-04-04 09:33:17 +02:00
Benjamin Dos Santos
5fa9d68e8b [Messenger] Add a \Throwable argument in RetryStrategyInterface methods 2020-04-04 09:33:12 +02:00
Maxime Helias
e861500ce8 [Form] action allows only strings 2020-04-04 09:22:59 +02:00
Jordi Boggiano
c2a1781eb4
Fix $level type 2020-04-03 15:33:33 +02:00
Nicolas Grekas
0bec08f0d8 feature #35871 [Config] Improve the deprecation features by handling package and version (atailouloute)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Config] Improve the deprecation features by handling package and version

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | yes
| Tickets       | https://github.com/orgs/symfony/projects/1#card-32681032
| License       | MIT
| Doc PR        | TODO

Commits
-------

f4de76dba0 [Config] Improve the deprecation features by handling package and version
2020-04-01 10:41:36 +02:00
Ahmed TAILOULOUTE
f4de76dba0 [Config] Improve the deprecation features by handling package and version 2020-04-01 10:41:21 +02:00
Thomas Calvet
6162ca8e40 [DependencyInjection] Deprecate ContainerInterface aliases 2020-04-01 09:27:41 +02:00
Fabien Potencier
0a8d638133 bug #36295 [DependencyInjection] Fix alias deprecations with package and version (fancyweb)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DependencyInjection] Fix alias deprecations with package and version

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

Firstly, this PR fixes the alias dump by the XmlDumper to be consistent with stof comment in the inital PR (the message is the node content) - it is the case for deprecated services. Otherwise, we need to add the "message" attribute in the XSD.

Secondly, it fixes the arguments when the deprecation is actually triggered as well as two related tests.

Commits
-------

5ee5654171 [DependencyInjection] Fix alias deprecations with package and version
2020-04-01 08:56:50 +02:00
Fabien Potencier
9a4a96910d Merge branch '5.0'
* 5.0:
  Fix wrong namespaces
  Fix wrong namespaces
  Fix the reporting of deprecations in twig:lint
  forward multiple attributes voting flag
  bumped Symfony version to 5.0.8
  updated VERSION for 5.0.7
  updated CHANGELOG for 5.0.7
  bumped Symfony version to 4.4.8
  updated VERSION for 4.4.7
  updated CHANGELOG for 4.4.7
  [Validator] Fixed calling getters before resolving groups
  [HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing
2020-04-01 08:33:39 +02:00
Thomas Calvet
5ee5654171 [DependencyInjection] Fix alias deprecations with package and version 2020-04-01 08:32:41 +02:00
Fabien Potencier
e1a522b470 Merge branch '4.4' into 5.0
* 4.4:
  Fix wrong namespaces
  Fix wrong namespaces
  Fix the reporting of deprecations in twig:lint
  forward multiple attributes voting flag
  bumped Symfony version to 4.4.8
  updated VERSION for 4.4.7
  updated CHANGELOG for 4.4.7
  [Validator] Fixed calling getters before resolving groups
  [HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing
2020-04-01 08:31:30 +02:00
Fabien Potencier
801f2d344e Fix wrong namespaces 2020-04-01 08:23:29 +02:00
Fabien Potencier
f07e60b555 Merge branch '3.4' into 4.4
* 3.4:
  Fix wrong namespaces
  [Validator] Fixed calling getters before resolving groups
  [HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing
2020-04-01 08:18:20 +02:00
Fabien Potencier
bbc08d7a9e Fix wrong namespaces 2020-04-01 07:52:50 +02:00
William Arslett
f9b52fe55e [FrameworkBundle] Deprecate flashbag and attributebag services 2020-04-01 07:18:04 +02:00
Nicolas Grekas
9381dd6dd1 feature #36257 [HttpKernel] Deprecate single-colon notation for controllers (chalasr)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpKernel] Deprecate single-colon notation for controllers

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

Commits
-------

e88cec6d32 [HttpKernel] Deprecate single-colon notation for controllers
2020-03-31 21:54:48 +02:00
Ahmed TAILOULOUTE
f10413cf34 [DependencyInjection] improve the deprecation features by handling package+version info 2020-03-31 21:51:49 +02:00
Nicolas Grekas
2130465899 feature #36129 [HttpFoundation][HttpKernel][Security] Improve UnexpectedSessionUsageException backtrace (mtarld)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpFoundation][HttpKernel][Security] Improve UnexpectedSessionUsageException backtrace

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

Improve `UnexceptedSessionUsageException` backtrace so that it leads to the place in the userland  where it was told to use session.

Commits
-------

1e1d332c7c Improve UnexcpectedSessionUsageException backtrace
2020-03-31 21:27:28 +02:00
Robin Chalas
e88cec6d32 [HttpKernel] Deprecate single-colon notation for controllers 2020-03-31 21:20:47 +02:00
Nicolas Grekas
0c74ff4642 feature #36186 [FrameworkBundle] Dump kernel extension configuration (guillbdx)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[FrameworkBundle] Dump kernel extension configuration

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

If the kernel is a container extension and defines a configuration, the `config:dump-reference` will now be able to dump it.

Commits
-------

2ccafb1eb3 [FrameworkBundle] Dump kernel extension configuration
2020-03-31 20:59:44 +02:00
Guillaume Pédelagrabe
2ccafb1eb3 [FrameworkBundle] Dump kernel extension configuration 2020-03-31 20:59:28 +02:00
Nicolas Grekas
08764802e5 minor #36193 [DI] dump factory files as classes (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DI] dump factory files as classes

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

This PR is a performance improvement when using `bin/console` on the command line.

Once upon a time, we advised setting `container.dumper.inline_factories` to `false` so that the container could be chunked into many files. More recently, we turned this setting back to `true` in order to optimize for preloading. But this made `bin/console` back to slow: since the CLI cannot have opcache, PHP has to parse this potentially big file all the time. Previous data already showed this can grow big.

This PR fixes the issue by generating many files again. But instead of generating the inline code within each file, we now wrap this code inside a class. Then we list this class for preloading.

This way, we have the best of both worlds: a `bin/console` that scales no matter the size of the app and top perf when using preloading (I benched a small hello world before/after the patch with preloading enabled, there is no measurable difference.)

This should also fix a memory leak that happens when factory files contain closures.

Commits
-------

cedb5cd429 [DI] dump factory files as classes
2020-03-31 20:33:23 +02:00
Nicolas Grekas
0b27194b4f bug #36239 [HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing

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

`$sanitizedLogs` is used with numeric and "associative" keys. To prevent collisions when the message is a number, we can simply prepend all messages with a random letter (so we avoid a behavior refactor). It doesn't matter since they key is only used for the processing, it is dropped at the end.

Commits
-------

79fe888072 [HttpKernel][LoggerDataCollector] Prevent keys collisions in the sanitized logs processing
2020-03-31 20:24:22 +02:00
Nicolas Grekas
b9c2693527 bug #36245 [Validator] Fixed calling getters before resolving groups (HeahDude)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Fixed calling getters before resolving groups

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

Commits
-------

edcfd600aa [Validator] Fixed calling getters before resolving groups
2020-03-31 20:23:36 +02:00
Nicolas Grekas
a5af8f66ed bug #36265 Fix the reporting of deprecations in twig:lint (stof)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix the reporting of deprecations in twig:lint

| Q             | A
| ------------- | ---
| Branch?       | 4.4 (the `--show-deprecations` option does not exist in 3.4)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

- ensure that the message is rendered when the line detection fails and we end up with 0 as line number (the implementation also deals with -1 which is sometimes used by Twig for errors when it does not know the line, even though this should not happen for compile-time errors).
- fix the detection of the line number when the number is at the end of the sentence, which happens for the deprecation of filters for instance.

Commits
-------

c329ca7e01 Fix the reporting of deprecations in twig:lint
2020-03-31 20:14:54 +02:00
Christophe Coevoet
c329ca7e01 Fix the reporting of deprecations in twig:lint
- ensure that the message is rendered when the line detection fails and
  we end up with 0 as line number (the implementation also deals with -1
  which is sometimes used by Twig for errors when it does not know the
  line, even though this should not happen for compile-time errors).
- fix the detection of the line number when the number is at the end of
  the sentence, which happens for the deprecation of filters for
  instance.
2020-03-31 20:14:43 +02:00
Nicolas Grekas
bb9d522346 minor #36267 [Uid] Improve the code (Nilmar Sanchez Muguercia)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[Uid] Improve the code

Improve the reuse of code, programing for extension and not for modification, create a Trait with similar behavior for getTime method in uuid types. Eliminate duplicate code in Uuid

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #...
| License       | MIT
| Doc PR        | symfony/symfony-docs#...

Keep the same functionality, just improve a little the code, eliminating duplications and reusing some lines.

Commits
-------

106c733bce [Uid] Improve the code
2020-03-31 20:10:39 +02:00
Nilmar Sanchez Muguercia
106c733bce [Uid] Improve the code 2020-03-31 20:10:27 +02:00
Christian Flothmann
1b7ec67b73 forward multiple attributes voting flag 2020-03-31 19:42:12 +02:00
Fabien Potencier
973ef7e7c3 bumped Symfony version to 5.0.8 2020-03-30 17:09:36 +02:00
Fabien Potencier
7dbd2e513d updated VERSION for 5.0.7 2020-03-30 17:04:59 +02:00
Fabien Potencier
a164e22f77 bumped Symfony version to 4.4.8 2020-03-30 17:04:12 +02:00
Fabien Potencier
5b438bb359 updated VERSION for 4.4.7 2020-03-30 16:59:15 +02:00
Nicolas Grekas
3987914982 Merge branch '5.0'
* 5.0:
  [HttpFoundation] Do not set the default Content-Type based on the Accept header
  [Security] Fix access_control behavior with unanimous decision strategy
2020-03-30 16:22:57 +02:00
Nicolas Grekas
a92ffff16c Merge branch '4.4' into 5.0
* 4.4:
  [HttpFoundation] Do not set the default Content-Type based on the Accept header
  [Security] Fix access_control behavior with unanimous decision strategy
2020-03-30 16:14:32 +02:00
Yonel Ceruto
0050a4dafb [HttpFoundation] Do not set the default Content-Type based on the Accept header 2020-03-30 16:07:33 +02:00
Robin Chalas
0f6a99936b [Security] Fix access_control behavior with unanimous decision strategy 2020-03-30 13:51:53 +02:00
Nicolas Grekas
8ea7c26326 Merge branch '5.0'
* 5.0: (27 commits)
  Fix versions
  [Security/Http] Allow setting cookie security settings for delete_cookies
  [DI] fix generating TypedReference from PriorityTaggedServiceTrait
  [FrameworkBundle] revert to legacy wiring of the session when circular refs are detected
  bumped Symfony version to 3.4.40
  updated VERSION for 3.4.39
  update CONTRIBUTORS for 3.4.39
  updated CHANGELOG for 3.4.39
  [DomCrawler] Fix BC break in assertions breaking Panther
  [BrowserKit] fixed missing post request parameters in file uploads
  update Italian translation
  [Validator] Add missing Hungarian translations
  [Validator] Add the missing translations for the Arabic (ar) locale
  [Validator] Add missing vietnamese translations
  [Console] Fix OutputStream for PHP 7.4
  add missing gitattributes for phpunit-bridge
  add German translations
  Bump Symfony version to 5.0.7
  Update VERSION for 5.0.6
  Update CHANGELOG for 5.0.6
  ...
2020-03-30 13:43:41 +02:00
Nicolas Grekas
6b0ad43856 Merge branch '4.4' into 5.0
* 4.4:
  Fix versions
  [Security/Http] Allow setting cookie security settings for delete_cookies
  [DI] fix generating TypedReference from PriorityTaggedServiceTrait
  [FrameworkBundle] revert to legacy wiring of the session when circular refs are detected
  bumped Symfony version to 3.4.40
  updated VERSION for 3.4.39
  update CONTRIBUTORS for 3.4.39
  updated CHANGELOG for 3.4.39
  [DomCrawler] Fix BC break in assertions breaking Panther
  [BrowserKit] fixed missing post request parameters in file uploads
  update Italian translation
  [Validator] Add missing Hungarian translations
  [Validator] Add the missing translations for the Arabic (ar) locale
  [Validator] Add missing vietnamese translations
  [Console] Fix OutputStream for PHP 7.4
  add German translations
  bug #36157 [Validator] Assert Valid with many groups
  [Validator] Add missing Lithuanian translations
  Fixed some typos
  Add french "at least" constraint translations
2020-03-30 13:42:42 +02:00
Nicolas Grekas
78c0bcb302 Merge branch '3.4' into 4.4
* 3.4:
  Fix versions
  [Security/Http] Allow setting cookie security settings for delete_cookies
  [FrameworkBundle] revert to legacy wiring of the session when circular refs are detected
  bumped Symfony version to 3.4.40
  updated VERSION for 3.4.39
  update CONTRIBUTORS for 3.4.39
  updated CHANGELOG for 3.4.39
  update Italian translation
  [Validator] Add missing Hungarian translations
  [Validator] Add the missing translations for the Arabic (ar) locale
  [Validator] Add missing vietnamese translations
  [Console] Fix OutputStream for PHP 7.4
  add German translations
  bug #36157 [Validator] Assert Valid with many groups
  [Validator] Add missing Lithuanian translations
  Fixed some typos
  Add french "at least" constraint translations
2020-03-30 13:41:10 +02:00
Fabien Potencier
fe091d41d2 bug #36262 [DI] fix generating TypedReference from PriorityTaggedServiceTrait (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] fix generating TypedReference from PriorityTaggedServiceTrait

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

Commits
-------

f4dd3e7022 [DI] fix generating TypedReference from PriorityTaggedServiceTrait
2020-03-30 13:31:38 +02:00