Commit Graph

32424 Commits

Author SHA1 Message Date
Fabien Potencier
2f0bc30e38 Fix CS 2021-02-14 11:23:24 +01:00
Beno!t POLASZEK
56545fd270 [DependencyInjection] Negated (not:) env var processor 2021-02-14 11:22:13 +01:00
Jérémy Derussé
37c591516a
Deprecate session.storage 2021-02-13 15:58:50 +01:00
Wouter de Jong
c757845643 feature #39802 [Security] Extract password hashing from security-core - with proper wording (chalasr)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Security] Extract password hashing from security-core - with proper wording

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fixes #39698
| License       | MIT
| Doc PR        | todo

This PR renames password "encoders" to password _hashers_ (naming widely used, see e.g. django or laravel).
This also takes the opportunity to extract the logic related to password hashing from security-core, moving it to a new password-hasher component.
Nowadays, many modern web apps and APIs don't deal with passwords at all, that's why splitting makes sense as a step towards making security-core not tied to the password concept.

For upgrading, applications will have to use `passwords_hashers` instead of `encoders` in their security configuration,  and type-hint against `PasswordHasherInterface` (and related) instead of `PasswordEncoderInterface`.

The proposed API is not much different from the encoder one regarding behavior and signatures, and it is slightly more close to the PHP built-in password hashing API:

```php
namespace Symfony\Component\PasswordHasher;

interface PasswordHasherInterface
{
    public function hash(string $plainPassword): string;

    public function verify(string $hashedPassword, string $plainPassword): bool;

    public function needsRehash(string $hashedPassword): bool;
}
```

Commits
-------

c5c981c559 [Security] Extract password hashing from security-core - using the right naming
2021-02-12 16:53:00 +01:00
Robin Chalas
c5c981c559 [Security] Extract password hashing from security-core - using the right naming 2021-02-12 16:42:42 +01:00
carlos-ea
2248af5857 [HttpFoundation] Fix typo in exception message 2021-02-12 16:32:37 +01:00
Christian Flothmann
4a2c996b95 mark the LazyIterator class as internal 2021-02-12 11:48:09 +01:00
Christian Flothmann
fe4e2956e3 Merge branch '5.2' into 5.x
* 5.2:
  add missing return type declaration
  Modernize func_get_args() calls to variadic parameters
  Use a lazyintertor to close files descriptors when no longer used
2021-02-12 11:47:00 +01:00
Christian Flothmann
6dce3227db Merge branch '4.4' into 5.2
* 4.4:
  add missing return type declaration
  Modernize func_get_args() calls to variadic parameters
  Use a lazyintertor to close files descriptors when no longer used
2021-02-12 11:38:38 +01:00
Christian Flothmann
be6432ee4c fix extracting mixed type-hinted property types 2021-02-12 11:37:03 +01:00
Christian Flothmann
cfce9cbd59 add missing return type declaration 2021-02-12 11:28:39 +01:00
Fabien Potencier
dc20a31179 bug #40040 [Finder] Use a lazyIterator to close files descriptors when no longer used (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Finder] Use a lazyIterator to close files descriptors when no longer used

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

The `RecursiveDirectoryIterator` class open the file on `__construct`.
Because we Inject an instance of `RecursiveDirectoryIterator` inside the \AppendIterator` class, php opens a lot of file even before iterating on it.

This PR adds a new `LazyIterator` class that instantiate the decorated class only when something starts iterating on it.
When the iteration is over, it unset the variable to close let the decorated class clean things (ie. close the files)

Commits
-------

7117e1a798 Use a lazyintertor to close files descriptors when no longer used
2021-02-12 08:28:15 +01:00
Jérôme TAMARELLE
6217ff7b6f [Asset] Add tag assets.package to register asset packages
Autoconfiguration with PackageInterface
2021-02-11 23:08:21 +01:00
Alexander M. Turek
f2f880ac2c feature #40143 [Filesystem] improve messages on failure (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Filesystem] improve messages on failure

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

Commits
-------

f5ddfadcb2 [Filesystem] improve messages on failure
2021-02-11 20:49:37 +01:00
Alexander M. Turek
1f067bc4f7 bug #40114 [HttpFoundation] Fix consistency in sessions not found exceptions (jderusse)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[HttpFoundation] Fix consistency in sessions not found exceptions

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

Make `Request::getSession` thrown a `SessionNotFoundException` and make `SessionNotFoundException` extends `\BadMethodCallException` for backward compatibility and

Commits
-------

7fcb76d367 Fix consistency in sessions not found exceptions
2021-02-11 20:46:04 +01:00
Alexander M. Turek
5b536131f7 Modernize func_get_args() calls to variadic parameters 2021-02-11 20:34:41 +01:00
Alexander M. Turek
d97ab18aa6 feature #40144 [Filesystem] Remove dirs atomically if possible (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Filesystem] Remove dirs atomically if possible

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #27578
| License       | MIT
| Doc PR        | no need to

Commits
-------

17bccca9c6 [Filesystem] remove dirs atomically if possible
2021-02-11 20:02:08 +01:00
Thomas Calvet
88a99ddbdf [Uid] Add UuidFactory to create Ulid and Uuid from timestamps, namespaces and nodes 2021-02-11 13:13:32 +01:00
Jérémy Derussé
7fcb76d367
Fix consistency in sessions not found exceptions 2021-02-11 12:50:39 +01:00
Nicolas Grekas
37e1823598 feature #39688 [FrameworkBundle][Messenger] Added RouterContextMiddleware (jderusse)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[FrameworkBundle][Messenger] Added RouterContextMiddleware

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

When handling a message in async, we, sometimes need the Router Context to generate absolute URL. ie:
- sending an email when the message contains only the template
- generating a PDF

People can use the configuration `router.default_uri` to workaround and fix the issue, but this does not work when the web application servers several domains.

This PR provide a new middleware that store the current router context in a stamp, and restore the context when processing the message.

Commits
-------

8fe8b96921 [Messenger] Added RouterContextMiddleware
2021-02-11 10:44:25 +01:00
Nicolas Grekas
bbc2d6a8b6 Merge branch '5.2' into 5.x
* 5.2:
  Skip checking return types on PHP <= 7.2
  [RateLimiter] Fix sliding_window misbehaving with stale records
2021-02-11 09:21:33 +01:00
Nicolas Grekas
55ca168ee1 Merge branch '4.4' into 5.2
* 4.4:
  Skip checking return types on PHP <= 7.2
2021-02-11 09:21:20 +01:00
Nicolas Grekas
de2f22086e Skip checking return types on PHP <= 7.2 2021-02-11 09:19:35 +01:00
Fabien Potencier
b636e6667a bug #40141 [RateLimiter] Fix sliding_window misbehaving with stale records (xesxen)
This PR was squashed before being merged into the 5.2 branch.

Discussion
----------

[RateLimiter] Fix sliding_window misbehaving with stale records

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

Currently the SlidingWindow RateLimiter returns a negative value for getHitCount if the previous SlidingWindow was too long ago. This results in a really high value from `SlidingWindowLimiter::getAvailableTokens()` which is higher than the configured limit.

This limits the value of percentOfCurrentTimeframe in `SlidingWindow::getHitCount()` to 1 so it can't result in a negative hitcount.

The 2nd fix fixes the SlidingWindow instance (essentially) not storing hits if the previous instance is way in the past, as the next instance will still be "in the past". This causes RateLimit to behave as if it were disabled until it has caught up again, which could take a long time when it is configured with a small window size.

Commits
-------

57033164c6 [RateLimiter] Fix sliding_window misbehaving with stale records
2021-02-11 08:56:23 +01:00
Xesxen
57033164c6 [RateLimiter] Fix sliding_window misbehaving with stale records 2021-02-11 08:56:13 +01:00
Fabien Potencier
042d634477 Fix CS 2021-02-11 08:50:48 +01:00
Fabien Potencier
f93b7381d8 feature #40102 [Notifier] [Firebase] Add data field to options (Raresmldvn)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Notifier] [Firebase] Add data field to options

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | https://github.com/symfony/symfony/issues/40078
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

The Firebase Notifier must comply to the specifications at https://firebase.google.com/docs/cloud-messaging/xmpp-server-ref.html#notification-payload-support .
The options are missing the `data` field which is a common field for all types of notifications: web, ios and android.

Commits
-------

fa8064bbd3 [Notifier] [Firebase] Add data field to options
2021-02-11 08:48:11 +01:00
Rares Moldovan
fa8064bbd3 [Notifier] [Firebase] Add data field to options 2021-02-11 08:48:04 +01:00
Nicolas Grekas
f2ed81b55e Merge branch '5.2' into 5.x
* 5.2:
  [HttpKernel] fix transient test
  [FrameworkBundle] Fix freshness checks with boolean parameters on routes
  forward the label_html option to expanded choice fields
  [FrameworkBundle] fix registering "annotations.cache" on the "container.hot_path"
  Add some information about the username in CONTRIBUTORS
2021-02-10 18:27:22 +01:00
Nicolas Grekas
0a26f1be0b Merge branch '4.4' into 5.2
* 4.4:
  [HttpKernel] fix transient test
  [FrameworkBundle] Fix freshness checks with boolean parameters on routes
  [FrameworkBundle] fix registering "annotations.cache" on the "container.hot_path"
  Add some information about the username in CONTRIBUTORS
2021-02-10 18:26:35 +01:00
Nicolas Grekas
db66fb5838 [HttpKernel] fix transient test 2021-02-10 18:16:49 +01:00
Nicolas Grekas
17bccca9c6 [Filesystem] remove dirs atomically if possible 2021-02-10 18:13:44 +01:00
Nicolas Grekas
f5ddfadcb2 [Filesystem] improve messages on failure 2021-02-10 17:53:17 +01:00
Christian Flothmann
fbe49cf84d forward the label_html option to expanded choice fields 2021-02-09 09:56:11 +01:00
Jérémy Derussé
8fe8b96921
[Messenger] Added RouterContextMiddleware 2021-02-08 23:23:42 +01:00
Nicolas Grekas
20bb3cb3ab Merge branch '5.2' into 5.x
* 5.2:
  merge translation parameters with value configured for parent form
  scan directories for translations sequentially
  Fix kafka tests
  Fix "provide" declarations
  Provide implemented packages of replaced dependencies
  Always autoload string functions on symfony/symfony
2021-02-08 11:24:30 +01:00
Christian Flothmann
3de453c368 merge translation parameters with value configured for parent form 2021-02-07 15:53:40 +01:00
Jérémy Derussé
99c79c966b
Fix FQDN class 2021-02-06 11:28:18 +01:00
Nicolas Grekas
36e5051171 Fix "provide" declarations 2021-02-06 09:54:26 +01:00
Nicolas Grekas
6891550582 Merge branch '4.4' into 5.2
* 4.4:
  Provide implemented packages of replaced dependencies
2021-02-06 09:52:42 +01:00
Simon Berger
57d9a818bb Provide implemented packages of replaced dependencies 2021-02-06 09:48:04 +01:00
Jérémy Derussé
7117e1a798
Use a lazyintertor to close files descriptors when no longer used 2021-02-05 21:09:52 +01:00
Nicolas Grekas
47da6640f8 Merge branch '5.2' into 5.x
* 5.2:
  Allow psr/cache v3 but on symfony/cache
  [DI] fix tracking of changes to vendor/ dirs
  Remove EOLed 5.1 branch from PR template
  [HttpKernel] [Kernel] Silence deprecations logs writes
  Update PULL_REQUEST_TEMPLATE.md
  fix typo
  [Mailer][Mime] Update inline part names with newly generated ContentId
  Fixed updating catalogue metadata from intl domain
  [HttpFoundation] Setting `REQUEST_TIME_FLOAT` when constructing a Request object
2021-02-05 18:04:25 +01:00
Nicolas Grekas
382b10fc7c Merge branch '4.4' into 5.2
* 4.4:
  Allow psr/cache v3 but on symfony/cache
  [DI] fix tracking of changes to vendor/ dirs
  Remove EOLed 5.1 branch from PR template
  [HttpKernel] [Kernel] Silence deprecations logs writes
  Update PULL_REQUEST_TEMPLATE.md
  [Mailer][Mime] Update inline part names with newly generated ContentId
  Fixed updating catalogue metadata from intl domain
  [HttpFoundation] Setting `REQUEST_TIME_FLOAT` when constructing a Request object
2021-02-05 18:02:58 +01:00
Nicolas Grekas
71ca1f3c71 bug #40104 [HttpKernel] [Kernel] Silence failed deprecations logs writes (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] [Kernel] Silence failed deprecations logs writes

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

When `->buildContainer()` throws because the cache directory cannot be created, we still try to write the deprecations logs inside the cache directory. In this case, the final exception is `Warning: file_put_contents(/app/var/cache/dev/App_KernelDevDebugContainerDeprecations.log): failed to open stream: No such file or directory` instead of `Unable to create the "cache" directory (/app/var/cache/dev).`.

Alternative:
```php
try {
    // ...
} catch (\RuntimeException $e)
} finally {
    if (isset($e)) {
        throw $e;
    }

    // ...
}
```

Commits
-------

b7100b6909 [HttpKernel] [Kernel] Silence deprecations logs writes
2021-02-05 17:03:19 +01:00
Nicolas Grekas
0bae2356b1 minor #40106 Allow psr/cache v3 but on symfony/cache (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Allow psr/cache v3 but on symfony/cache

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

Consumers of PSR-6 are compatible with v1|2|3.

Implementations aren't until they add explicit return types, which is not possible without a BC break.

Commits
-------

bf23c44a07 Allow psr/cache v3 but on symfony/cache
2021-02-05 16:56:08 +01:00
Nicolas Grekas
bf23c44a07 Allow psr/cache v3 but on symfony/cache 2021-02-05 16:46:45 +01:00
Nicolas Grekas
d6219f674f bug #40098 [DependencyInjection] fix tracking of changes to vendor/ dirs (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] fix tracking of changes to vendor/ dirs

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

Commits
-------

6867475447 [DI] fix tracking of changes to vendor/ dirs
2021-02-05 16:41:21 +01:00
Nicolas Grekas
6867475447 [DI] fix tracking of changes to vendor/ dirs 2021-02-05 16:35:32 +01:00
Thomas Calvet
b7100b6909 [HttpKernel] [Kernel] Silence deprecations logs writes 2021-02-05 14:33:05 +01:00
Fabien Potencier
66a1a8b4bb feature #39732 [Routing] don't decode nor double-encode already encoded slashes when generating URLs (nicolas-grekas)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[Routing] don't decode nor double-encode already encoded slashes when generating URLs

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

Replaces https://github.com/symfony/symfony/pull/39339

Commits
-------

eaac18be6f [Routing] don't decode nor double-encode already encoded slashes when generating URLs
2021-02-05 09:40:44 +01:00
Fabien Potencier
2764f3c466 feature #39893 [HttpKernel] Show full URI when route not found (ruudk)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[HttpKernel] Show full URI when route not found

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

When accessing a route that does not exist, Symfony throws a `NotFoundHttpException` that says `No route found for "POST /path"`.

On some projects this might be good enough to find the root cause, but on projects that have lots of routes on different hosts, it becomes hard to understand how the request was initiated. Was it done over HTTP or HTTPS? What was the hostname? Did the user specify a port?

To make this easier, we now show the full URI of the path, like this: `No route found for "POST https://www.symfony.com/path"`.

Commits
-------

6f5c9ab80b Show full URI when route not found
2021-02-05 09:34:14 +01:00
Christian Flothmann
53ae8c299d fix typo 2021-02-05 09:21:08 +01:00
ddegentesh
eb14a1e1f0 [Mailer][Mime] Update inline part names with newly generated ContentId 2021-02-05 09:16:51 +01:00
Fabien Potencier
2eddb5165c bug #40043 [HttpFoundation] Setting REQUEST_TIME_FLOAT when constructing a Request object (ctasada)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] Setting `REQUEST_TIME_FLOAT` when constructing a Request object

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

When creating a new Request object `REQUEST_TIME_FLOAT` was not set by default.

Replaces broken 39952 PR :(

Commits
-------

c52c1e0b9b [HttpFoundation] Setting `REQUEST_TIME_FLOAT` when constructing a Request object
2021-02-05 09:03:43 +01:00
Fabien Potencier
1542bbbbae bug #40050 [FrameworkBundle][Translator] Fixed updating catalogue metadata from Intl domain (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle][Translator] Fixed updating catalogue metadata from Intl domain

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

Commits
-------

33e6af5850 Fixed updating catalogue metadata from intl domain
2021-02-05 09:01:14 +01:00
Fabien Potencier
627b6b7457 minor #40100 Updated README.md (Knallcharge)
This PR was merged into the 5.3-dev branch.

Discussion
----------

Updated README.md

fixed typo in url

| Q             | A
| ------------- | ---
| Branch?       | 5.x for features / 4.4, 5.1 or 5.2 for bug fixes <!-- 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 #... <!-- 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 -->
<!--
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.
-->

Commits
-------

309d2ac5f5 Update README.md
2021-02-05 08:53:48 +01:00
Knallcharge
309d2ac5f5
Update README.md
fixed typo in url
2021-02-05 08:22:56 +01:00
Antoine Makdessi
e47afde9fe
Update AllMySmsTransport.php 2021-02-04 23:09:42 +01:00
Grégoire Pineau
bd26a79461 [Worflow] Fixed GuardListener when using the new Security system 2021-02-04 22:34:13 +01:00
Nicolas Grekas
fa2ed7fde6 Merge branch '5.2' into 5.x
* 5.2:
  Allow psr/cache v2
  [DeprecationErrorHandler] Fix tests
2021-02-04 18:52:48 +01:00
Nicolas Grekas
a8fc934907 Merge branch '4.4' into 5.2
* 4.4:
  Allow psr/cache v2
  [DeprecationErrorHandler] Fix tests
2021-02-04 18:52:36 +01:00
Nicolas Grekas
00d3a0ffcb Allow psr/cache v2 2021-02-04 18:34:20 +01:00
Nicolas Grekas
60118f14aa Merge branch '5.2' into 5.x
* 5.2:
  [SecurityBundle] role_names variable instead of roles
  [PhpUnitBridge] fix reporting deprecations when they come from DebugClassLoader
  Fix Request with DNS issue not retried
  Bump Symfony version to 5.2.4
  Update VERSION for 5.2.3
  Update CHANGELOG for 5.2.3
  [ErrorHandler] fix parsing return types in DebugClassLoader
  [ErrorHandler] fix handling messages with null bytes from anonymous classes
  Restore priority for eventSubscribers
2021-02-04 13:03:58 +01:00
Nicolas Grekas
854eabdfe4 bug #40080 Fix Request with DNS issue not retried (jderusse)
This PR was merged into the 5.2 branch.

Discussion
----------

Fix Request with DNS issue not retried

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

When the client failed to resolve the DNS, the RetryableHttpClient should retry the request. But because `$chunk->isLast()` is used later, the original exception is thrown.

/cc @nikophil

Commits
-------

216abd0307 Fix Request with DNS issue not retried
2021-02-04 13:01:57 +01:00
Nicolas Grekas
c92b61857e Merge branch '4.4' into 5.2
* 4.4:
  [SecurityBundle] role_names variable instead of roles
  [PhpUnitBridge] fix reporting deprecations when they come from DebugClassLoader
  [ErrorHandler] fix parsing return types in DebugClassLoader
  [ErrorHandler] fix handling messages with null bytes from anonymous classes
  Restore priority for eventSubscribers
2021-02-04 13:00:01 +01:00
Nicolas Grekas
a7abf0f481 bug #40066 [ErrorHandler] fix parsing return types in DebugClassLoader (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] fix parsing return types in DebugClassLoader

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

In 5.3, we might want to make `SYMFONY_PATCH_TYPE_DECLARATIONS=deprecations=1` the default, so that ppl know when they're missing some return types when they inherit some classes from vendors. This would fix https://github.com/orgs/symfony/projects/1#card-30856423

On 4.4, we have to disable this mode of reporting until these PRs are merged:
- https://github.com/twigphp/Twig/pull/3481
- https://github.com/doctrine/collections/pull/269
- https://github.com/predis/predis/pull/678

Commits
-------

58e32b3c2a [ErrorHandler] fix parsing return types in DebugClassLoader
2021-02-04 12:00:47 +01:00
Nicolas Grekas
6ce4d38d29 bug #40065 [ErrorHandler] fix handling messages with null bytes from anonymous classes (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] fix handling messages with null bytes from anonymous classes

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

PHP truncates error messages at null bytes before calling userland error handlers (known behavior in PHP, marked as "won't fix".)

This doesn't play well with anonymous classes.

This PR works around the issue by getting the message from the stack trace.

Commits
-------

ac94746dc7 [ErrorHandler] fix handling messages with null bytes from anonymous classes
2021-02-04 11:59:55 +01:00
Oskar Stark
3eb8a42036 feature #39948 [Notifier] [SpotHit] Add the bridge (JamesHemery)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Notifier] [SpotHit] Add the bridge

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| License       | MIT
| Doc PR        | symfony/symfony-docs#14869
| Recipe PR        | symfony/recipes#881

@OskarStark Bridge added :)

Commits
-------

afcca88af2 [Notifier] [SpotHit] Add the bridge
2021-02-03 15:45:17 +01:00
James Hemery
afcca88af2 [Notifier] [SpotHit] Add the bridge 2021-02-03 15:45:09 +01:00
Jérémy Derussé
216abd0307
Fix Request with DNS issue not retried 2021-02-03 14:01:01 +01:00
Fabien Potencier
90ace3e11f Bump Symfony version to 5.2.4 2021-02-03 05:56:18 +01:00
Fabien Potencier
e16bbdc1a0
Merge pull request #40074 from fabpot/release-5.2.3
released v5.2.3
2021-02-03 05:52:17 +01:00
Fabien Potencier
f422064540 Update VERSION for 5.2.3 2021-02-03 05:51:58 +01:00
Fabien Potencier
4a2e4e890c Merge branch '5.2' into 5.x
* 5.2:
  Streamline dataproviders
  fix validator when we have a false current element
  [Mailer][Mime] Fix case-sensitive handling of header names
  [Mime] Fix case-sensitive handling in Headers::isUniqueHeader()
  [Messenger] Fix Doctrine setup when using a migration
  [yaml] Delelte unused comparison operation
2021-02-03 05:42:38 +01:00
Fabien Potencier
dab16d041e Merge branch '4.4' into 5.2
* 4.4:
  Streamline dataproviders
  fix validator when we have a false current element
  [Mime] Fix case-sensitive handling in Headers::isUniqueHeader()
  [yaml] Delelte unused comparison operation
2021-02-03 05:42:09 +01:00
Nyholm
90e82546d2
minor #40035 Streamline dataproviders (OskarStark)
This PR was merged into the 4.4 branch.

Discussion
----------

Streamline dataproviders

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

No need to create extra PR's on other branches, no more occurrences 👍

Commits
-------

025079b051 Streamline dataproviders
2021-02-02 21:50:21 +01:00
Oskar Stark
025079b051
Streamline dataproviders 2021-02-02 21:48:46 +01:00
Nyholm
9af1e20dae
Adding changelog 2021-02-02 21:33:33 +01:00
David Buchmann
81d6a49750
[Messenger] Allow to limit consumer to specific queues 2021-02-02 21:29:14 +01:00
Nicolas Grekas
58e32b3c2a [ErrorHandler] fix parsing return types in DebugClassLoader 2021-02-02 17:49:07 +01:00
Nicolas Grekas
ac94746dc7 [ErrorHandler] fix handling messages with null bytes from anonymous classes 2021-02-02 17:39:26 +01:00
Christophe Coevoet
9197199731 minor #40045 [Yaml] Delete unused comparison operation (LoginovIlya)
This PR was merged into the 4.4 branch.

Discussion
----------

[Yaml] Delete unused comparison operation

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

Commits
-------

3ef7bfd972 [yaml] Delelte unused comparison operation
2021-02-02 10:51:46 +01:00
Fabien Potencier
cedcb55097 bug #39954 [Mailer][Mime] Fix case-sensitive handling of header names (piku235)
This PR was squashed before being merged into the 5.2 branch.

Discussion
----------

[Mailer][Mime] Fix case-sensitive handling of header names

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

Fixes case-sensitive handling of header names in "Mime" and "Mailer" component, more in the [ticket](https://github.com/symfony/symfony/issues/39953).

Commits
-------

d563c846f6 [Mailer][Mime] Fix case-sensitive handling of header names
2021-02-02 07:10:15 +01:00
Piotr Kugla
d563c846f6 [Mailer][Mime] Fix case-sensitive handling of header names 2021-02-02 07:10:09 +01:00
Piotr Kugla
b2d7454042 [Mime] Fix case-sensitive handling in Headers::isUniqueHeader() 2021-02-01 19:58:28 +01:00
Fabien Potencier
d9f490a8b2 minor #40047 [HttpClient] Remove unnecessary "?" in url query (michaljusiega)
This PR was merged into the 5.3-dev branch.

Discussion
----------

[HttpClient] Remove unnecessary "?" in url query

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

When creating the Request with passing nullable values as query parameters `HttpClientTrait::resolveUrl` method keeps at the end of URL "?" (IMO unnecessary) character.

Before:
```
        $client = HttpClient::create();
        $response = $client->request('GET', 'http://example.com/', ['query' => ['a' => null]]);

        $url = $response->getInfo('url'); // http://example.com/?
```

After:

```
        $client = HttpClient::create();
        $response = $client->request('GET', 'http://example.com/', ['query' => ['a' => null]]);

        $url = $response->getInfo('url'); // http://example.com/
```

Commits
-------

55831a85db Fix Query URL
2021-02-01 16:03:21 +01:00
Fabien Potencier
42eeb44f83 [Messenger] Fix Doctrine setup when using a migration 2021-02-01 15:36:03 +01:00
Yonel Ceruto
33e6af5850 Fixed updating catalogue metadata from intl domain 2021-01-31 21:39:35 -05:00
Michał Jusięga
55831a85db Fix Query URL 2021-01-31 21:54:11 +01:00
LoginovIlya
3ef7bfd972 [yaml] Delelte unused comparison operation 2021-01-31 18:20:26 +03:00
Carlos Tasada
c52c1e0b9b [HttpFoundation] Setting REQUEST_TIME_FLOAT when constructing a Request object 2021-01-31 14:27:34 +01:00
Ruud Kamphuis
6f5c9ab80b
Show full URI when route not found
When accessing a route that does not exist, Symfony throws a `NotFoundHttpException` that says `No route found for "POST /path"`.

On some projects this might be good enough to find the root cause, but on projects that have lots of routes on different hosts, it becomes hard to understand how the request was initiated. Was it done over HTTP or HTTPS? What was the hostname? Did the user specify a port?

To make this easier, we now show the full URI of the path, like this: `No route found for "POST https://www.symfony.com/path"`.
2021-01-29 12:00:10 +01:00
Jérémy Derussé
0f4c905b8c
feature #39976 [Console] Add bright colors to console. (CupOfTea696)
This PR was squashed before being merged into the 5.3-dev branch.

Discussion
----------

[Console] Add bright colors to console.

| Q             | A
| ------------- | ---
| Branch?       | 5.x <!-- 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 #39869 <!-- 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#14884 <!-- required for new features -->

Add the "bright" ANSI colours to symfony/console. This adds ANSI escape codes 90-97 and 100-107.
<!--
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.
-->

Commits
-------

dbb94524ba [Console] Add bright colors to console.
2021-01-28 23:09:26 +01:00
Frankie Wittevrongel
dbb94524ba
[Console] Add bright colors to console. 2021-01-28 23:09:11 +01:00
Jérémy Derussé
02cbb3a92c
Merge branch '5.2' into 5.x
* 5.2:
  Use createMock() instead of a getter
  [ErrorHandler] Fix strpos error when trying to call a method without a name
  use proper keys to not override appended files
  take into account all label related options
  Fix console logger according to PSR-3
2021-01-28 23:08:00 +01:00
Jérémy Derussé
a07638b14a
Merge branch '4.4' into 5.2
* 4.4:
  Use createMock() instead of a getter
  [ErrorHandler] Fix strpos error when trying to call a method without a name
  use proper keys to not override appended files
  Fix console logger according to PSR-3
2021-01-28 23:06:19 +01:00
Jérémy Derussé
945c7c590c
minor #39920 [Console] Fix console logger according to PSR-3 (alex-dev)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Fix console logger according to PSR-3

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #39050, #29138
| License       | MIT

`Symfony\Component\HttpKernel\EventListener\ErrorListener` logs non-HTTP exceptions at `LogLevel::CRITICAL`.
`Symfony\Component\Messenger\Worker` logs unrecoverable exceptions at `LogLevel::CRITICAL`.
`Symfony\Component\Console\EventListener\ErrorListener` logs exceptions at `LogLevel::ERROR`.

As per PSR-3, unexpected and unrecoverable exceptions should be logged at `LogLevel::CRITICAL`.

Commits
-------

69fcd075eb Fix console logger according to PSR-3
2021-01-28 23:01:20 +01:00
Robin Chalas
be788ee119 minor #39997 Use createMock() instead of a getter (OskarStark)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Use createMock() instead of a getter

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

Before I go on, are you interested in such change @nicolas-grekas ?

Commits
-------

9629dafa66 Use createMock() instead of a getter
2021-01-28 20:07:58 +01:00
Oskar Stark
9629dafa66 Use createMock() instead of a getter 2021-01-28 20:07:50 +01:00