Commit Graph

31169 Commits

Author SHA1 Message Date
Alexander M. Turek
3d7863f5b5 [Security] Synchronized translations with 5.x. 2020-10-25 12:33:47 +01:00
Fabien Potencier
a1fa430b6a minor #38714 [Form] Added missing German translations (derrabus)
This PR was merged into the 5.2-dev branch.

Discussion
----------

[Form] Added missing German translations

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Part of #38710
| License       | MIT
| Doc PR        | N/A

Commits
-------

37a2ff4563 [Form] Added missing German translations.
2020-10-25 12:31:08 +01:00
Alexander M. Turek
37a2ff4563 [Form] Added missing German translations. 2020-10-25 12:18:37 +01:00
Marcin Michalski
ec3b0edc1f [Form] Add missing polish translations 2020-10-25 12:03:58 +01:00
Marcin Michalski
23fa42267e [Security] Add missing polish translations 2020-10-25 11:48:26 +01:00
Fabien Potencier
fc5e6b1903 Merge branch '5.1' into 5.x
* 5.1:
  [Cache] Fixed broken test
2020-10-25 09:36:38 +01:00
Fabien Potencier
e80549bf1a Merge branch '4.4' into 5.1
* 4.4:
  [Cache] Fixed broken test
2020-10-25 09:36:24 +01:00
Fabien Potencier
fc615e9845 feature #38664 [RateLimiter] Moved classes implementing LimiterInterface to a new namespace (Nyholm)
This PR was squashed before being merged into the 5.2-dev branch.

Discussion
----------

[RateLimiter] Moved classes implementing LimiterInterface to a new namespace

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

Before we release the RateLimit component.
I think it would be a good idea to put the 7 classes that belongs to a specific strategy in their own "Policy" namespace. It is very likely that it will be more strategies in the future and the `Symfony\Component\RateLimiter` namespace is crowed as it is.

I decided not to put the `CompoundLimiter` in this namespace as it is not a strategy.

Commits
-------

1e6cea56e4 [RateLimiter] Moved classes implementing LimiterInterface to a new namespace
2020-10-25 09:35:39 +01:00
Nyholm
1e6cea56e4 [RateLimiter] Moved classes implementing LimiterInterface to a new namespace 2020-10-25 09:35:33 +01:00
Nyholm
e17797c8e4
[Cache] Fixed broken test 2020-10-24 23:50:04 +02:00
Nicolas Grekas
605a5674a8 Merge branch '5.1' into 5.x
* 5.1:
  fix merge
  fix merge
  Remove branch-version (keep them for contracts only)
  [HttpClient] relax auth bearer format requirements
  [PHPUnitBridge] Silence errors from mkdir()
  [DependencyInjection] Preload classes with union types correctly.
  [Serializer] fix decoding float XML attributes starting with 0
  add missing dutch translations
  [TwigBridge] Remove "transchoice" from the code base
  Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait
  Add expectDeprecation, expectNotice, expectWarning, and expectError to TestCase polyfill
  [String] fix before/after[Last]() returning the empty string instead of the original one on non-match
  Add missing exporter function for PHPUnit 7
  [Validator] Add missing romanian translations
  [String] fix slicing in UnicodeString
  [Cache] Use correct expiry in ChainAdapter
  do not translate null placeholders or titles
2020-10-24 14:08:07 +02:00
Nicolas Grekas
60e969e01e fix merge 2020-10-24 14:03:25 +02:00
Nicolas Grekas
65f2620bc4 Merge branch '4.4' into 5.1
* 4.4:
  fix merge
  Remove branch-version (keep them for contracts only)
  [HttpClient] relax auth bearer format requirements
  [PHPUnitBridge] Silence errors from mkdir()
  [DependencyInjection] Preload classes with union types correctly.
  [Serializer] fix decoding float XML attributes starting with 0
  add missing dutch translations
  Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait
  Add expectDeprecation, expectNotice, expectWarning, and expectError to TestCase polyfill
  Add missing exporter function for PHPUnit 7
  [Validator] Add missing romanian translations
  [Cache] Use correct expiry in ChainAdapter
  do not translate null placeholders or titles
2020-10-24 14:01:57 +02:00
Nicolas Grekas
77aa17401d Merge branch '3.4' into 4.4
* 3.4:
  Remove branch-version (keep them for contracts only)
  [Serializer] fix decoding float XML attributes starting with 0
  add missing dutch translations
  [Validator] Add missing romanian translations
  do not translate null placeholders or titles
2020-10-24 13:50:19 +02:00
Nicolas Grekas
f8fe4bf9f5 Remove branch-version (keep them for contracts only) 2020-10-24 12:57:07 +02:00
Nicolas Grekas
4abbb1d6a9 bug #38647 [HttpClient] relax auth bearer format requirements (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] relax auth bearer format requirements

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

Commits
-------

ac20594267 [HttpClient] relax auth bearer format requirements
2020-10-24 11:44:37 +02:00
Christian Flothmann
ac20594267 [HttpClient] relax auth bearer format requirements 2020-10-24 11:44:22 +02:00
Nicolas Grekas
f517cf1174 minor #38703 [HttpClient] Adding missing dependency for dev (Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] Adding missing dependency for dev

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

This will make sure Travis is happy again.

Commits
-------

552e704d6c [HttpClient] Adding missing dependency for dev
2020-10-24 11:30:32 +02:00
Nyholm
552e704d6c
[HttpClient] Adding missing dependency for dev 2020-10-24 10:12:34 +02:00
Robin Chalas
1c81aa72a6 bug #38675 [RateLimiter] Rename RateLimiter to RateLimiterFactory (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Rename RateLimiter to RateLimiterFactory

| Q             | A
| ------------- | ---
| Branch?       | 5.x
| Bug fix?      | no
| New feature?  | no
| Deprecations? | No, not released yet
| Tickets       |
| License       | MIT
| Doc PR        | should be added

Sorry for making a few BC breaks.

@wouterj [said](https://github.com/symfony/symfony/pull/38562#issue-503193238) that this class was suggested to be named `LimiterFactory` before. But that was rejected.

Just my looking at the names of the classes we currently have:
- Rate
- RateLimit
- RateLimiter

I find it hard to know what these are doing and the difference between them. Note that none of them are used as a rate limiter (ie implements `LimiterInterface`)

I would like to be clear that a `RateLimiterFactory` is used to create an object implementing `LimiterInterface`.

Commits
-------

8be261b300 [RateLimiter] Rename RateLimiter to RateLimiterFactory
2020-10-24 10:11:08 +02:00
Nyholm
8be261b300 [RateLimiter] Rename RateLimiter to RateLimiterFactory 2020-10-24 10:10:52 +02:00
Alexander M. Turek
a7b0f16a56 [DependencyInjection] Preload classes with union types correctly. 2020-10-23 19:57:28 +02:00
Jan Schädlich
c6b32cdbd2 add missing upgrade entries and fixed changelog 2020-10-23 15:33:06 +02:00
Jérémy Derussé
e6f6b4cb4c
Add Stopwatch on TraceableClient 2020-10-23 12:06:36 +02:00
Fabien Potencier
85e8de6137 bug #38669 [Serializer] fix decoding float XML attributes starting with 0 (Marcin Kruk)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Serializer] fix decoding float XML attributes starting with 0

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

This is a naive approach to fix #38666, assuming it is something worth fixing.

I checked different cases and it seems to be fixing all of them, but I bet there will be some other edge cases which still won't be covered properly.

Commits
-------

97b4306c30 [Serializer] fix decoding float XML attributes starting with 0
2020-10-23 06:26:46 +02:00
Marcin Kruk
97b4306c30 [Serializer] fix decoding float XML attributes starting with 0 2020-10-23 06:26:38 +02:00
Jos Elstgeest
02a8ca39f4 add missing dutch translations 2020-10-22 22:50:11 +02:00
Nyholm
76c22fab02
bug #38661 [RateLimiter] Fix delete method of the cache storage (GregOriol, Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[RateLimiter] Fix delete method of the cache storage

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

This PR fixes a small issue with RateLimiter's cache storage and the delete method: all getItems are called with a sha1 of the id, but not the one for delete, which makes it miss the deletion.

Commits
-------

b61d9d1ea3 minor
88c1e2439e Added a test
fb540bba73 Fix delete method on RateLimiter's cache storage
2020-10-22 19:09:06 +02:00
Nyholm
310926fa88
bug #38678 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match (nicolas-grekas)
This PR was merged into the 5.1 branch.

Discussion
----------

[String] fix before/after[Last]() returning the empty string instead of the original one on non-match

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

The current behavior is the least useful one. Returning the original string when no match is found is the most sensible behavior. It saves code instead of requiring more.

Typical example is when removing a potential suffix:
`$bar = $foo->beforeLast(['.svg', '.png']);` should remove any of these extensions if found, and return the original string otherwise.

Commits
-------

22a2740888 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match
2020-10-22 19:01:40 +02:00
Nyholm
6f0a8971fd
bug #38682 [HttpClient] never trace content of event-stream responses (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] never trace content of event-stream responses

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

Let's leverage #38587 in `EventSourceHttpClient`

Commits
-------

e4c0262dc1 [HttpClient] never trace content of event-stream responses
2020-10-22 18:54:44 +02:00
Nicolas Grekas
e4c0262dc1 [HttpClient] never trace content of event-stream responses 2020-10-22 15:42:02 +02:00
Nicolas Grekas
22a2740888 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match 2020-10-22 14:08:44 +02:00
Nyholm
b61d9d1ea3
minor 2020-10-22 12:14:59 +02:00
Nyholm
88c1e2439e
Added a test 2020-10-22 12:12:23 +02:00
Nyholm
067153f452
Make sure we actually can use sliding_window and no_limit 2020-10-22 11:54:30 +02:00
Greg ORIOL
fb540bba73
Fix delete method on RateLimiter's cache storage 2020-10-22 11:48:25 +02:00
Robin Chalas
753932527e bug #38670 [RateLimiter] Be more type safe when fetching from cache (Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[RateLimiter] Be more type safe when fetching from cache

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

This is a super minor thing. A `$cacheItem` can be a hit, but it does not contain a `LimiterStateInterface`.

Also, PSR-6 specifies that if the `$cacheItem` is not a hit, it must return null.

Commits
-------

4795756cc7 [RateLimiter] Be more type safe when fetching form cache
2020-10-22 10:40:20 +02:00
Robin Chalas
58f4e9dfc8 bug #38665 [RateLimiter] Allow configuration value "no_limit" (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Allow configuration value "no_limit"

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

I dont see any reason why we should allow people to configure "no_limit". I assume this was just forgotten.

Commits
-------

2b9058d6b6 [RateLimiter] Allow configuration value "no_limit"
2020-10-22 10:35:38 +02:00
Nyholm
2b9058d6b6 [RateLimiter] Allow configuration value "no_limit" 2020-10-22 10:35:15 +02:00
Robin Chalas
6bb46dedca minor #38668 [RateLimiter] Remove Window::sleep() (Nyholm)
This PR was merged into the 5.x branch.

Discussion
----------

[RateLimiter] Remove Window::sleep()

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

This function is not needed since #38562

Commits
-------

ccbf7d5a06 [RateLimiter] Remove Window::sleep()
2020-10-22 10:31:04 +02:00
Nyholm
5dfafd334e [RateLimiter] Adding annotations 2020-10-22 10:25:47 +02:00
Marcin Michalski
ced43e1ec2 [Validator] Add missing romanian translations 2020-10-22 08:30:04 +02:00
Nyholm
4795756cc7
[RateLimiter] Be more type safe when fetching form cache 2020-10-21 23:51:48 +02:00
Nyholm
ccbf7d5a06
[RateLimiter] Remove Window::sleep() 2020-10-21 23:43:19 +02:00
Nicolas Grekas
d31ac74c03 [String] fix slicing in UnicodeString 2020-10-21 15:57:40 +02:00
Fabien Potencier
508ec9c33a bug #38633 [HttpClient] Fix decorating progress info in AsyncResponse (jderusse)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[HttpClient] Fix decorating progress info in AsyncResponse

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

This PR reverts #38413, and send AsyncContext to onProgress callback.

Commits
-------

e325f51fe2 [HttpClient] Fix decorating progress info in AsyncResponse
2020-10-21 15:24:34 +02:00
Jérémy Derussé
e325f51fe2 [HttpClient] Fix decorating progress info in AsyncResponse 2020-10-21 15:24:25 +02:00
Fabien Potencier
b8012094d5 feature #38543 [HttpKernel] add kernel.runtime_environment = %env(default:kernel.environment:APP_RUNTIME_ENV)% parameter (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpKernel] add `kernel.runtime_environment` = `%env(default:kernel.environment:APP_RUNTIME_ENV)%` parameter

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

Instead of #37584

This PR adds a new `kernel.runtime_environment` parameter, which creates a convention to use the `APP_RUNTIME_ENV` env var to define the name of the runtime environment where the app is deployed.

When this env var is not set, the parameter defaults to `kernel.environment`.

This is especially useful for defining the location of the vault for secrets: an app can be deployed in "prod" mode, but still not be deployed on the real prod deployment target. When this happens, one might not use real prod secrets but instead, use a vault with creds for staging.

This parameter enables this use case.

Commits
-------

6eb9d62bdd [HttpKernel] add `kernel.runtime_environment` = `%env(default:kernel.environment:APP_RUNTIME_ENV)%` parameter
2020-10-21 15:20:19 +02:00
Nicolas Grekas
6eb9d62bdd [HttpKernel] add kernel.runtime_environment = %env(default:kernel.environment:APP_RUNTIME_ENV)% parameter 2020-10-21 15:15:15 +02:00
Nicolas Grekas
5a4be6841d bug #38635 [Cache] Use correct expiry in ChainAdapter (Nyholm)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Cache] Use correct expiry in ChainAdapter

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

When we are syncing the chain, Let's use expiry if we have it. If not, fallback to defaultLifetime.

TODO:
- [x] Add tests

Commits
-------

17e0167798 [Cache] Use correct expiry in ChainAdapter
2020-10-21 11:34:34 +02:00
Nyholm
17e0167798 [Cache] Use correct expiry in ChainAdapter 2020-10-21 11:34:26 +02:00
Fabien Potencier
7b62f099c2 Merge branch '5.1' into 5.x
* 5.1:
  [Filesystem] Check if failed unlink was caused by permission denied
  fix APCu installation for the nightly build job
  skip Vulcain-based tests if the binary cannot be executed
2020-10-21 06:47:22 +02:00
Fabien Potencier
baf8c2355f Merge branch '4.4' into 5.1
* 4.4:
  [Filesystem] Check if failed unlink was caused by permission denied
  fix APCu installation for the nightly build job
  skip Vulcain-based tests if the binary cannot be executed
2020-10-21 06:47:05 +02:00
Fabien Potencier
19637c5de3 Merge branch '3.4' into 4.4
* 3.4:
  [Filesystem] Check if failed unlink was caused by permission denied
2020-10-21 06:38:54 +02:00
Nyholm
1cde6ca03f [Filesystem] Check if failed unlink was caused by permission denied 2020-10-21 06:37:26 +02:00
Nyholm
e731e37109
minor #38649 [HttpClient] skip Vulcain-based tests if the binary cannot be executed (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] skip Vulcain-based tests if the binary cannot be executed

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

Commits
-------

fa265c2ee4 skip Vulcain-based tests if the binary cannot be executed
2020-10-21 00:16:26 +02:00
Alexander M. Turek
e6417384d2 Merge branch '5.1' into 5.x 2020-10-20 22:28:53 +02:00
Alexander M. Turek
1c6380f333 Merge branch '4.4' into 5.1 2020-10-20 22:28:16 +02:00
Fabien Potencier
aafad690de bug #38645 [PropertyAccess] forward the caught exception (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[PropertyAccess] forward the caught exception

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

Commits
-------

143f82ef8e forward the caught exception
2020-10-20 19:18:02 +02:00
Christian Flothmann
fa265c2ee4 skip Vulcain-based tests if the binary cannot be executed 2020-10-20 15:38:40 +02:00
Alexander Schranz
3f320c8d51 Refractor AbstractBrowserTest to assertSame 2020-10-20 14:41:53 +02:00
Christian Flothmann
143f82ef8e forward the caught exception 2020-10-20 14:40:03 +02:00
Nicolas Grekas
c8c227f43f Merge branch '3.4' into 4.4
* 3.4:
  [Form] Sync translations
  Added dutch translations for new invalid messages
  Don't skip Doctrine tests on php 8.
  Bump APCu to 5.1.19 on Travis.
  [WebProfilerBundle] Hide debug toolbar in print view
  indexBy does not refer to attributes, but to column names
  Fix Reflection file name with eval()\'d code
  [HttpFoundation] Fix Range Requests
2020-10-20 13:58:22 +02:00
Fabien Potencier
6987862d97 Merge branch '5.1' into 5.x
* 5.1:
  Don't skip Doctrine tests on php 8.
  Stop using set-env in GitHub actions.
  Allow setting AMQP option "login"
  Bump igbinary to v3.1.6
  Add myself to CODEOWNERS for Form, OptionsResolver and TwigBundle
  Reference the correct interface in the RegistryInterface deprecation in upgrade notes
  Add myself to CODEOWNERS for Security and Console
  Add wouterj as codeowner for Security related packages
2020-10-20 08:22:43 +02:00
Fabien Potencier
5578239608 Merge branch '4.4' into 5.1
* 4.4:
  Don't skip Doctrine tests on php 8.
  Stop using set-env in GitHub actions.
  Bump igbinary to v3.1.6
  Add myself to CODEOWNERS for Form, OptionsResolver and TwigBundle
  Reference the correct interface in the RegistryInterface deprecation in upgrade notes
  Add myself to CODEOWNERS for Security and Console
  Add wouterj as codeowner for Security related packages
2020-10-20 08:22:32 +02:00
Fabien Potencier
185e9ea67e feature #38426 [HttpClient] Parameterize list of retryable methods (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] Parameterize list of retryable methods

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

Retrying non-idempotent methods is not always acceptable for user. This PR adds an easy way to configure this behavior.

The `RetryDeciderInterface::shouldRetry()` now take the exception in parameter, in order to let decider not retrying the request when the methods should never by retried.

With #38420, this code would belongs to the RetryStrategy implementation, and would return an `NeverRetryDecider` when method is not allowed.

Commits
-------

56809d1b91 Parameterize list of retryed Http methods
2020-10-20 08:18:14 +02:00
Fabien Potencier
95560025b6 feature #38608 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit() (kbond)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit()

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

After discussing #38489 with @wouterj, he agreed we should add `Limit::getLimit()` but this method name was unfortunate. We decided to rename the `Limit` object to `RateLimit` which, IMO, is a better name for the object and is inline with how this concept is described in the [RateLimit Header Fields for HTTP RFC](https://tools.ietf.org/id/draft-polli-ratelimit-headers-00.html).

Commits
-------

c5361cfc58 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit()
2020-10-20 08:15:23 +02:00
Kevin Bond
c5361cfc58 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit() 2020-10-20 08:15:14 +02:00
Fabien Potencier
280a27fc16 [Form] Sync translations 2020-10-20 08:12:23 +02:00
Wouter de Jong
697fe21f24 Added dutch translations for new invalid messages 2020-10-20 08:10:02 +02:00
Fabien Potencier
2b1190f46c bug #38617 [Form] Add missing invalid_message translations (wouterj)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[Form] Add missing invalid_message translations

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

Some invalid messages were missed in #30931 (probably because of the old age of that PR). This PR adds all missing translation keys and a missing invalid message for the new WeekType.

I've also added the dutch translations (might be up for improvement, but it's a start). We should probably initiate another community initiative to translate these new messages (only a couple languages include the new invalid messages yet).

Commits
-------

86c78b6302 Added dutch translations for new invalid messages
301f0aa0db Added missing invalid messages
2020-10-20 08:09:22 +02:00
Alexander M. Turek
c65c6ea75d Don't skip Doctrine tests on php 8. 2020-10-20 00:20:26 +02:00
Alexander M. Turek
f4a99b2361 Don't skip Doctrine tests on php 8. 2020-10-19 23:16:40 +02:00
Jérémy Derussé
56809d1b91
Parameterize list of retryed Http methods 2020-10-19 17:04:49 +02:00
Wouter de Jong
86c78b6302 Added dutch translations for new invalid messages 2020-10-19 15:06:38 +02:00
Wouter de Jong
301f0aa0db Added missing invalid messages 2020-10-19 15:06:38 +02:00
Nicolas Grekas
bbb220c8e3 bug #38612 [Messenger/Amqp] Allow setting option "login" in DSN (W0rma)
This PR was merged into the 5.1 branch.

Discussion
----------

[Messenger/Amqp] Allow setting option "login" in DSN

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

Commits
-------

43c05774ac Allow setting AMQP option "login"
2020-10-19 12:04:45 +02:00
Fabien Potencier
1d445cce63 Merge branch '5.1' into 5.x
* 5.1:
  [Messenger][Doctrine] Avoid early db access for pgsql detection
  Add missing use statement
2020-10-19 08:28:41 +02:00
Kevin Bond
a246894a00
fix RequestRateLimiterInterface::reset() 2020-10-18 18:14:51 -04:00
Dieter
43c05774ac Allow setting AMQP option "login" 2020-10-18 13:03:00 +02:00
Robin Chalas
c4cc4a338b [Messenger][Doctrine] Avoid early db access for pgsql detection 2020-10-18 02:19:48 +02:00
Robin Chalas
36e41b85d8 [Console] Fix Application::getSignalRegistry() retval 2020-10-16 14:43:44 +02:00
Fabien Potencier
abbb3d0546 feature #38562 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter (wouterj)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter

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

While Javier wrote documentation for this new component, we found a couple of confusing elements that might need some tweaks:

* The `Limiter` class (previously called `LimiterFactory`) has imho a bit strange name, as it's not a limiter and it doesn't implement `LimiterInterface`. It can only new limiters. I believe `LimiterFactory` - like `LockFactory` - would be the most clear, but as that was rejected before, here is another proposal using `RateLimiter`.
* `reserve()` was now only part of the token bucket implementation. That made it a bit less useful. I think I've found a way to also allow reserving future hits in the fixed window implementation, so I've moved it to the `LimiterInterface`.

Commits
-------

cd34f21254 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter
2020-10-16 07:10:35 +02:00
Wouter de Jong
cd34f21254 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter 2020-10-16 07:10:27 +02:00
Fabien Potencier
6e4d6eb2dd feature #38593 [Lock][Semaphore] Add Factory::createFromKey and deprecate lock.store services (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[Lock][Semaphore] Add Factory::createFromKey and deprecate lock.store services

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

The `lock` service and aliases have been deprecated in #38576. This PR also deprecate the `lock.store` service and aliases.

People should always inject the factory into their services, except for one scenario: When they want building the `Lock` manually because they want to keep the key.

This scenario require declaring `lock.store` service and `PersisingStoreInterface` aliases.
This could be avoided if people had a method to create a lock from a given key.

This PR adds a `LockFactory::createFromKey()` method and deprecate all `lock.store` services

I also updated the Semaphore component for consistency, and helping people to only inject the SemahoreFactory.

nb: use cases for serializing the keys:
- Netflix allows only 5 users of the same family at the same time.
- An holiday apartment rental avoid users putting the same apartment in the basket
- ...

Commits
-------

91fa3e311d Deprecate lock.store aliases
2020-10-16 07:05:54 +02:00
Fabien Potencier
72be3057ca feature #38587 [HttpClient] added extra.trace_content option to TraceableHttpClient to prevent it from keeping the content in memory (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] added `extra.trace_content` option to `TraceableHttpClient` to prevent it from keeping the content in memory

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

`TraceableHttpClient` leaks memory by definition. But sometimes, this leak is to important, especially when keeping the response content in memory.

This PR adds a new `trace_content` option under `extra` so that consumers can tell the client to not trace the content. This will be ignored when `TraceableHttpClient` is not in use.

Commits
-------

61290d5aa4 [HttpClient] added `extra.trace_content` option to `TraceableHttpClient` to prevent it from keeping the content in memory
2020-10-16 06:59:05 +02:00
Fabien Potencier
dda1fe9c3a bug #38589 [Console] Don't register signal handlers if pcntl is disabled (chalasr)
This PR was merged into the 5.x branch.

Discussion
----------

[Console] Don't register signal handlers if pcntl is disabled

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

This PR skips the default signal registration when pcntl is not installed or disabled via the `disable_functions` INI directive (which is common for prod infrastructures).
When registering a `SignalableCommand`, a clear exception is thrown.

Best reviewed [without whitespaces](https://github.com/symfony/symfony/pull/38589/files?w=1)

Commits
-------

8fe876341e [Console] Don't register signal handlers if pcntl is disabled
2020-10-16 06:52:38 +02:00
Robin Chalas
8fe876341e [Console] Don't register signal handlers if pcntl is disabled 2020-10-16 01:46:35 +02:00
Jérémy Derussé
91fa3e311d
Deprecate lock.store aliases 2020-10-15 22:19:33 +02:00
Nyholm
1e8916904e
bug #38581 [Semaphore] Reset Key lifetime time before we acquire it (jderusse)
This PR was merged into the 5.x branch.

Discussion
----------

[Semaphore] Reset Key lifetime time before we acquire it

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

This is the same issue fixed by #38553 but for Semaphore component.

Commits
-------

e7ffd5d2e7 Reset Key lifetime time in semaphore
2020-10-15 19:46:28 +02:00
Jérémy Derussé
e7ffd5d2e7
Reset Key lifetime time in semaphore 2020-10-15 19:25:55 +02:00
Nicolas Grekas
61290d5aa4 [HttpClient] added extra.trace_content option to TraceableHttpClient to prevent it from keeping the content in memory 2020-10-15 14:02:47 +02:00
Maxime Aknin
394a694856 Fix Reflection file name with eval()\'d code
remove eval()\'d code from lineage
2020-10-15 10:31:43 +02:00
Oskar Stark
db392d2441
Fix: Typo 2020-10-15 10:06:30 +02:00
Fabien Potencier
19a320513a feature #38565 [RateLimiter] Adding SlidingWindow algorithm (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

[RateLimiter] Adding SlidingWindow algorithm

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

This is a draft PR to make sure we like the idea. I'll keep working on adding tests.

Commits
-------

c6d3b70315 [RateLimiter] Adding SlidingWindow algorithm
2020-10-15 08:59:52 +02:00
Nyholm
c6d3b70315 [RateLimiter] Adding SlidingWindow algorithm 2020-10-15 08:59:46 +02:00
Fabien Potencier
8c4ecc313b Bump Symfony version to 5.2.0 2020-10-14 21:27:47 +02:00
Fabien Potencier
0641541f34 Update VERSION for 5.2.0-BETA2 2020-10-14 21:22:19 +02:00
Wouter de Jong
04ef565895 [Security][Notifier] Added integration of Login Link with the Notifier component 2020-10-14 20:49:27 +02:00
Fabien Potencier
89dddd1770 bug #38516 [HttpFoundation] Fix Range Requests (BattleRattle)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Fix Range Requests

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

This PR fixes some deviations from [RFC 7233](https://tools.ietf.org/html/rfc7233) for handling range requests, mentioned in #38295.

- overlapping ranges are now satisfiable (e.g. when requested range end is larger than the file size)
- range units other than `bytes` will get ignored
- range requests for methods other than `GET` will be ignored

I did not manage yet to implement the support for multiple ranges, but also don't know, if that's needed here.

Commits
-------

681804ba1a [HttpFoundation] Fix Range Requests
2020-10-14 19:31:51 +02:00
Nicolas Grekas
ffbb9883bd Merge branch '5.1' into 5.x
* 5.1:
  [Contracts] add branch-aliases for dev-main
  [Cache] Make Redis initializers static
  [Messenger] Fixed typos in Connection
  [CI] Fixed build on AppVeyor
  Fix tests typo
  [Lock] Reset Key lifetime time before we acquire it
  [CI] Silence errors when remove file/dir on test tearDown()
  Fix tests
  Remove content-type check on toArray methods
2020-10-14 19:08:19 +02:00
Nicolas Grekas
3e587d7013 Merge branch '4.4' into 5.1
* 4.4:
  [Contracts] add branch-aliases for dev-main
  [Cache] Make Redis initializers static
  Fix tests typo
  [Lock] Reset Key lifetime time before we acquire it
  [CI] Silence errors when remove file/dir on test tearDown()
2020-10-14 18:43:39 +02:00
Norman Soetbeer
681804ba1a [HttpFoundation] Fix Range Requests 2020-10-14 18:38:26 +02:00
Nicolas Grekas
8553361a10 bug #38566 Fix minor issue when sharing windows between Limiters (Nyholm)
This PR was squashed before being merged into the 5.x branch.

Discussion
----------

Fix minor issue when sharing windows between Limiters

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

If I start using my custom Limiter, then change back to `FixedWindowLimiter`, then my cache might contain a value that `FixedWindowLimiter` does not support.

This PR makes sure that we handle such switch.

Commits
-------

e9ac9712d8 Fix minor issue when sharing windows between Limiters
2020-10-14 18:23:07 +02:00
Nyholm
e9ac9712d8 Fix minor issue when sharing windows between Limiters 2020-10-14 18:22:58 +02:00
Nyholm
1d7c8013e6 [Messenger][Redis] Adding support for lazy connect 2020-10-14 16:11:38 +02:00
Nyholm
ad8de57b91
[Cache] Make Redis initializers static 2020-10-14 13:43:26 +02:00
Fabien Potencier
674382b7ea bug #38553 [Lock] Reset Key lifetime time before we acquire it (Nyholm)
This PR was merged into the 4.4 branch.

Discussion
----------

[Lock] Reset Key lifetime time before we acquire it

| Q             | A
| ------------- | ---
| Branch?       | 5.1 (maybe lower, I'll check)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #38541
| License       | MIT
| Doc PR        | n/a

Im out on somewhat deep water now. I am pretty sure we should reset the Key lifetime every time we acquire it. Without it it will me tricky to re-use a lock. (As pointed out by #38541)

@jderusse can you confirm.

Commits
-------

55ad70225a [Lock] Reset Key lifetime time before we acquire it
2020-10-14 11:40:34 +02:00
Nyholm
5dec141afb [Messenger] Fixed typos in Connection 2020-10-14 11:38:11 +02:00
Fabien Potencier
d235724d6d minor #38561 Fix tests typo (ScullWM)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix tests typo

| Q             | A
| ------------- | ---
| Branch?       | 4.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 #... <!-- 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 -->

While working on PSR 16 cache tests, I found this small glitch in the mocked `isHit` method

Commits
-------

047ce05f6b Fix tests typo
2020-10-14 11:36:53 +02:00
Nyholm
0c08432a3d [CI] Fixed build on AppVeyor 2020-10-14 11:34:34 +02:00
Fabien Potencier
9982713327 Merge branch '3.4' into 4.4
* 3.4:
  [CI] Silence errors when remove file/dir on test tearDown()
2020-10-14 11:30:35 +02:00
Fabien Potencier
e9d23677a7 Merge branch '4.4' into 5.1
* 4.4:
  Fix tests
  Remove content-type check on toArray methods
2020-10-14 09:58:47 +02:00
Thomas P
047ce05f6b Fix tests typo 2020-10-14 09:37:02 +02:00
Nyholm
55ad70225a
[Lock] Reset Key lifetime time before we acquire it 2020-10-14 09:15:31 +02:00
Nyholm
efef41faa1
[CI] Silence errors when remove file/dir on test tearDown() 2020-10-14 09:00:24 +02:00
Nyholm
de412bf24b
Reset lifetime on acquireRead() 2020-10-14 08:54:02 +02:00
Jérémy Derussé
91122492e8
Fix tests 2020-10-13 22:48:16 +02:00
Wouter de Jong
5093e0df06 [Security] Added check_post_only to the login link authenticator 2020-10-13 19:07:29 +02:00
Jérémy Derussé
1c8fff18f9
Remove content-type check on toArray methods 2020-10-13 17:34:30 +02:00
Nicolas Grekas
01b064d97a Merge branch '5.1' into 5.x
* 5.1:
  Fix branch-version
2020-10-13 15:22:54 +02:00
Nicolas Grekas
1a0ea4d2f7 Merge branch '4.4' into 5.1
* 4.4:
  Fix branch-version
2020-10-13 15:21:37 +02:00
Nicolas Grekas
58f803f356 Merge branch '3.4' into 4.4
* 3.4:
  Fix branch-version
2020-10-13 15:20:53 +02:00
Nicolas Grekas
44a7e3e920 Fix branch-version 2020-10-13 15:20:16 +02:00
Nicolas Grekas
59db41386f Merge branch '4.4' into 5.1
* 4.4:
  Fix merge
2020-10-13 14:46:35 +02:00
Nicolas Grekas
7f0015ee35 Merge branch '5.1' into 5.x
* 5.1:
  Remove "version" from composer.json files, use "branch-version" instead
  [String] fix "is too large" ValueError on PHP 8
2020-10-13 14:43:06 +02:00
Nicolas Grekas
e95f87d1c8 bug #38546 [String] fix "is too large" ValueError on PHP 8 (nicolas-grekas)
This PR was merged into the 5.1 branch.

Discussion
----------

[String] fix "is too large" ValueError on PHP 8

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

Commits
-------

15c22c69e4 [String] fix "is too large" ValueError on PHP 8
2020-10-13 14:36:28 +02:00
Nicolas Grekas
23ab908213 Merge branch '4.4' into 5.1
* 4.4:
  Remove "version" from composer.json files, use "branch-version" instead
2020-10-13 14:35:38 +02:00
Nicolas Grekas
e953dd3e0d Merge branch '3.4' into 4.4
* 3.4:
  Remove "version" from composer.json files, use "branch-version" instead
2020-10-13 14:30:56 +02:00
Nicolas Grekas
56a7571bab minor #38460 Remove "version" from composer.json files, use "branch-version" instead (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Remove "version" from composer.json files, use "branch-version" instead

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

Waiting for confirmation from @Seldaek or @naderman

Commits
-------

f9ed6940fd Remove "version" from composer.json files, use "branch-version" instead
2020-10-13 14:24:32 +02:00
Nicolas Grekas
f9ed6940fd Remove "version" from composer.json files, use "branch-version" instead 2020-10-13 14:21:16 +02:00
Nicolas Grekas
15c22c69e4 [String] fix "is too large" ValueError on PHP 8 2020-10-13 14:06:13 +02:00
Nicolas Grekas
5baa123aac Merge branch '5.1' into 5.x
* 5.1:
  [DI] fix dumping env vars
  [HttpClient] skip executing the multi handle when it's freed already
  [HttpClient] fix using freed curl resource at destruct time
  [HttpClient] shutdown verbose output from curl at destruction
  fix warning for preloading TranslatorTrait class
  [Typography] Remove unneeded description comments
2020-10-13 13:14:51 +02:00
Nicolas Grekas
63288a6e2e Merge branch '4.4' into 5.1
* 4.4:
  [DI] fix dumping env vars
  [HttpClient] skip executing the multi handle when it's freed already
  [HttpClient] fix using freed curl resource at destruct time
  [HttpClient] shutdown verbose output from curl at destruction
  fix warning for preloading TranslatorTrait class
  [Typography] Remove unneeded description comments
2020-10-13 13:14:18 +02:00
Nicolas Grekas
d79912d3d2 Merge branch '3.4' into 4.4
* 3.4:
  [Typography] Remove unneeded description comments
2020-10-13 13:09:48 +02:00
Nicolas Grekas
746a8d1a09 [DI] fix dumping env vars 2020-10-13 11:53:00 +02:00
Nicolas Grekas
f52f090230 feature #38532 [HttpClient] simplify retry mechanism around RetryStrategyInterface (nicolas-grekas)
This PR was merged into the 5.x branch.

Discussion
----------

[HttpClient] simplify retry mechanism around RetryStrategyInterface

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

Replaces #38466

I feel like the mechanism behind RetryableHttpClient is too bloated for no pragmatic reasons.

I propose to merge RetryDeciderInterface and RetryBackoffInterface into one single RetryStrategyInterface.

Having two separate interfaces supports no real-world use case. The only implementations we provide are trivial, and they can be reused by extending the provided GenericRetryStrategy implementation if one really doesn't want to duplicate that.

The methods are also simplified by accepting an AsyncContext as argument. This makes the signatures shorter and allows accessing the "info" of the request (allowing to decide based on the IP of the host, etc).

/cc @jderusse

Commits
-------

544c3e8678 [HttpClient] simplify retry mechanism around RetryStrategyInterface
2020-10-13 10:09:30 +02:00
Nicolas Grekas
a580688ee5 [HttpClient] skip executing the multi handle when it's freed already 2020-10-13 10:06:18 +02:00
Nicolas Grekas
4f8384829c [HttpClient] fix using freed curl resource at destruct time 2020-10-13 09:54:33 +02:00
Nicolas Grekas
a279d22d25 [HttpClient] shutdown verbose output from curl at destruction 2020-10-13 09:44:15 +02:00
Nicolas Grekas
544c3e8678 [HttpClient] simplify retry mechanism around RetryStrategyInterface 2020-10-13 09:28:31 +02:00
Nicolas Grekas
9c3a9282f1 Fix CS 2020-10-12 21:59:40 +02:00
Fabien Potencier
ef1253b7c4 Fix tests 2020-10-12 20:55:37 +02:00
Fabien Potencier
a319090109 feature #38525 [Serializer] Enabled mapping configuration via attributes (derrabus)
This PR was merged into the 5.x branch.

Discussion
----------

[Serializer] Enabled mapping configuration via attributes

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

Let's use attributes for the serializer mapping configuration!

```php
class MyEntity
{
    #[Groups(['list', 'detail])]
    #[SerializedName('some-property')]
    public $someProperty;

    #[Ignore]
    public string $secret;
}
```

Commits
-------

cfb9986203 [Serializer] Enabled mapping configuration via attributes.
2020-10-12 20:19:00 +02:00
Fabien Potencier
1d9c7a9376 Fix composer.json 2020-10-12 20:08:13 +02:00
Karoly Gossler
b9b20d782b Added Discord bridge notifier embeds and test 2020-10-12 20:07:15 +02:00
Mathieu Piot
14790d8140 Add Discord bridge notifier 2020-10-12 20:07:15 +02:00
Fabien Potencier
88b158d989 bug #38477 [Form] fix ViolationMapper was always generating a localized label for each FormType (romaricdrigon)
This PR was merged into the 5.x branch.

Discussion
----------

[Form] fix ViolationMapper was always generating a localized label for each FormType

| Q             | A
| ------------- | ---
| Branch?       | 5.x (fix new behavior from 5.2)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | /
| License       | MIT
| Doc PR        | /

Follow-up of #38435, with branch changed

**Explanation of the issue**

In Symfony 5.2, the `{{ label }}` placeholder can be used in constraint messages (-> introduced in commit 0d9f44235c)

However, the way it was coded is introducing a small side effect: now, every time there is validation error, `ViolationMapper` will ask the Form Type its `label`, and if not `false`, it will try to translate it.

**Why it is important/why it causes a BC break**

Since by default `AbstractType` does not have any `label`, it also introduces a minor BC break.
I will explain it with an example: in a project I work on, we check we don't have any missing translation. Sometimes we have violation errors bound to form ; then current code will get Form `label`, which in `null` in form type classes (which is quite usual I believe), so it will generate one, and pass that one to translator. And we see a lot on erroneous missing translations.

**Proposed fix**

This fix moves all this logic into a `if`, so `ViolationMapper` call the translator component only if `{{ label }}` placeholder is used in constraint error message.
On top of fixing BC, it has the benefit of lowering the performance cost for every violation when the feature is not used.

I added a test, as I believe the behavior should be guaranteed from now on.

Commits
-------

aee5571a71 [Form] fix ViolationMapper was always generating a localized label for each FormType
2020-10-12 20:01:17 +02:00
Fabien Potencier
19c550db7b bug #38529 [Mailer] Fix mailjet image embedding (Sandldan)
This PR was merged into the 5.x branch.

Discussion
----------

[Mailer] Fix mailjet image embedding

Filename is not enough to embed the image through cid, ContentID field
has to be set with the cid identifier used in the HTMLPart

| Q             | A
| ------------- | ---
| Branch?       | 5.1 <!-- 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       | none <!-- prefix each issue number with "Fix #", no need to create an issue if none exist, explain below instead -->
| License       | MIT
| Doc PR        | not needed <!-- 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.
-->

Hello!

While switching from `Mandrill` to `Mailjet` I noticed that embedding images was not working properly, the `Content-ID` mime is not set properly without setting the `ContentID` key. With this change things will work as described in the [symfony documentation](https://symfony.com/doc/current/mailer.html#embedding-images)

[Mailjet reference](https://dev.mailjet.com/email/guides/send-api-v31/#send-with-attached-files)

Commits
-------

7ab772eeea [Mailer] Fix mailjet image embedding
2020-10-12 19:58:26 +02:00
Nicolas Grekas
444626bbfc Merge branch '5.1' into 5.x
* 5.1:
  [HttpClient] fix reading the body after a ClientException
  [HttpClient] fix tests and merge
2020-10-12 18:54:56 +02:00