Commit Graph

30410 Commits

Author SHA1 Message Date
Fabien Potencier
9613f84df5 minor #35589 [Mailer] Fix MandrillHttpTransport::getRecipients()'s call (chalasr)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Mailer] Fix MandrillHttpTransport::getRecipients()'s call

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

Should make the CI green.

Commits
-------

f88d1bb328 [Mailer] Fix MandrillHttpTransport::getRecipients()'s call
2020-02-04 11:37:49 +01:00
Fabien Potencier
cf9f5a071c feature #32039 [Cache] Add couchbase cache adapter (ajcerezo)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Cache] Add couchbase cache adapter

| Q             | A
| ------------- | ---
| Branch?       | 4.4 for features
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/32038
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/11748

Add new cache adapter to be able using Couchbase as cache system.

Commits
-------

1ae7dd5ec7 [Cache] Add couchbase cache adapter
2020-02-04 11:36:41 +01:00
Antonio José Cerezo Aranda
1ae7dd5ec7 [Cache] Add couchbase cache adapter 2020-02-04 11:32:31 +01:00
Nicolas Grekas
1e2b88f43e Merge branch '5.0'
* 5.0:
  cs fix
  Escape variable in Exception Template
2020-02-04 11:31:29 +01:00
Nicolas Grekas
244c347178 Merge branch '4.4' into 5.0
* 4.4:
  Escape variable in Exception Template
2020-02-04 11:31:13 +01:00
Robin Chalas
f88d1bb328 [Mailer] Fix MandrillHttpTransport::getRecipients()'s call 2020-02-04 11:29:55 +01:00
Fabien Potencier
eaec5d67ae bug #35588 [ErrorHandler] Escape variable in Exception template (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Escape variable in Exception template

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

Commits
-------

629d21b800 Escape variable in Exception Template
2020-02-04 11:28:16 +01:00
Fabien Potencier
61774e6c07 Fix CS 2020-02-04 11:11:53 +01:00
Fabien Potencier
a416a66416 Fix bad merge 2020-02-04 11:11:20 +01:00
Fabien Potencier
a841a3e52c Fix CS 2020-02-04 11:10:55 +01:00
Fabien Potencier
2f5047ea3d Merge branch '5.0'
* 5.0:
  Fix bad merge
2020-02-04 11:03:49 +01:00
Fabien Potencier
a196d0571d Fix bad merge 2020-02-04 11:03:41 +01:00
Jérémy Derussé
629d21b800
Escape variable in Exception Template 2020-02-04 10:53:50 +01:00
Fabien Potencier
d5bbdca755 Merge branch '5.0'
* 5.0:
  Fix CS
  Fix CS
  Fix CS
2020-02-04 10:50:54 +01:00
Fabien Potencier
f64f59a9c0 Fix CS 2020-02-04 10:47:34 +01:00
Fabien Potencier
bb4e394949 Merge branch '4.4' into 5.0
* 4.4:
  Fix CS
  Fix CS
2020-02-04 10:41:09 +01:00
Fabien Potencier
de8348a033 Fix CS 2020-02-04 10:32:40 +01:00
Fabien Potencier
3ee39e7468 Merge branch '3.4' into 4.4
* 3.4:
  Fix CS
2020-02-04 10:01:01 +01:00
Jon Dufresne
ef1206964e [Filesystem] Add $suffix argument to tempnam()
Fixes #33002
2020-02-04 09:09:47 +01:00
Fabien Potencier
a3e49f30c7 Fix CS 2020-02-04 09:04:52 +01:00
Nicolas Grekas
8e22719130 feature #35347 [VarDumper] Add a RdKafka caster (romainneutron)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[VarDumper] Add a RdKafka caster

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

Hello,

This is the very beginning of this new feature.
First, I'd like to know if there's a no-go for this feature so I won't waste my time.
Then, if you are a RdKafka expert, I'd take your comments with much pleasure sincer I'm a noob in this technology (and that's why I'm implementing this caster 🤓)
Tests need to be added once the implementation will be a bit more complete.

Commits
-------

6cd1235539 Add a RdKafka caster to Var-Dumper
2020-02-04 09:00:51 +01:00
Romain Neutron
6cd1235539
Add a RdKafka caster to Var-Dumper 2020-02-04 08:53:38 +01:00
Fabien Potencier
c6d0a2a10e Merge branch '5.0'
* 5.0:
  Add missing use statements
  [Translation] Add missing use statement
  [Translation] Add missing use statement
  [Config][XmlReferenceDumper] Prevent potential \TypeError
  [Mailer] Fix broken mandrill http send for recipients with names
  [Translation] prefer intl domain when adding messages to catalogue
  Fix CS
  Fix CS
  Fail on empty password verification (without warning on any implementation)
  [Translation][Debug] Add installation and minimal example to README
  [Validator] try to call __get method if property is uninitialized
  Show both missing packages in the same error message
  Fix handling of empty_data's \Closure value in Date/Time form types
2020-02-04 08:41:44 +01:00
Fabien Potencier
85f793bec6 Merge branch '4.4' into 5.0
* 4.4:
  Add missing use statements
  [Translation] Add missing use statement
  [Translation] Add missing use statement
  [Config][XmlReferenceDumper] Prevent potential \TypeError
  [Mailer] Fix broken mandrill http send for recipients with names
  [Translation] prefer intl domain when adding messages to catalogue
  Fix CS
  Fix CS
  Fail on empty password verification (without warning on any implementation)
  [Translation][Debug] Add installation and minimal example to README
  [Validator] try to call __get method if property is uninitialized
  Show both missing packages in the same error message
  Fix handling of empty_data's \Closure value in Date/Time form types
2020-02-04 08:41:34 +01:00
Fabien Potencier
cb16fe7432 Merge branch '3.4' into 4.4
* 3.4:
  [Translation] Add missing use statement
  [Translation][Debug] Add installation and minimal example to README
  [Validator] try to call __get method if property is uninitialized
  Fix handling of empty_data's \Closure value in Date/Time form types
2020-02-04 08:40:16 +01:00
Fabien Potencier
cd27b9d06f Add missing use statements 2020-02-04 08:35:15 +01:00
Fabien Potencier
ce29631cd8 [Translation] Add missing use statement 2020-02-04 08:22:30 +01:00
Fabien Potencier
00baa290e8 [Translation] Add missing use statement 2020-02-04 08:15:38 +01:00
Nicolas PHILIPPE
bc4f7d701f Messenger: validate options for AMQP and Redis Connections 2020-02-04 06:52:48 +01:00
Fabien Potencier
28eedb8cef bug #34123 [Form] Fix handling of empty_data's \Closure value in Date/Time form types (yceruto)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Fix handling of empty_data's \Closure value in Date/Time form types

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

Basically this would solve the posibility to pass a `\Closure` to the `empty_data` option for Date/Time form types.

> https://symfony.com/doc/current/reference/forms/types/form.html#empty-data
> If a form is compound, you can set empty_data as an array, object or **closure**. See the [How to Configure empty Data](https://symfony.com/doc/current/form/use_empty_data.html) for a Form Class article for more details about these options.

Also related to https://github.com/symfony/symfony/pull/29182

Commits
-------

4939f0e323 Fix handling of empty_data's \Closure value in Date/Time form types
2020-02-03 18:31:42 +01:00
Thomas Calvet
7bfc27e7cf [Form] Add "is empty callback" to form config 2020-02-03 18:27:57 +01:00
Nicolas Grekas
4bb19c62e2 [String] add LazyString to provide generic stringable objects 2020-02-03 18:27:47 +01:00
Thomas Calvet
89062b9ba0 [Yaml] Deprecate using the object and const tag without a value 2020-02-03 18:16:03 +01:00
Thomas Calvet
e8ba15ed27 [Config][XmlReferenceDumper] Prevent potential \TypeError 2020-02-03 18:10:04 +01:00
Vilius Grigaliūnas
fbfe1ed423 [Mailer] Fix broken mandrill http send for recipients with names 2020-02-03 18:00:21 +01:00
Fabien Potencier
7dc5d64b37 bug #35430 [Translation] prefer intl domain when adding messages to catalogue (Guite)
This PR was squashed before being merged into the 4.4 branch (closes #35430).

Discussion
----------

[Translation] prefer intl domain when adding messages to catalogue

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

This PR ensures that when adding translations to a catalogue using the `add(array $messages, string $domain = 'messages')` method internally the intl icu domain is checked first.

Otherwise it could happen that existing messages in e.g. `messages+intl-icu` are not updated but the same keys are added to `messages`.

This is a follow-up of #35370, now targeting the `4.4` branch.

Commits
-------

b72b7d3413 [Translation] prefer intl domain when adding messages to catalogue
2020-02-03 17:51:48 +01:00
Guite
b72b7d3413 [Translation] prefer intl domain when adding messages to catalogue 2020-02-03 17:51:41 +01:00
Nicolas Grekas
74ac5421b2 feature #35566 [HttpClient] adding NoPrivateNetworkHttpClient decorator (hallboav)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] adding NoPrivateNetworkHttpClient decorator

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

The purpose of NoPrivateNetworkHttpClient is for block requests to private networks by default or block one or more subnetwork if specified. NoPrivateNetworkHttpClient accepts two arguments, first one is a HttpClientInterface instance and subnetworks as a second argument.
Second argument $subnets can be null for blocking requests to private networks, or string to specify a single subnet of array for a set of subnets.

```php
<?php

use Symfony\Component\HttpClient\HttpClient;
use Symfony\Component\HttpClient\NoPrivateNetworkHttpClient;

$client = new NoPrivateNetworkHttpClient(HttpClient::create());
// You can request public networks normally using the code above
$client->request('GET', 'https://symfony.com/');

// Requests to private neworks will be blocked because second argument ($subnets) is null
$client->request('GET', 'http://localhost/');

// If we request from 104.26.14.0 to 104.26.15.255 we'll get an exception, since I'm specifying a subnetwork
$client = new NoPrivateNetworkHttpClient(HttpClient::create(), ['104.26.14.0/23']);

// Let's suppose that our DNS server resolves symfony.com to 104.26.14.6, then the following request will be blocked
$client->request('GET', 'https://symfony.com/');
```

Commits
-------

63fec805f4 [HttpClient] adding NoPrivateNetworkHttpClient decorator
2020-02-03 17:39:39 +01:00
Hallison Boaventura
63fec805f4 [HttpClient] adding NoPrivateNetworkHttpClient decorator 2020-02-03 17:39:30 +01:00
Fabien Potencier
59f0980fd9 feature #35560 [HttpKernel] allow using public aliases to reference controllers (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpKernel] allow using public aliases to reference controllers

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

This PR allows referencing a controller with an alias when needed. The use case I'm targetting is using `@Route` annotations on methods of the `App\Kernel` and have them work. This PR allows it.

Sidekick of https://github.com/symfony/recipes/pull/735

Commits
-------

94bc1f7d3b [HttpKernel] allow using public aliases to reference controllers
2020-02-03 17:34:59 +01:00
Fabien Potencier
327ee1a956 Fix CS 2020-02-03 17:31:58 +01:00
Stefan Kruppa
4d920f04d0 Fail on empty password verification (without warning on any implementation) 2020-02-03 17:30:37 +01:00
Nicolas Grekas
ff4892b778 bug #35573 [HttpClient] make response stream functionality consistent (kbond)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] make response stream functionality consistent

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

There are three ways of creating a stream from a response:

1. Calling `$response->toStream()` (if the response supports this)
2. Calling `StreamWrapper::createResource($response)`
3. Calling `StreamWrapper::createResource($response, $httpClient)` (note the second argument)

Currently, the 3rd method creates a stream that is not rewindable (the other two are). The first commit adds tests showing the inconsistencies (1 test fails). The second commit is a fix to make the 3 ways consistent.

See https://twitter.com/nicolasgrekas/status/1224047079422599168 for reference.

Commits
-------

64f9111686 [HttpClient] make response stream functionality consistent
2020-02-03 16:32:52 +01:00
Kevin Bond
64f9111686 [HttpClient] make response stream functionality consistent 2020-02-03 16:32:43 +01:00
Fabien Potencier
5b1a9cb51a minor #35552 [Translation][Debug] Add installation and minimal example to README (wouterj)
This PR was squashed before being merged into the 3.4 branch (closes #35552).

Discussion
----------

[Translation][Debug] Add installation and minimal example to README

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

At SymfonyCon, we decided to test out removing some component documentation from the official docs. These were duplicating quite some information of the main guides and were confusing people that used the components in the framework.

I think it's good to reintroduced the composer installation command and a very minimal example in the README's of the component. This doesn't require maintenance and can kickstart people to gain knowledge on how to use the component.

For now, we've (re)moved the Debug and Translation component docs, so that's why I've only modified those README's.

cc @symfony/team-symfony-docs

Commits
-------

b52b7b9fd6 [Translation][Debug] Add installation and minimal example to README
2020-02-03 16:10:46 +01:00
Wouter de Jong
b52b7b9fd6 [Translation][Debug] Add installation and minimal example to README 2020-02-03 16:10:40 +01:00
Robin Chalas
12ca64649b Merge branch '5.0'
* 5.0:
  [Phpunit] Fix running skipped tests expecting only deprecations
  Fix merge
  [Config] dont catch instances of Error
  [HttpClient] fix HttpClientDataCollector when handling canceled responses
  [FrameworkBundle] remove mention of the old Controller class
  [DependencyInjection] #35505 Fix typo in test name
  [Yaml][Inline] Fail properly on empty object tag and empty const tag
  Check non-null type for numeric type
  Check value isset to avoid PHP notice
  bug symfony#28179 [DomCrawler] Skip disabled fields processing in Form
2020-02-03 14:51:48 +01:00
Robin Chalas
5da1bcfb5c Merge branch '4.4' into 5.0
* 4.4:
  [Phpunit] Fix running skipped tests expecting only deprecations
  Fix merge
  [Config] dont catch instances of Error
  [HttpClient] fix HttpClientDataCollector when handling canceled responses
  [DependencyInjection] #35505 Fix typo in test name
  [Yaml][Inline] Fail properly on empty object tag and empty const tag
  Check non-null type for numeric type
  Check value isset to avoid PHP notice
  bug symfony#28179 [DomCrawler] Skip disabled fields processing in Form
2020-02-03 14:51:17 +01:00
Fabien Potencier
ef4dcdb144 bug #35546 [Validator] check for __get method existence if property is uninitialized (alekitto)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] check for __get method existence if property is uninitialized

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

Resolve bug #35544.

On PHP 7.4, check if object implements `__get` magic method if property is reported as uninitialized before returning null.

Commits
-------

427bc3aa18 [Validator] try to call __get method if property is uninitialized
2020-02-03 12:20:41 +01:00
Nicolas Grekas
ed7bb826fb Merge branch '3.4' into 4.4
* 3.4:
  [Phpunit] Fix running skipped tests expecting only deprecations
  [DependencyInjection] #35505 Fix typo in test name
  [Yaml][Inline] Fail properly on empty object tag and empty const tag
  Check non-null type for numeric type
  Check value isset to avoid PHP notice
  bug symfony#28179 [DomCrawler] Skip disabled fields processing in Form
2020-02-03 11:46:43 +01:00
Alessandro Chitolina
427bc3aa18
[Validator] try to call __get method if property is uninitialized 2020-02-03 11:35:42 +01:00
Nicolas Grekas
af46fd6961 minor #35507 [DependencyInjection] Fix typo in test name (signor-pedro)
This PR was merged into the 3.4 branch.

Discussion
----------

[DependencyInjection] Fix typo in test name

Rename testThrowsExceptionWhenAddServiceOnACompiledContainer to testNoExceptionWhenAddServiceOnACompiledContainer.

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes (technically)
| New feature?  | no
| Deprecations? | no
| Tickets       | #35505
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Commits
-------

9cbfad5853 [DependencyInjection] #35505 Fix typo in test name
2020-02-03 11:21:26 +01:00
Nicolas Grekas
f758eca8b7 bug #35332 [Yaml][Inline] Fail properly on empty object tag and empty const tag (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml][Inline] Fail properly on empty object tag and empty const tag

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

Rework of https://github.com/symfony/symfony/pull/35208 to not end up in `parseScalar` with an empty string or a boolean (and thus, avoid unfriendly error such as `Trying to access array offset on value of type bool`).

Ping @xabbuh

Commits
-------

bdf02c0a7e [Yaml][Inline] Fail properly on empty object tag and empty const tag
2020-02-03 11:17:31 +01:00
Fabien Potencier
6c96706381 bug #34059 [DomCrawler] Skip disabled fields processing in Form (sbogx)
This PR was merged into the 3.4 branch.

Discussion
----------

[DomCrawler] Skip disabled fields processing in Form

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

Commits
-------

c73b042044 bug symfony#28179 [DomCrawler] Skip disabled fields processing in Form
2020-02-03 11:01:18 +01:00
Fabien Potencier
a536342a96 bug #34114 [Console] SymonfyStyle - Check value isset to avoid PHP notice (leevigraham)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] SymonfyStyle - Check value isset to avoid PHP notice

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

This PR addresses the issue when a default value is not a valid choice. Currently this would throw a notice which outputs to the console.

This fix is a similar implementation to the `QuestionHelper`: https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/Console/Helper/QuestionHelper.php#L63

Example console command and output can be found in the issue: #34093

Commits
-------

c9072c70ef Check value isset to avoid PHP notice
2020-02-03 10:58:05 +01:00
Nicolas Grekas
a9b5fd23ef Merge branch '3.4' into 4.4
* 3.4:
  [Config] dont catch instances of Error
2020-02-03 09:22:04 +01:00
Nicolas Grekas
e94c3fb87d [Config] dont catch instances of Error 2020-02-03 09:11:57 +01:00
Nicolas Grekas
5da9cf315f minor #35561 [HttpClient] dont display any content when none has been collected (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] dont display any content when none has been collected

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

Commits
-------

36536c94d2 [HttpClient] dont display any content when none has been collected
2020-02-03 09:08:19 +01:00
Nicolas Grekas
303f9e5be5 [HttpClient] fix HttpClientDataCollector when handling canceled responses 2020-02-02 18:41:51 +01:00
Nicolas Grekas
36536c94d2 [HttpClient] dont display any content when none has been collected 2020-02-02 18:36:34 +01:00
Nicolas Grekas
94bc1f7d3b [HttpKernel] allow using public aliases to reference controllers 2020-02-02 17:43:53 +01:00
Nicolas Grekas
6620f8afd9 [FrameworkBundle] remove mention of the old Controller class 2020-02-02 17:28:58 +01:00
Nicolas Grekas
00b6846978 feature #34871 [HttpClient] Allow pass array of callable to the mocking http client (Koc)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] Allow pass array of callable to the mocking http client

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

For the now MockHttpClient allows pass closure as response factory. It useful for tests to perform assertions that expected request was sent. But If we are sending multiple sequental requests then it became a little bit tricky to perform assertions:

```php
<?php

$requestIndex = 0;
$expectedRequest = function ($method, $url, $options) use (&$requestIndex) {
    switch (++$requestIndex) {
        case 1:
            $this->assertSame('GET', $method);
            $this->assertSame('https://example.com/api/v1/customer', $url);

            return new MockResponse(CustomerFixture::CUSTOMER_RESPONSE);

        case 2:
            $this->assertSame('POST', $method);
            $this->assertSame('https://example.com/api/v1/customer/1/products', $url);
            $this->assertJsonStringEqualsJsonFile(CustomerFixture::CUSTOMER_PRODUCT_PAYLOAD, $options['json']);

            return new MockResponse();

        default:
            throw new \InvalidArgumentException('Too much requests');
    }
};

$client = new MockHttpClient($expectedRequest);
static::$container->set('http_client.example', $client);

$commandTester->execute(['--since' => '2019-01-01 00:05:00', '--until' => '2019-01-01 00:35:00']);

$this->assertSame(2, $requestIndex, 'All expected requests was sent.');
```

This PR introduces possibility to define multiple callable response factories and `getSentRequestsCount` method to make sure that each factory was called:

```php
<?php

$expectedRequests = [
    function ($method, $url, $options) {
        $this->assertSame('GET', $method);
        $this->assertSame('https://example.com/api/v1/customer', $url);

        return new MockResponse(CustomerFixture::CUSTOMER_RESPONSE);
    },
    function ($method, $url, $options) {
        $this->assertSame('POST', $method);
        $this->assertSame('https://example.com/api/v1/customer/1/products', $url);
        $this->assertJsonStringEqualsJsonFile(CustomerFixture::CUSTOMER_PRODUCT_PAYLOAD, $options['json']);

        return new MockResponse();
    },
];

$client = new MockHttpClient($expectedRequest);
static::$container->set('http_client.example', $client);

$commandTester->execute(['--since' => '2019-01-01 00:05:00', '--until' => '2019-01-01 00:35:00']);

$this->assertSame(2, $client->getSentRequestsCount(), 'All expected requests was sent.');
```

Also it adds a lot of tests.

Commits
-------

a36797d60e Allow pass array of callable to the mocking http client
2020-02-02 12:07:05 +01:00
Grégoire Pineau
a1e4222ee8 feature #30704 [PropertyInfo] Add accessor and mutator extractor interface and implementation on reflection (joelwurtz, Korbeil)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[PropertyInfo] Add accessor and mutator extractor interface and implementation on reflection

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #30248, partially: #22190, #18016, #5013, #9336, #5219,
| License       | MIT
| Doc PR        | TODO

This PR brings accessor / mutator extraction on the PropertyInfo component,

There is no link to existing code, as IMO it should be in another PR as this will add a dependency on property access to the property info component and not sure this is something wanted (although, it will reduce a lot of code base on the property access component as a lot of code seems to be duplicated)

Code is extracted from #30248 also there is some new features (that can be removed if not wanted)

 * Allow extracting private accessor / mutator (will do a new PR that improve private extraction on reflection latter)
 * Allow extracting static accessor / mutators
 * Allow extracting constructor mutators

Current implementation try to be as close as the PropertyAccess implementation and i did not reuse some methods already available in the class as there is some differences in implementation, but maybe it will be a good time to make this consistent (Looking forward to your input) ?

Things that should be done in a new PR:

 * Linking property info to property access to remove a lot of duplicate code
 * Add a new system that allow adding Virtual Property based on this extractor

Commits
-------

0a92dab753 Rebase, fix tests, review & update CHANGELOG
fc250863a8 [PropertyInfo] Add accessor and mutator extractor interface and implementation on reflection
2020-01-31 15:04:25 +01:00
Fabien Potencier
5a96cf1df8 bumped Symfony version to 5.0.5 2020-01-31 13:54:52 +01:00
Fabien Potencier
3c21b0270c updated VERSION for 5.0.4 2020-01-31 13:49:38 +01:00
Fabien Potencier
e3561cc2a3 bumped Symfony version to 4.4.5 2020-01-31 13:48:55 +01:00
Fabien Potencier
eac640a21a updated VERSION for 4.4.4 2020-01-31 13:45:06 +01:00
Nicolas Grekas
44e86a3f96 Merge branch '5.0'
* 5.0:
  [DI] fix CheckTypeDeclarationsPass
2020-01-31 10:49:48 +01:00
Nicolas Grekas
ecf3a53069 Merge branch '4.4' into 5.0
* 4.4:
  [DI] fix CheckTypeDeclarationsPass
2020-01-31 10:49:43 +01:00
Nicolas Grekas
103c460e4c [DI] fix CheckTypeDeclarationsPass 2020-01-31 10:49:27 +01:00
Nicolas Grekas
c3ad3eef65 Merge branch '5.0'
* 5.0:
  [Validator] fix access to uninitialized property when getting value
  [HttpClient] Fix regex bearer
  [Translator] Default value for 'sort' option in translation:update should be 'asc'
  [HttpKernel] Fix stale-if-error behavior, add tests
  [Intl] Provide more locale translations
  [Mailer] Fix STARTTLS support for Postmark and Mandrill
  [Messenger] Check for all serialization exceptions during message dec…
  [Messenger] Fix bug when using single route with XML config
  Fix exception message in Doctrine Messenger
  [DI]  CheckTypeDeclarationsPass now checks if value is type of parameter type
  [SecurityBundle] fix security.authentication.provider.ldap_bind arguments
  Improved error message when no supported user provider is found
  Mysqli doesn't support the named parameters used by PdoAdapter
  Added debug argument to decide if debug page should be shown or not
  Mysqli doesn't support the named parameters used by PdoStore
  Properly handle phpunit arguments for configuration file
  [Mailer] add tests for http transports
2020-01-31 10:20:53 +01:00
Nicolas Grekas
b0fc56477a Merge branch '4.4' into 5.0
* 4.4:
  [Validator] fix access to uninitialized property when getting value
  [HttpClient] Fix regex bearer
  [Translator] Default value for 'sort' option in translation:update should be 'asc'
  [HttpKernel] Fix stale-if-error behavior, add tests
  [Intl] Provide more locale translations
  [Mailer] Fix STARTTLS support for Postmark and Mandrill
  [Messenger] Check for all serialization exceptions during message dec…
  [Messenger] Fix bug when using single route with XML config
  Fix exception message in Doctrine Messenger
  [DI]  CheckTypeDeclarationsPass now checks if value is type of parameter type
  [SecurityBundle] fix security.authentication.provider.ldap_bind arguments
  Improved error message when no supported user provider is found
  Mysqli doesn't support the named parameters used by PdoAdapter
  Added debug argument to decide if debug page should be shown or not
  Mysqli doesn't support the named parameters used by PdoStore
  Properly handle phpunit arguments for configuration file
  [Mailer] add tests for http transports
2020-01-31 10:13:47 +01:00
Nicolas Grekas
f24320dd10 Merge branch '4.3' into 4.4
* 4.3:
  [Validator] fix access to uninitialized property when getting value
  [HttpClient] Fix regex bearer
  [HttpKernel] Fix stale-if-error behavior, add tests
  Improved error message when no supported user provider is found
  Properly handle phpunit arguments for configuration file
2020-01-31 10:11:17 +01:00
Nicolas Grekas
0f13d5a5fc Merge branch '3.4' into 4.3
* 3.4:
  [Validator] fix access to uninitialized property when getting value
  [HttpKernel] Fix stale-if-error behavior, add tests
  Improved error message when no supported user provider is found
2020-01-31 10:10:37 +01:00
Ivan Grigoriev
1edecf77c1 [Validator] fix access to uninitialized property when getting value 2020-01-31 09:56:24 +01:00
Fabien Potencier
09bdaf5553 feature #35525 [Mailer] Randomize the first transport used by the RoundRobin transport (fabpot)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Mailer] Randomize the first transport used by the RoundRobin transport

| 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       | Fix #33723 <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

When not using Messenger, and so sending only one message, the RoundRobin class does not work as the first transport is always used. This PR randomizes the first transport used by the class to mitigate that problem.

Commits
-------

6ebe83c14e [Mailer] Randomize the first transport used by the RoundRobin transport
2020-01-31 09:29:43 +01:00
maxime.perrimond
d6f34a5df6 [Validator] Add alpha3 option to country constraint 2020-01-31 09:29:00 +01:00
Konstantin Myakshin
a36797d60e Allow pass array of callable to the mocking http client 2020-01-30 21:18:32 +02:00
noniagriconomie
cd0db78ab5 [HttpClient] Fix regex bearer 2020-01-30 17:47:09 +01:00
Fabien Potencier
81abb4e156 feature #35050 [Mailer] added tag/metadata support (kbond)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Mailer] added tag/metadata support

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

This is an alternative to #34766 for adding tag and metadata support in a more generalized way.

Most transports allow for open/click tracking headers - maybe this should be handled in a similar way?

I added implementations for the Postmark (SMTP and API) and Mailgun (SMTP and API) transports. I can add others and tests/docs if this is acceptable.

### Example:

```php
use Symfony\Component\Mailer\Header\MetadataHeader;
use Symfony\Component\Mailer\Header\TagHeader;

$email->getHeaders()->add(new TagHeader('password-reset'));
$email->getHeaders()->add(new MetadataHeader('Color', 'blue'));
$email->getHeaders()->add(new MetadataHeader('Client-ID', '12345'));
```

The Postmark/Mailgun providers will parse these into their own headers/payload. For transports that don't support tags/metadata, these are just added as custom headers:

```
X-Tag: password-reset
X-Metadata-Color: blue
X-Metadata-Client-ID: 12345
```

Commits
-------

f2cdafcae0 [Mailer] added tag/metadata support
2020-01-30 17:06:55 +01:00
Fabien Potencier
e50db1f93f bug #35305 [HttpKernel] Fix stale-if-error behavior, add tests (mpdude)
This PR was squashed before being merged into the 3.4 branch (closes #35305).

Discussion
----------

[HttpKernel] Fix stale-if-error behavior, add tests

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

This PR adds the first tests for `stale-if-error` logic in `HttpCache`.

It also fixes an observation from #24248: For responses that have been cached as `public` with an `ETag` but without a lifetime, in case of an error the stale response will be served forever (= as long as the error persists), even beyond the configured `stale-if-error` grace period.

Furthermore, it tries to improve compliance with RFC 7234: Stale responses must not be sent (under no condition) if one of
* `no-cache`
* `must-revalidate`
* `proxy-revalidate` or
* `s-maxage` (sic) is present.

This can be found in the corresponding chapters of Section 5.2.2 for these directives, but is also summarized in [Section 4.2.4](https://tools.ietf.org/html/rfc7234#section-4.2.4) as

 > A cache MUST NOT generate a stale response if it is prohibited by an explicit in-protocol directive (e.g., by a "no-store" or "no-cache" cache directive, a "must-revalidate" cache-response-directive, or an applicable "s-maxage" or "proxy-revalidate" cache-response-directive; see Section 5.2.2).

Because disabling of `stale-if-error` for `s-maxage` responses probably has a big impact on the usefulness of that feature in practice, it has to be enabled explicitly with a new config setting `strict_smaxage` (defaulting to `false`).

Commits
-------

ad5f427bed [HttpKernel] Fix stale-if-error behavior, add tests
2020-01-30 17:05:58 +01:00
Matthias Pigulla
ad5f427bed [HttpKernel] Fix stale-if-error behavior, add tests 2020-01-30 17:05:53 +01:00
Kevin Bond
f2cdafcae0
[Mailer] added tag/metadata support 2020-01-30 10:57:20 -05:00
Fabien Potencier
a2b6085d29 feature #35215 [HttpFoundation] added withers to Cookie class (ns3777k)
This PR was squashed before being merged into the 5.1-dev branch (closes #35215).

Discussion
----------

[HttpFoundation] added withers to Cookie class

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

I was quite descriptive in the issue :-)

The main idea is to get the interface for changing a cookie to avoid every unneeded argument in the constructor.

Current:

```php
$cookie = Cookie::create(
    RegionSwitcher::REGION_COOKIE, $regionSlug, new DateTime('+1 year'), '/',
    $baseDomain, null, false
);
```

This PR:

```php
$cookie = Cookie::create('foo')
            ->withValue('bar')
            ->withExpiresTime(strtotime('Fri, 20-May-2011 15:25:52 GMT'))
            ->withDomain('.myfoodomain.com')
            ->withSecure(true);
```

Every `wither` returns a copy of current cookie with requested setting set. Cookie class remains immutable.

Commits
-------

549afaab17 [HttpFoundation] added withers to Cookie class
2020-01-30 16:43:43 +01:00
Nikita Safonov
549afaab17 [HttpFoundation] added withers to Cookie class 2020-01-30 16:43:37 +01:00
Fabien Potencier
ee9aacd09f feature #35514 [DI][Routing] add wither to configure the path of PHP-DSL configurators (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DI][Routing] add wither to configure the path of PHP-DSL configurators

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

This makes PHP-DSL configurators more flexible, by allowing to use them for a different path than they were initially created for.

Sidekick of https://github.com/symfony/recipes/pull/721

Commits
-------

8f92c85689 [DI][Routing] add wither to configure the path of PHP-DSL configurators
2020-01-30 16:28:44 +01:00
Fabien Potencier
a916c618e1 bug #35408 [Notifier] Fix infinite loop on round robin transport (alirezamirsepassi)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Notifier] Fix infinite loop on round robin transport

| Q             | A
| ------------- | ---
| Branch?       | master <!-- 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       | - <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Commits
-------

c16ee4a894 [Notifier] Fix infinite loop on round robin transport
2020-01-30 16:20:45 +01:00
Alireza Mirsepassi
c16ee4a894 [Notifier] Fix infinite loop on round robin transport 2020-01-30 16:19:41 +01:00
Roland Franssen
27cc120760 [Intl] Provide more locale translations 2020-01-30 16:14:06 +01:00
Fabien Potencier
6ebe83c14e [Mailer] Randomize the first transport used by the RoundRobin transport 2020-01-30 16:02:47 +01:00
Fabien Potencier
fbc3dc8a1d feature #35519 [Mailer] Make default factories public (fabpot)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Mailer] Make default factories public

| Q             | A
| ------------- | ---
| Branch?       | master <!-- 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 #35469 <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

To allow registering new factories and keep the default ones available.

Commits
-------

c9863c6a6c [Mailer] Make default factories public
2020-01-30 15:57:43 +01:00
Fabien Potencier
75fc3fa3e4 feature #35156 [String] Made AbstractString::width() follow POSIX.1-2001 (fancyweb)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[String] Made AbstractString::width() follow POSIX.1-2001

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

This PR ports the wcswidth() function (see http://man7.org/linux/man-pages/man3/wcwidth.3.html and https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c) into the String component. This new method will be useful in the Console component to determine how many columns a character takes.

I kind of copied the Intl data import strategy.

Commits
-------

347d8252fb [String] Made AbstractString::width() follow POSIX.1-2001
2020-01-30 14:52:02 +01:00
Fabien Potencier
e4937523e6 minor #35440 Sort the KernelEvents constants to match the lifecycle of the framework (hermann8u)
This PR was squashed before being merged into the 5.1-dev branch (closes #35440).

Discussion
----------

Sort the KernelEvents constants to match the lifecycle of the framework

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

This PR is the same as #35248 but on the correct branch this time!

> Hi,
>
> When I need to visualize all the kernel events I often open the KernelEvents file. However, it is difficult to navigate through it because the constants are not in the same order compared to the framework execution life cycle.
>
> This PR aims to sort this constants to match it. It's also the same order used in [this documentation page](https://symfony.com/doc/current/reference/events.html).
>
> Thanks.

Commits
-------

a447cba26c Sort the KernelEvents constants to match the lifecycle of the framework
2020-01-30 14:39:36 +01:00
Florian Hermann
a447cba26c Sort the KernelEvents constants to match the lifecycle of the framework 2020-01-30 14:39:30 +01:00
Fabien Potencier
8b337fc94a feature #35308 [Dotenv] Add Dotenv::bootEnv() to check for .env.local.php before calling Dotenv::loadEnv() (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Dotenv] Add Dotenv::bootEnv() to check for .env.local.php before calling Dotenv::loadEnv()

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

The goal of this PR is to eventually get rid of the `config/bootstrap.php` file in Symfony 5.1 apps.
I think we've done enough iterations on that piece of bootstrapping logic to put it inside the `Dotenv` component.
This fully replaces https://github.com/symfony/recipes/blob/master/symfony/framework-bundle/4.2/config/bootstrap.php

It doesn't conflict with current apps so they'll be fine keeping the `config/bootstrap.php` file until they're upgraded.

The new bootstrapping logic will require adding this line in `bin/console` and `public/index.php`:
```php
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
```

Recipes updated at https://github.com/symfony/recipes/pull/724

Commits
-------

98c7d3027b [Dotenv] Add Dotenv::bootEnv() to check for .env.local.php before calling Dotenv::loadEnv()
2020-01-30 13:04:33 +01:00
Fabien Potencier
c9863c6a6c [Mailer] Make default factories public 2020-01-30 11:51:57 +01:00
Fabien Potencier
29badef991 minor #35189 [Mailer] add tests for http transports (azjezz)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] add tests for http transports

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

Commits
-------

df30a176ac [Mailer] add tests for http transports
2020-01-30 11:46:32 +01:00
Fabien Potencier
6b0103ec5a bug #35518 [Mailer] Fix STARTTLS support for Postmark and Mandrill (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Fix STARTTLS support for Postmark and Mandrill

| 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 #34846 <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

44b27c6816 [Mailer] Fix STARTTLS support for Postmark and Mandrill
2020-01-30 11:34:36 +01:00
Fabien Potencier
44b27c6816 [Mailer] Fix STARTTLS support for Postmark and Mandrill 2020-01-30 11:31:13 +01:00
Tobias Schultze
737a3e59a7 Merge branch '4.3' into 4.4 2020-01-29 15:35:06 +01:00
Patrick Berenschot
21fffcadd5 [Messenger] Check for all serialization exceptions during message dec… 2020-01-29 13:59:11 +01:00
Fabien Potencier
5b38f70367 feature #35478 [Console] Add constants for main exit codes (Chi-teck)
This PR was squashed before being merged into the 5.1-dev branch (closes #35478).

Discussion
----------

[Console] Add constants for main exit codes

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

Commits
-------

5f6a1acaac [Console] Add constants for main exit codes
2020-01-29 12:05:28 +01:00
Chi-teck
5f6a1acaac [Console] Add constants for main exit codes 2020-01-29 12:05:22 +01:00
Nyholm
09ec907a7e [Messenger] Add TLS option to Redis transport's DSN 2020-01-29 11:43:46 +01:00
Signor Pedro
9cbfad5853
[DependencyInjection] #35505 Fix typo in test name
Rename testThrowsExceptionWhenAddServiceOnACompiledContainer to testNoExceptionWhenAddServiceOnACompiledContainer.
2020-01-29 11:07:44 +01:00
Fabien Potencier
f0748f8978 feature #35262 [Mailer] add ability to disable the TLS peer verification via DSN (Aurélien Fontaine)
This PR was squashed before being merged into the 5.1-dev branch (closes #35262).

Discussion
----------

[Mailer] add ability to disable the TLS peer verification via DSN

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix
| License       | MIT
| Doc PR        | symfony/symfony-docs/pull/12997

Add the ability to disable the peer TLS verification with the DNS when using `EsmtpTransport` like this :

```
MAILER_DSN=smtp://foo@default?verify_peer=false
```

By default the verification is enabled

Commits
-------

4b854da73e [Mailer] add ability to disable the TLS peer verification via DSN
2020-01-29 08:52:41 +01:00
Aurélien Fontaine
4b854da73e [Mailer] add ability to disable the TLS peer verification via DSN 2020-01-29 08:52:36 +01:00
azjezz
dafb057354 [Mailer] read default timeout from ini configurations 2020-01-28 13:53:45 +01:00
Nicolas Grekas
98c7d3027b [Dotenv] Add Dotenv::bootEnv() to check for .env.local.php before calling Dotenv::loadEnv() 2020-01-28 12:41:19 +01:00
Baptiste Leduc
0a92dab753
Rebase, fix tests, review & update CHANGELOG 2020-01-28 10:54:57 +01:00
Fabien Potencier
3945a5c80e feature #35422 [Messenger] Move Transports to separate packages (Nyholm)
This PR was squashed before being merged into the 5.1-dev branch (closes #35422).

Discussion
----------

[Messenger] Move Transports to separate packages

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

I think it is a good idea to have the transports in a separate package. The benefits a many:
- It allows us to have usage statistics
- The core messenger package is smaller
- Transports can have dependencies specified in composer.json instead of just suggests

This PR will not break BC but it requires to configure subtree split.

Commits
-------

2990c8f1e7 [Messenger] Move Transports to separate packages
2020-01-28 09:56:37 +01:00
Nyholm
2990c8f1e7 [Messenger] Move Transports to separate packages 2020-01-28 09:56:31 +01:00
Jan Vernieuwe
2e4f2ac322 [Validator] add Validation::createCallable() 2020-01-27 22:34:17 +01:00
Jérémy Derussé
ae0c6344b4
Fix exception message in Doctrine Messenger 2020-01-27 19:01:48 +01:00
Fabien Potencier
1cfadb41dc feature #35425 [CssSelector] Added cache on top of CssSelectorConverter (lyrixx)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[CssSelector] Added cache on top of CssSelectorConverter

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

Commits
-------

ed11d526d9 [CssSelector] Added cache on top of CssSelectorConverter
2020-01-27 16:43:33 +01:00
Grégoire Pineau
ed11d526d9 [CssSelector] Added cache on top of CssSelectorConverter 2020-01-27 15:56:28 +01:00
Nicolas Grekas
b22a58449c feature #35362 [Cache] Add LRU + max-lifetime capabilities to ArrayCache (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Cache] Add LRU + max-lifetime capabilities to ArrayCache

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

In https://github.com/symfony/symfony/pull/32294#issuecomment-508067745, @andrerom writes:

> if you plan to expose use of ArrayAdapter to a wider audience you should probably also add the following features to it:
> - max item limit to avoid reaching memory limits
> - own (very low, like default 100-500ms) TTL for in-memory caching, as it's in practice stale data when used in concurrent scenarios
>
> If you want to be advance you can also:
>
> - keep track of use, and evict cache items based on that using LFU when reaching limit
> - in-memory cache is domain & project specific in terms of how long it's somewhat "safe" to keep items in memory, so either describe when to use and not use on a per pool term, or allow use of pool to pass in flags to opt out of in-memory cache for cases developer knows it should be ignored

This PR implements these suggestions, via two new constructor arguments: `$maxLifetime` and `$maxItems`.

In Yaml:
```yaml
services:
    app.lru150_cache:
        parent: cache.adapter.array
        arguments:
            $maxItems: 150
            $maxLifetime: 0.150

framework:
    cache:
        pools:
            my_chained_pool:
                adapters:
                  - app.lru150_cache
                  - cache.adapter.filesystem
```

This configuration adds a local memory cache that keeps max 150 elements for 150ms on top of a filesystem cache.

/cc @lyrixx since you were also interested in it.

Commits
-------

48a5d5e8a9 [Cache] Add LRU + max-lifetime capabilities to ArrayCache
2020-01-27 11:48:06 +01:00
Nicolas Grekas
c966016a37 minor #35375 [Lock] Don't allow mysqli to be used as it doesn't work (duncan3dc)
This PR was merged into the 4.3 branch.

Discussion
----------

[Lock] Don't allow mysqli to be used as it doesn't work

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

Mysqli doesn't support named parameters, so if you pass a doctrine connection using `mysqli` then you get the following error:
`You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':id, :token, UNIX_TIMESTAMP() + 300)'`
This PR ensures a clear error is provided and suggests to use `pdo_mysql` instead

Commits
-------

ef3bcda5e3 Mysqli doesn't support the named parameters used by PdoStore
2020-01-27 11:29:37 +01:00
Nicolas Grekas
51821353c0 feature #35402 [Console] Set Command::setHidden() final for adding default param in SF 6.0 (lyrixx)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Console] Set Command::setHidden() final for adding default param in SF 6.0

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

Commits
-------

e2ede070fa [Console] Add default parameter (true) for Command::setHidden()
2020-01-27 11:27:10 +01:00
Nicolas Grekas
8773ccff71 bug #35429 [DI] CheckTypeDeclarationsPass now checks if value is type of parameter type (pfazzi)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI]  CheckTypeDeclarationsPass now checks if value is type of parameter type

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

Commits
-------

0d4c0a6492 [DI]  CheckTypeDeclarationsPass now checks if value is type of parameter type
2020-01-27 11:10:01 +01:00
Patrick Luca Fazzi
0d4c0a6492 [DI] CheckTypeDeclarationsPass now checks if value is type of parameter type 2020-01-27 11:09:51 +01:00
Nicolas Grekas
c956d62e5c bug #35464 [ErrorHandler] Add debug argument to decide whether debug page is shown or not (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Add debug argument to decide whether debug page is shown or not

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

This ensures that the debug page (with stack trace) won't be (by default) displayed in non-CLI context when an early error occurs (after FB::boot()) in non-debug mode (prod). And `Debug::enable()` will enable it explicitly.

Commits
-------

cf80224589 Added debug argument to decide if debug page should be shown or not
2020-01-27 10:48:47 +01:00
Wouter de Jong
6b2db6dc30 Improved error message when no supported user provider is found 2020-01-27 10:46:58 +01:00
Craig Duncan
a7864489b0 Mysqli doesn't support the named parameters used by PdoAdapter 2020-01-27 09:15:09 +00:00
Yonel Ceruto
cf80224589 Added debug argument to decide if debug page should be shown or not 2020-01-26 15:27:56 -05:00
Nicolas Grekas
487bcc6200 Improve displaying anonymous classes 2020-01-26 14:13:42 +01:00
Robin Chalas
524ee7acb6 Merge branch '5.0'
* 5.0:
  Fix displaying anonymous classes on PHP >= 7.4.2
2020-01-25 17:03:00 +01:00
Robin Chalas
806e8b159c Merge branch '4.4' into 5.0
* 4.4:
  Fix displaying anonymous classes on PHP >= 7.4.2
2020-01-25 16:56:29 +01:00
Nicolas Grekas
ef8b34c75f Merge branch '4.3' into 4.4
* 4.3:
  Fix displaying anonymous classes on PHP >= 7.4.2
2020-01-25 13:44:29 +01:00
Nicolas Grekas
dd94b386a9 Fix displaying anonymous classes on PHP >= 7.4.2 2020-01-25 13:32:28 +01:00
Nicolas Grekas
48a5d5e8a9 [Cache] Add LRU + max-lifetime capabilities to ArrayCache 2020-01-24 18:00:05 +01:00
Nicolas Grekas
8f92c85689 [DI][Routing] add wither to configure the path of PHP-DSL configurators 2020-01-24 15:52:32 +01:00
Nicolas Grekas
f4ff77cc08 Merge branch '5.0'
* 5.0: (21 commits)
  [DoctrineBridge] [DX] Improve condition for exception text in ManagerRegistry to avoid confusion
  Fix testing with mongodb
  suggest a non-deprecated function replacement
  Minor Travis cosmetic patch
  [Cache] fix checking for igbinary availability
  [HttpKernel] Check if lock can be released
  Fixes a runtime error (Impossible to access an attribute ("value") on a double variable...) when accessing the cache panel (@see #35419)
  bumped Symfony version to 5.0.4
  updated VERSION for 5.0.3
  updated CHANGELOG for 5.0.3
  bumped Symfony version to 4.4.4
  updated VERSION for 4.4.3
  updated CHANGELOG for 4.4.3
  bumped Symfony version to 4.3.11
  updated VERSION for 4.3.10
  updated CHANGELOG for 4.3.10
  bumped Symfony version to 3.4.38
  updated VERSION for 3.4.37
  update CONTRIBUTORS for 3.4.37
  updated CHANGELOG for 3.4.37
  ...
2020-01-23 12:07:40 +01:00
Nicolas Grekas
bbda340099 Merge branch '4.4' into 5.0
* 4.4:
  [DoctrineBridge] [DX] Improve condition for exception text in ManagerRegistry to avoid confusion
  Fix testing with mongodb
  suggest a non-deprecated function replacement
  Minor Travis cosmetic patch
  [Cache] fix checking for igbinary availability
  [HttpKernel] Check if lock can be released
  Fixes a runtime error (Impossible to access an attribute ("value") on a double variable...) when accessing the cache panel (@see #35419)
  bumped Symfony version to 4.4.4
  updated VERSION for 4.4.3
  updated CHANGELOG for 4.4.3
  bumped Symfony version to 4.3.11
  updated VERSION for 4.3.10
  updated CHANGELOG for 4.3.10
  bumped Symfony version to 3.4.38
  updated VERSION for 3.4.37
  update CONTRIBUTORS for 3.4.37
  updated CHANGELOG for 3.4.37
  [FrameworkBundle] Add --show-arguments example to debug:container command help text
2020-01-23 12:07:12 +01:00
Nicolas Grekas
c08fabebe7 minor #35447 [Security] suggest a non-deprecated function replacement (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] suggest a non-deprecated function replacement

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

Commits
-------

731730fe2f suggest a non-deprecated function replacement
2020-01-23 11:58:55 +01:00
Nicolas Grekas
a3acdbdd19 Merge branch '4.3' into 4.4
* 4.3:
  [DoctrineBridge] [DX] Improve condition for exception text in ManagerRegistry to avoid confusion
  Fix testing with mongodb
  Minor Travis cosmetic patch
  [Cache] fix checking for igbinary availability
  bumped Symfony version to 4.3.11
  updated VERSION for 4.3.10
  updated CHANGELOG for 4.3.10
  bumped Symfony version to 3.4.38
  updated VERSION for 3.4.37
  update CONTRIBUTORS for 3.4.37
  updated CHANGELOG for 3.4.37
2020-01-23 11:56:47 +01:00
Thomas Calvet
347d8252fb [String] Made AbstractString::width() follow POSIX.1-2001
Co-authored-by: Nicolas Grekas <nicolas.grekas@gmail.com>
2020-01-23 11:37:52 +01:00
Christian Flothmann
731730fe2f suggest a non-deprecated function replacement 2020-01-23 10:45:54 +01:00
Joel Wurtz
fc250863a8
[PropertyInfo] Add accessor and mutator extractor interface and implementation on reflection 2020-01-22 19:55:02 +01:00
Grégoire Pineau
e2ede070fa [Console] Add default parameter (true) for Command::setHidden() 2020-01-22 11:03:14 +01:00
Nicolas Grekas
09818e99ac [Cache] fix checking for igbinary availability 2020-01-22 08:40:03 +01:00
Fabien Potencier
07818f2747 feature #35407 [HttpClient] collect the body of responses when possible (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] collect the body of responses when possible

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

This is missing one thing: the HTML part in the profiler.

![image](https://user-images.githubusercontent.com/243674/72798816-29813e00-3c44-11ea-9586-99c2c6b91640.png)

![image](https://user-images.githubusercontent.com/243674/72798851-3f8efe80-3c44-11ea-973b-7ecc64a5a542.png)

Commits
-------

121f72839c [HttpClient] collect the body of responses when possible
2020-01-22 08:06:55 +01:00
Sjoerd Adema
2001e54e82 [HttpKernel] Check if lock can be released
Make sure the `$cache->release()` method exists before executing it.
2020-01-21 17:50:46 +01:00
Fabien Potencier
ad393c463c bumped Symfony version to 5.0.4 2020-01-21 14:56:52 +01:00
Fabien Potencier
f8c7fe871c updated VERSION for 5.0.3 2020-01-21 14:29:58 +01:00
Fabien Potencier
a4ed963409 bumped Symfony version to 4.4.4 2020-01-21 14:29:15 +01:00
Fabien Potencier
e65c58ad99 updated VERSION for 4.4.3 2020-01-21 14:23:17 +01:00
Fabien Potencier
f2cf444fb0 bumped Symfony version to 4.3.11 2020-01-21 14:21:51 +01:00
Fabien Potencier
83a0727346 updated VERSION for 4.3.10 2020-01-21 14:13:44 +01:00
Fabien Potencier
6aec780351 bumped Symfony version to 3.4.38 2020-01-21 14:12:52 +01:00
Fabien Potencier
10663730ae updated VERSION for 3.4.37 2020-01-21 13:29:51 +01:00
Nicolas Grekas
a8cc059c76 Merge branch '5.0'
* 5.0:
  [Yaml] Throw on unquoted exclamation mark
  Use supportsClass where possible
2020-01-21 12:13:09 +01:00
Nicolas Grekas
6c1265cdaa Merge branch '4.4' into 5.0
* 4.4:
  [Yaml] Throw on unquoted exclamation mark
  Use supportsClass where possible
2020-01-21 12:12:28 +01:00
Nicolas Grekas
9d33550945 Merge branch '4.3' into 4.4
* 4.3:
  [Yaml] Throw on unquoted exclamation mark
  Use supportsClass where possible
2020-01-21 12:12:16 +01:00
Nicolas Grekas
79d9bdac35 bug #35364 [Yaml] Throw on unquoted exclamation mark (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[Yaml] Throw on unquoted exclamation mark

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

Commits
-------

6b4147c991 [Yaml] Throw on unquoted exclamation mark
2020-01-21 12:09:03 +01:00
Nicolas Grekas
c7a1916661 Merge branch '3.4' into 4.3
* 3.4:
  Use supportsClass where possible
2020-01-21 12:08:18 +01:00
Nicolas Grekas
fb0be81b7a bug #35065 [Security] Use supportsClass in addition to UnsupportedUserException (linaori)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Use supportsClass in addition to UnsupportedUserException

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

This PR fixes the issue where user providers rely on just the UnsupportedUserException from `refreshUser()`, causing a flow where users are wrongfully re-authenticated.

There's one issue where `refreshUser()` can do far more sophisticated checks on the user class, which it will never reach if the class is not supported. As far as I know it was never intended to support instances that are rejected by `supportsClass()`, though people could've implemented this (by accident). So the question is more if we should add a BC layer for this; for example:

```php
try {
    $refreshedUser = $provider->refreshUser($user);
    $newToken = clone $token;
    $newToken->setUser($refreshedUser);

    if (!$provider->supportsClass($userClass)) {
        if ($this->shouldCheckSupportsClass) {
            continue;
        }
        // have to think of a proper deprecation here for 6.0
        @trigger_error('Provider %s does not support user class %s via supportsClass() while it does support it via refreshUser .. please set option X and fix %s::supportsUser() ', E_USER_DEPRECATED);
    }
```
This would prevent behavior from breaking but also means we can't fix this on anything less than 5.1.

Commits
-------

d3942cbe17 Use supportsClass where possible
2020-01-21 12:02:57 +01:00
Nicolas Grekas
121f72839c [HttpClient] collect the body of responses when possible 2020-01-21 11:49:11 +01:00
Nicolas Grekas
b5d52a3db7 Merge branch '5.0'
* 5.0:
  Add link to messenger documentation in its README
  [HttpKernel] restore compat with clock mocking
2020-01-21 11:12:13 +01:00
Nicolas Grekas
c8c6c92129 Merge branch '4.4' into 5.0
* 4.4:
  Add link to messenger documentation in its README
  [HttpKernel] restore compat with clock mocking
2020-01-21 11:12:04 +01:00
Nicolas Grekas
c6a5d3d564 Merge branch '4.3' into 4.4
* 4.3:
  Add link to messenger documentation in its README
  [HttpKernel] restore compat with clock mocking
2020-01-21 11:11:47 +01:00
Loïck Piera
5714eaa0de Add link to messenger documentation in its README 2020-01-21 11:11:13 +01:00
Nicolas Grekas
c80a7ad042 [HttpKernel] restore compat with clock mocking 2020-01-21 11:03:13 +01:00
Nicolas Grekas
29791d4dfa Merge branch '5.0'
* 5.0:
  [Filesystem] chown and chgrp should also accept int as owner and group
  [DI] Fix EnvVar not loaded when Loader requires an env var
  Fixed #34713 Move new messages to intl domain when possible
  [FrameworkBundle] Fix small typo in output comment
  chown and chgrp should also accept int as owner and group
  Revert "Fixed translations file dumper behavior"
  Fix RememberMe with null password
  [Validator] Fix plurals for sr_Latn (Serbian language written in latin script) validation messages
  Set booted flag to false when test kernel is unset
  [FrameworkBundle] remove messenger cache if not enabled
  [PhpUnitBridge][SymfonyTestsListenerTrait] Remove some unneeded code
  [HttpClient] Fix strict parsing of response status codes
  fix PHP const mapping keys using the inline notation
  [SecurityBundle] Drop duplicated code
  [FrameworkBundle] Make sure one can use fragments.hinclude_default_template
  Fix that no-cache requires positive validation with the origin, even for fresh responses
  Improve upgrading instructions for deprecated router options
  [DI] Suggest typed argument when binding fails with untyped argument
2020-01-21 09:44:52 +01:00
Nicolas Grekas
3ccb3bf96a Merge branch '4.4' into 5.0
* 4.4:
  [DI] Fix EnvVar not loaded when Loader requires an env var
  Fixed #34713 Move new messages to intl domain when possible
  [FrameworkBundle] Fix small typo in output comment
  chown and chgrp should also accept int as owner and group
  Revert "Fixed translations file dumper behavior"
  Fix RememberMe with null password
  [Validator] Fix plurals for sr_Latn (Serbian language written in latin script) validation messages
  Set booted flag to false when test kernel is unset
  [FrameworkBundle] remove messenger cache if not enabled
  [PhpUnitBridge][SymfonyTestsListenerTrait] Remove some unneeded code
  [HttpClient] Fix strict parsing of response status codes
  fix PHP const mapping keys using the inline notation
  [SecurityBundle] Drop duplicated code
  [FrameworkBundle] Make sure one can use fragments.hinclude_default_template
  Fix that no-cache requires positive validation with the origin, even for fresh responses
  Improve upgrading instructions for deprecated router options
  [DI] Suggest typed argument when binding fails with untyped argument
2020-01-21 09:40:24 +01:00
Nicolas Grekas
039feed98a bug #35351 Revert #34797 "Fixed translations file dumper behavior" and fix #34713 (yceruto)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

Revert #34797 "Fixed translations file dumper behavior" and fix #34713

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

Revert https://github.com/symfony/symfony/pull/34797

See also https://github.com/symfony/symfony/issues/35328

It's very likely that the new way will be completely different from this one that is being reverted. That's why I'm reverting rather than fixing it.

Commits
-------

9ca872054b Fixed #34713 Move new messages to intl domain when possible
56e79fefa1 Revert "Fixed translations file dumper behavior"
2020-01-21 09:30:33 +01:00
Filippo Tessarotto
eba5a0c390 [Filesystem] chown and chgrp should also accept int as owner and group 2020-01-21 09:26:25 +01:00
Fabien Potencier
a43c222cce Merge branch '4.3' into 4.4
* 4.3:
  chown and chgrp should also accept int as owner and group
  Fix RememberMe with null password
  [Validator] Fix plurals for sr_Latn (Serbian language written in latin script) validation messages
  [PhpUnitBridge][SymfonyTestsListenerTrait] Remove some unneeded code
  fix PHP const mapping keys using the inline notation
  Fix that no-cache requires positive validation with the origin, even for fresh responses
2020-01-21 09:20:44 +01:00
Fabien Potencier
f1230757c3 Merge branch '3.4' into 4.3
* 3.4:
  chown and chgrp should also accept int as owner and group
  Fix RememberMe with null password
  [Validator] Fix plurals for sr_Latn (Serbian language written in latin script) validation messages
  [PhpUnitBridge][SymfonyTestsListenerTrait] Remove some unneeded code
  fix PHP const mapping keys using the inline notation
  Fix that no-cache requires positive validation with the origin, even for fresh responses
2020-01-21 09:20:29 +01:00
Fabien Potencier
52f77d2a93 Merge branch '5.0'
* 5.0:
  Fix #35385: Fix Console typehint
  Fix RememberMe with null password
  [String] add missing encoding when calling mb_ord()
2020-01-21 08:39:56 +01:00
Fabien Potencier
9198b9dc97 Merge branch '4.3' into 4.4
* 4.3:
  [FrameworkBundle] remove messenger cache if not enabled
  [HttpClient] Fix strict parsing of response status codes
  [DI] Suggest typed argument when binding fails with untyped argument
2020-01-21 08:39:36 +01:00
Nicolas Grekas
940bba0860 bug #35335 [Security] Fix RememberMe with null password (jderusse)
This PR was merged into the 5.0 branch.

Discussion
----------

[Security] Fix RememberMe with null password

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

From `UserInterface` the method getPassword may return null, while generateCookieHash requires a string.
This PR changes the signature of the methods to allows null password

Commits
-------

a7d0d82768 Fix RememberMe with null password
2020-01-20 13:23:27 +01:00
Nicolas Grekas
0dcf2fcdf5 bug #35339 [String] add missing encoding when calling mb_ord() (nicolas-grekas)
This PR was merged into the 5.0 branch.

Discussion
----------

[String] add missing encoding when calling mb_ord()

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

Commits
-------

759e20e6d3 [String] add missing encoding when calling mb_ord()
2020-01-20 13:22:08 +01:00
Baptiste Clavié
37b31149c6
Support name attribute on the xliff2 translator loader 2020-01-20 13:02:40 +01:00
Jérémy Derussé
e119aa6c48 [DI] Fix EnvVar not loaded when Loader requires an env var 2020-01-20 11:32:09 +01:00
Dmitry Danilson
75dbaf0cc5 Fix #35385: Fix Console typehint 2020-01-19 18:13:19 +07:00
Craig Duncan
ef3bcda5e3 Mysqli doesn't support the named parameters used by PdoStore 2020-01-17 17:27:29 +00:00
Thomas Calvet
6b4147c991 [Yaml] Throw on unquoted exclamation mark 2020-01-17 12:30:02 +01:00
Nicolas Grekas
f889c1167f minor #35369 [Filesystem] chown and chgrp should also accept int as owner and group (3.4) (Slamdunk)
This PR was merged into the 3.4 branch.

Discussion
----------

[Filesystem] chown and chgrp should also accept int as owner and group (3.4)

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

Reference: https://github.com/symfony/symfony/pull/35356#issuecomment-575526299

Commits
-------

6b811e6b4c chown and chgrp should also accept int as owner and group
2020-01-17 12:07:25 +01:00
Filippo Tessarotto
6b811e6b4c chown and chgrp should also accept int as owner and group 2020-01-17 09:50:08 +01:00
Thomas Calvet
bdf02c0a7e [Yaml][Inline] Fail properly on empty object tag and empty const tag 2020-01-16 20:04:26 +01:00
Fabien Potencier
b493997b71 minor #35340 [Validator] Fix plurals for sr_Latn validation messages (knezmilos13)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Fix plurals for sr_Latn validation messages

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

validators.sr_Latn.xlf (Serbian, written with latin script) has wrong plurals for all validation message translations that require them (only two where there should be three). This commit fixes that by adding the missing third plural-translation.

Commits
-------

207cdafd54 [Validator] Fix plurals for sr_Latn (Serbian language written in latin script) validation messages
2020-01-16 10:23:40 +01:00
Jérémy Jarrié
0421e01ae1 [Messenger] Messenger redis local sock dsn 2020-01-16 10:19:52 +01:00
Yonel Ceruto
56e79fefa1 Revert "Fixed translations file dumper behavior" 2020-01-15 08:29:06 -05:00
Jérémy Derussé
820eb357c8
Fix RememberMe with null password 2020-01-14 22:28:32 +01:00
Jérémy Derussé
a7d0d82768
Fix RememberMe with null password 2020-01-14 22:27:30 +01:00
knezmilos13
207cdafd54 [Validator] Fix plurals for sr_Latn (Serbian language written in latin script) validation messages 2020-01-14 19:27:07 +01:00
Nicolas Grekas
759e20e6d3 [String] add missing encoding when calling mb_ord() 2020-01-14 18:54:59 +01:00
Nicolas Grekas
477e843790 bug #34223 [DI] Suggest typed argument when binding fails with untyped argument (gudfar)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] Suggest typed argument when binding fails with untyped argument

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

I've added a condition that looks for arguments and if the typehint doesn’t match, throws an `InvalidArgumentException`

Commits
-------

0e92399daa [DI] Suggest typed argument when binding fails with untyped argument
2020-01-14 17:43:06 +01:00
Armando
4aa953600f [HttpClient] Fix strict parsing of response status codes 2020-01-13 18:23:05 +01:00
Fabien Potencier
db3134eba4 bug #35318 [Yaml] fix PHP const mapping keys using the inline notation (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] fix PHP const mapping keys using the inline notation

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

Commits
-------

45461c73bf fix PHP const mapping keys using the inline notation
2020-01-13 14:54:16 +01:00
Grégoire Pineau
d31939d01d [Workflow] Added a way to not fire the annonce event 2020-01-13 14:50:42 +01:00
Maxime Steinhausser
ddc016988e feature #35235 [Serializer] Added scalar denormalization (a-menshchikov)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Serializer] Added scalar denormalization

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

Was added an ability to deserialize scalar data (single or array).

Commits
-------

dad04d0adf Added scalar denormalization in Serializer + added scalar normalization tests
2020-01-13 09:54:25 +01:00
Zmey
dad04d0adf Added scalar denormalization in Serializer + added scalar normalization tests 2020-01-13 11:50:29 +03:00
Christian Flothmann
45461c73bf fix PHP const mapping keys using the inline notation 2020-01-13 09:00:59 +01:00
Robin Chalas
093c6fe588 fix CS 2020-01-11 19:51:52 +01:00
Fabien Potencier
584b29dd22 feature #34387 [Yaml] Added yaml-lint binary (jschaedl)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Yaml] Added yaml-lint binary

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #18987  <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | tbd.
<!--
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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

2640dfedfa [Yaml] Introduce yaml-lint binary
2020-01-11 16:57:28 +01:00
Matthias Pigulla
c8bdcb3408 Fix that no-cache requires positive validation with the origin, even for fresh responses 2020-01-10 22:32:00 +00:00
Robin Chalas
de4c45c90c Merge branch '5.0'
* 5.0:
  Avoid stale-if-error if kernel.debug = true, because it hides errors
  [Console] Fix SymfonyQuestionHelper tests sometimes failing on AppVeyor
  [SecurityBundle] Fix collecting traceable listeners info using anonymous: lazy
  [Filesystem][FilesystemCommonTrait] Use a dedicated directory when there are no namespace
  [Workflow] Fix configuration node reference for "initial_marking"
  expand listener in place
  [DI] deferred exceptions in ResolveParameterPlaceHoldersPass
  Do not throw exception on valut generate key
2020-01-10 22:57:55 +01:00
Robin Chalas
b4a63f925f Merge branch '4.4' into 5.0
* 4.4:
  Avoid stale-if-error if kernel.debug = true, because it hides errors
  [Console] Fix SymfonyQuestionHelper tests sometimes failing on AppVeyor
  [SecurityBundle] Fix collecting traceable listeners info using anonymous: lazy
  [Filesystem][FilesystemCommonTrait] Use a dedicated directory when there are no namespace
  [Workflow] Fix configuration node reference for "initial_marking"
  expand listener in place
  [DI] deferred exceptions in ResolveParameterPlaceHoldersPass
  Do not throw exception on valut generate key
2020-01-10 22:57:37 +01:00
Robin Chalas
36e6ceaeb7 Merge branch '4.3' into 4.4
* 4.3:
  Avoid stale-if-error if kernel.debug = true, because it hides errors
  [Console] Fix SymfonyQuestionHelper tests sometimes failing on AppVeyor
  [Workflow] Fix configuration node reference for "initial_marking"
  expand listener in place
  [DI] deferred exceptions in ResolveParameterPlaceHoldersPass
2020-01-10 22:54:01 +01:00
Robin Chalas
1d25a25109 Merge branch '3.4' into 4.3
* 3.4:
  Avoid stale-if-error if kernel.debug = true, because it hides errors
  [Console] Fix SymfonyQuestionHelper tests sometimes failing on AppVeyor
  [DI] deferred exceptions in ResolveParameterPlaceHoldersPass
2020-01-10 22:48:14 +01:00
Bulava Eduard
00d103d5f7 UnwrappingDenormalizer
inject an existing instance of PropertyAccess, implement hasCacheableSupportsMethod

Coding Standard fix

resolve conversations

test denormalizer
2020-01-10 16:45:28 +02:00
Fabien Potencier
74feb17927 feature #34980 [Messenger] remove several messages with command messenger:failed:remove (nikophil)
This PR was squashed before being merged into the 5.1-dev branch (closes #34980).

Discussion
----------

[Messenger] remove several messages with command messenger:failed:remove

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

command `messenger:failed:remove` now accepts an array of ids. If several provided, they are not displayed unless option `--show-messages` is passed

Commits
-------

903455e463 [Messenger] remove several messages with command messenger:failed:remove
2020-01-10 12:59:02 +01:00
Nicolas PHILIPPE
903455e463 [Messenger] remove several messages with command messenger:failed:remove 2020-01-10 12:58:56 +01:00
Fabien Potencier
d8bb14ccff Fix CS 2020-01-10 10:42:21 +01:00
Fabien Potencier
7dae1cad64 feature #31518 [Validator] Added HostnameValidator (karser)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Validator] Added HostnameValidator

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #10088   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

This PR adds HostnameValidator support. I encountered this need in my project and was surprised that this issue has been open for years.

Here is short example:
```
App\Entity\Acme:
    properties:
        domain:
            - Hostname: ~
        non_tld_domain:
            - Hostname: { requireTld: false }
```
The option `requireTld` is `true` by default and disallows domains like localhost and etc.

Commits
-------

8a08c2090a Added HostnameValidator
2020-01-10 10:41:53 +01:00
Fabien Potencier
d099bc395f feature #35284 Simplify UriSigner when working with HttpFoundation's Request (Toflar)
This PR was squashed before being merged into the 5.1-dev branch (closes #35284).

Discussion
----------

Simplify UriSigner when working with HttpFoundation's Request

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

I'm using the `UriSigner` in my own projects from time to time and I've always wondered why I have to manually generate the URI from the `Request` instance in such a way that it is correctly validated.
Let's add a new `checkRequest(Request $request)` method to provide better DX.

Commits
-------

4887b4bee1 Simplify UriSigner when working with HttpFoundation's Request
2020-01-10 10:29:03 +01:00
Yanick Witschi
4887b4bee1 Simplify UriSigner when working with HttpFoundation's Request 2020-01-10 10:28:57 +01:00
Fabien Potencier
9edb1618d2 feature #35273 [HttpClient] Add LoggerAwareInterface to ScopingHttpClient and TraceableHttpClient (pierredup)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[HttpClient] Add LoggerAwareInterface to ScopingHttpClient and TraceableHttpClient

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

This allows changing the logger when using `ScopingHttpClient` (and `TraceableHttpClient` during dev)

Commits
-------

1137bdc3f7 Add LoggerAwareInterface to ScopingHttpClient and TraceableHttpClient
2020-01-10 10:17:03 +01:00
Fabien Potencier
20e8cb207b Fix CS 2020-01-10 09:15:23 +01:00
Fabien Potencier
ebf3885aca feature #34847 Add support for safe HTTP preference - RFC 8674 (pyrech)
This PR was merged into the 5.1-dev branch.

Discussion
----------

Add support for safe HTTP preference - RFC 8674

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

[RFC 8674](https://tools.ietf.org/html/rfc8674) (not a IETF standard at the moment) defines a way for user agents to ask for "safe" content to a server. This PR add helper methods to :
- know if the user agent prefers a safe content
- mark the response as safe

Commits
-------

7f2cef759c Add support for safe preference - RFC8674
2020-01-10 09:14:56 +01:00
Fabien Potencier
d1e31a4fe0 bug #35151 [DI] deferred exceptions in ResolveParameterPlaceHoldersPass (Islam93)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] deferred exceptions in ResolveParameterPlaceHoldersPass

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

fixes case #30428
implemented as in AutowiringPass

Commits
-------

b3a2173c8e [DI] deferred exceptions in ResolveParameterPlaceHoldersPass
2020-01-10 09:08:19 +01:00
Thomas Calvet
474f3bef08 [Console] Fix SymfonyQuestionHelper tests sometimes failing on AppVeyor 2020-01-10 08:52:48 +01:00
Thomas Calvet
eaa767bebd [Filesystem][FilesystemCommonTrait] Use a dedicated directory when there are no namespace 2020-01-09 22:41:08 +01:00
Christian Flothmann
f5d407318d expand listener in place 2020-01-09 14:17:05 +01:00
Nicolas Grekas
e7f2a1afaa Merge branch '5.0'
* 5.0:
  fix tests
2020-01-09 13:59:39 +01:00
Nicolas Grekas
85cf2ee0ca Merge branch '4.4' into 5.0
* 4.4:
  fix tests
2020-01-09 13:59:02 +01:00
Nicolas Grekas
29f5b180d9 Merge branch '4.3' into 4.4
* 4.3:
  fix tests
2020-01-09 13:57:53 +01:00
Nicolas Grekas
e0c1f4da32 Merge branch '5.0'
* 5.0:
  [String] add test case for wordwrap method
  [Process] - update @throws phpdoc
  [PHPUnitBridge] file_get_contents() expects parameter 3 to be resource
  [PHPUnit-Bridge] Fail-fast in simple-phpunit if one of the passthru() commands fails
  [HttpKernel][FileLocator] Fix deprecation message
2020-01-09 10:56:45 +01:00
Mohamed Gamal
c314598df9 [String] add test case for wordwrap method 2020-01-09 10:55:26 +01:00
Nicolas Grekas
8031b864c3 Merge branch '4.4' into 5.0
* 4.4:
  [Process] - update @throws phpdoc
  [PHPUnitBridge] file_get_contents() expects parameter 3 to be resource
  [PHPUnit-Bridge] Fail-fast in simple-phpunit if one of the passthru() commands fails
  [HttpKernel][FileLocator] Fix deprecation message
2020-01-09 10:53:06 +01:00
Nicolas Grekas
62c4608e17 bug #35269 [HttpKernel][FileLocator] Fix deprecation message (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel][FileLocator] Fix deprecation message

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

Ref https://github.com/symfony/symfony/pull/34886

`$deprecatedPath` is the foreach value so it only works if the last element triggers the deprecation, otherwise the value is wrong.

Commits
-------

18ce8399d2 [HttpKernel][FileLocator] Fix deprecation message
2020-01-09 10:50:57 +01:00
Nicolas Grekas
e587194d89 Merge branch '4.3' into 4.4
* 4.3:
  [Process] - update @throws phpdoc
  [PHPUnitBridge] file_get_contents() expects parameter 3 to be resource
  [PHPUnit-Bridge] Fail-fast in simple-phpunit if one of the passthru() commands fails
2020-01-09 10:50:08 +01:00
Benhssaein Youssef
2be7029b70 [Process] - update @throws phpdoc 2020-01-09 10:39:05 +01:00
Pierre du Plessis
1137bdc3f7
Add LoggerAwareInterface to ScopingHttpClient and TraceableHttpClient 2020-01-09 09:41:13 +02:00
Robin Chalas
1443b43e1b feature #34819 [Console] Add SingleCommandApplication to ease creation of Single Command Application (lyrixx)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Console] Add SingleCommandApplication to ease creation of Single Command Application

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

---

```php
<?php

require __DIR__.'/vendor/autoload.php';

use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\SingleCommandApplication;

(new SingleCommandApplication())
    ->setName('My Super Command') // Optional
    ->setVersion('1.0.0') // Optional
    ->setProcessTitle('my_proc_title') // Optional
    ->addArgument('who', InputArgument::OPTIONAL, 'Who', 'World')  // Optional
    ->setCode(function(InputInterface $input, OutputInterface $output) {
        $output->writeln(sprintf('Hello %s!', $input->getArgument('who')));
    })
    ->run()
;

```

---

Note: I tried this too, and it works as expected:

```php

class MyCommand extends SingleCommandApplication
{
    public function execute(InputInterface $input, OutputInterface $output)
    {
        $output->writeln('hello');

        return 0;
    }
}

new MyCommand();
```

Commits
-------

4af513d449 [Console] Add SingleCommandApplication to ease creation of Single Command Application
2020-01-09 04:02:00 +01:00
Thomas Calvet
18ce8399d2 [HttpKernel][FileLocator] Fix deprecation message 2020-01-08 19:38:10 +01:00
azjezz
df30a176ac [Mailer] add tests for http transports 2020-01-08 18:36:30 +01:00
Nicolas Grekas
8acfd3a9d2 Merge branch '5.0'
* 5.0:
  [Debug] fix ClassNotFoundFatalErrorHandler
  [FrameworkBundle] Document the router.cache_class_prefix parameter removal
  [Routing] Fix using a custom matcher & generator dumper class
  [Notifier] Add more specific types at documentation level when php engine can't
  [Serializer] Fix cache in MetadataAwareNameConverter
  [Dotenv] Fixed infinite loop with missing quote followed by quoted value
  [HttpClient] Added missing sprintf
  [TwigBridge] button_widget now has its title attr translated even if its label = null or false
  [PhpUnitBridge] When using phpenv + phpenv-composer plugin, composer executable is wrapped into a bash script
  [Messenger] Added check if json_encode succeeded
  [Messenger] Added check if json_encode succeeded
  [FrameworkBundle][ContainerLintCommand] Only skip .errored. services
  [HttpClient] fix exception in case of PSR17 discovery failure
  [DependencyInjection] Handle ServiceClosureArgument for callable in container linting
  fix processing chain adapter based cache pool
  [HttpKernel] release lock explicitly
  [Security] Prevent canceled remember-me cookie from being accepted
  [FrameworkBundle][TranslationUpdateCommand] Do not output positive feedback on stderr
  [Security\Guard] Fix missing typehints
  do not render preferred choices as selected
2020-01-08 18:33:57 +01:00
Nicolas Grekas
d65de0f772 Merge branch '4.4' into 5.0
* 4.4:
  [Debug] fix ClassNotFoundFatalErrorHandler
  [Routing] Fix using a custom matcher & generator dumper class
  [Serializer] Fix cache in MetadataAwareNameConverter
  [Dotenv] Fixed infinite loop with missing quote followed by quoted value
  [HttpClient] Added missing sprintf
  [TwigBridge] button_widget now has its title attr translated even if its label = null or false
  [PhpUnitBridge] When using phpenv + phpenv-composer plugin, composer executable is wrapped into a bash script
  [Messenger] Added check if json_encode succeeded
  [Messenger] Added check if json_encode succeeded
  [FrameworkBundle][ContainerLintCommand] Only skip .errored. services
  [HttpClient] fix exception in case of PSR17 discovery failure
  [DependencyInjection] Handle ServiceClosureArgument for callable in container linting
  fix processing chain adapter based cache pool
  [HttpKernel] release lock explicitly
  [Security] Prevent canceled remember-me cookie from being accepted
  [FrameworkBundle][TranslationUpdateCommand] Do not output positive feedback on stderr
  [Security\Guard] Fix missing typehints
  do not render preferred choices as selected
2020-01-08 18:33:29 +01:00
Nicolas Grekas
80cd480254 Merge branch '4.3' into 4.4
* 4.3:
  [Debug] fix ClassNotFoundFatalErrorHandler
  [Routing] Fix using a custom matcher & generator dumper class
  [Dotenv] Fixed infinite loop with missing quote followed by quoted value
  [HttpClient] Added missing sprintf
  [TwigBridge] button_widget now has its title attr translated even if its label = null or false
  [PhpUnitBridge] When using phpenv + phpenv-composer plugin, composer executable is wrapped into a bash script
  [Messenger] Added check if json_encode succeeded
  [Security] Prevent canceled remember-me cookie from being accepted
  [FrameworkBundle][TranslationUpdateCommand] Do not output positive feedback on stderr
  [Security\Guard] Fix missing typehints
2020-01-08 18:29:02 +01:00
Nicolas Grekas
9b11c36bd2 bug #35261 [Routing] Fix using a custom matcher & generator dumper class (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] Fix using a custom matcher & generator dumper class

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

This PR fixes a BC break I encountered while upgrading an existing project from 4.2 to 4.4. In this project I use a custom `generator_dumper_class` that is not a `CompiledUrlGeneratorDumper` (it didn't exist yet). I faced 2 problems:
- The generator is considered "compiled" while it is not. This is because we don't check if the `generator_dumper_class` is effectively a `CompiledUrlGeneratorDumper` to compute the `$compiled` variable. That result in a `\TypeError: Return value of Symfony\Component\Routing\Router::getCompiledRoutes() must be of the type array, int returned`
- My custom dumper is not used at all. This is because of https://github.com/symfony/symfony/pull/31964. I altered the condition to fall back only in one way and not the other. The original issue is still fixed (if one uses a classic `UrlGenerator` + a `CompiledUrlGeneratorDumper`, it fall backs on `PhpGeneratorDumper`). However, if one uses a `CompiledUrlGenerator` + a classic `PhpGeneratorDumper` (my case), the classic dumper is still returned. Since `$compiled` is now correctly computed, this case works fine. The Router won't try to get the compiled routes and will use the "old" way.

Commits
-------

3a840a9796 [Routing] Fix using a custom matcher & generator dumper class
2020-01-08 18:23:22 +01:00
Nicolas Grekas
d6381617ac Merge branch '3.4' into 4.3
* 3.4:
  [Debug] fix ClassNotFoundFatalErrorHandler
  [Dotenv] Fixed infinite loop with missing quote followed by quoted value
  [TwigBridge] button_widget now has its title attr translated even if its label = null or false
  [PhpUnitBridge] When using phpenv + phpenv-composer plugin, composer executable is wrapped into a bash script
  [Security] Prevent canceled remember-me cookie from being accepted
  [FrameworkBundle][TranslationUpdateCommand] Do not output positive feedback on stderr
2020-01-08 18:19:22 +01:00
Nicolas Grekas
a4a1f12a00 bug #34643 [Dotenv] Fixed infinite loop with missing quote followed by quoted value (naitsirch)
This PR was merged into the 3.4 branch.

Discussion
----------

[Dotenv] Fixed infinite loop with missing quote followed by quoted value

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

If there's a quote missing to end a value and in the next line there's again a quoted value Dotenv will run into an infinite loop. An .env file with the following content will result in this error:
```
FOO="foo
BAR="bar"
```
See #34642 for more details.

Commits
-------

eb69e135b2 [Dotenv] Fixed infinite loop with missing quote followed by quoted value
2020-01-08 18:02:35 +01:00
Nicolas Grekas
fd19bd7816 bug #35239 [Security\Http] Prevent canceled remember-me cookie from being accepted (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security\Http] Prevent canceled remember-me cookie from being accepted

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

`RememberMeServices::autoLogin()` only checks that the cookie exists in `$request->cookies` while `loginFail()` only alter `$request->attributes` (which allows child implementations to read the canceled cookie for e.g. removing a persistent one).
This makes `autoLogin()` checks for `request->attributes` first, which fixes the linked issue.

Failure expected on deps=high build.

Commits
-------

9b711b87fe [Security] Prevent canceled remember-me cookie from being accepted
2020-01-08 18:02:00 +01:00
Nicolas Grekas
0c320febe1 [Debug] fix ClassNotFoundFatalErrorHandler 2020-01-08 17:36:15 +01:00
Thomas Calvet
3a840a9796 [Routing] Fix using a custom matcher & generator dumper class 2020-01-08 15:00:15 +01:00
Grégoire Pineau
4af513d449 [Console] Add SingleCommandApplication to ease creation of Single Command Application
```
<?php

require __DIR__.'/vendor/autoload.php';

use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\SingleCommandApplication;

(new SingleCommandApplication())
    ->setName('My Super Command') // Optional
    ->setVersion('1.0.0') // Optional
    ->setProcessTitle('my_proc_title') // Optional
    ->addArgument('who', InputArgument::OPTIONAL, 'Who', 'World')  // Optional
    ->setCode(function(InputInterface $input, OutputInterface $output): int {
        $output->writeln(sprintf('Hello %s!', $input->getArgument('who')));

        return 0;
    })
    ->run()
;

```
2020-01-08 12:40:31 +01:00
Islam93
b3a2173c8e [DI] deferred exceptions in ResolveParameterPlaceHoldersPass 2020-01-08 14:20:51 +03:00
Philippe Segatori
b9931f571c [Notifier] Add more specific types at documentation level when php engine can't 2020-01-08 10:13:26 +01:00
Loïck Piera
7f2cef759c
Add support for safe preference - RFC8674 2020-01-07 23:59:55 +01:00
Bastien Jaillot
6449f9299c [Serializer] Fix cache in MetadataAwareNameConverter
`isset` is used to test existence of values that is
`null` by default, which result to always bypass the cache
and force to do the calculate all the time.

This is a critical perf improvement in prod mode for an api.

Ref #35085
2020-01-07 23:30:39 +01:00
naitsirch
eb69e135b2 [Dotenv] Fixed infinite loop with missing quote followed by quoted value
If there's a quote missing to end a value and in the next line there's again a quoted value Dotenv will run into an infinite loop. An .env file with the following content will result in this error:
```
FOO="foo
BAR="bar"
```
See #34642 for more details.
2020-01-07 21:29:45 +01:00
Igor Tarasov
08c1481b88
[HttpClient] Added missing sprintf
It was supposed to be there.
2020-01-07 23:22:51 +03:00
Fabien Potencier
20bf17f6ad feature #35104 [Messenger] Log sender alias in SendMessageMiddleware (ruudk)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Messenger] Log sender alias in SendMessageMiddleware

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

This makes it easier to read which sender alias was used.

```diff
- Sending message Domain\Event\PaymentFlow\PaymentFlowFailedEvent with Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransport
+ Sending message Domain\Event\PaymentFlow\PaymentFlowFailedEvent with async sender using Symfony\Component\Messenger\Transport\Doctrine\DoctrineTransport
```

Commits
-------

4e6626ca63 Log sender alias in SendMessageMiddleware
2020-01-07 20:50:54 +01:00
Fabien Potencier
290ce00f96 bug #35243 [HttpKernel] release lock explicitly (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] release lock explicitly

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

Commits
-------

6fb55812ab [HttpKernel] release lock explicitly
2020-01-07 20:30:23 +01:00
Fabien Potencier
47a866bf7b bug #35150 [Messenger] Added check if json_encode succeeded (toooni)
This PR was squashed before being merged into the 4.3 branch (closes #35150).

Discussion
----------

[Messenger] Added check if json_encode succeeded

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

Similar PR as https://github.com/symfony/symfony/pull/35137 but for branch 4.3.

When trying to add a message to redis transport which can not be encoded with `json_encode` there is now a `TransportException` containing the `json_last_error_msg` as the message.
I had an issue where I tried to send an email through messenger by symfony mailer which contains a pdf attachment. Instead of an error while sending i got an error `Encoded envelope should have at least a "body"` which happened because the encoded message was `false`.

This is not exactly a bugfix, but IMO also not a feature worth being mentioned in the changelog so I am not sure I've filled out the Q/A correctly.

Commits
-------

c2bdc4c4d3 [Messenger] Added check if json_encode succeeded
2020-01-07 20:21:24 +01:00
Toni Rudolf
c2bdc4c4d3 [Messenger] Added check if json_encode succeeded 2020-01-07 20:21:19 +01:00
Toni Rudolf
a16a574ca8 [Messenger] Added check if json_encode succeeded 2020-01-07 20:20:25 +01:00
Fabien Potencier
9e7a4102ad bug #35245 [HttpClient] fix exception in case of PSR17 discovery failure (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix exception in case of PSR17 discovery failure

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

On symfony.com, we need to use HTTPlug for 3rd party libs. When `nyholm/psr7` is not installed, we currently see an exception saying `No HTTPlug clients found.` from `HttpClientDiscovery`.

This fixes the message by correctly suggesting `nyholm/psr7` instead, since there *is* an HTTPlug client: `HttplugClient` from our HttpClient component.

It's quite unfortunate that `guzzle/psr7` provides no PSR17 factory yet, because that would have solved some part of this deps mess. /cc @Nyholm @sagikazarmark FYI
Note that https://packagist.org/providers/psr/http-factory-implementation lists `guzzle/psr7` but this is a wrong solution: no tagged release of it is PSR17-compatible, which means installing it doesn't solve the issue.

Commits
-------

96e70a4080 [HttpClient] fix exception in case of PSR17 discovery failure
2020-01-07 20:17:11 +01:00
Fabien Potencier
ada4c56a91 bug #35244 [Cache] fix processing chain adapter based cache pool (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] fix processing chain adapter based cache pool

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

Commits
-------

8d7fa32d15 fix processing chain adapter based cache pool
2020-01-07 20:15:45 +01:00
Fabien Potencier
c29b2a11d4 feature #35205 [Form] derive the view timezone from the model timezone (xabbuh)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Form] derive the view timezone from the model timezone

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

Commits
-------

ef5835d833 derive the view timezone from the model timezone
2020-01-07 20:12:15 +01:00
Fabien Potencier
de34f229a9 minor #35213 [Security\Guard] Fix missing typehints (chalasr)
This PR was merged into the 4.3 branch.

Discussion
----------

[Security\Guard] Fix missing typehints

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

Commits
-------

2ef8771ad7 [Security\Guard] Fix missing typehints
2020-01-07 20:10:35 +01:00
Mohamed Gamal
3e0c98836e [String] add test case for unwrap method 2020-01-07 20:08:50 +01:00
Nicolas Grekas
96e70a4080 [HttpClient] fix exception in case of PSR17 discovery failure 2020-01-07 13:55:38 +01:00
Nicolas Grekas
ffd5d12045 bug #35225 [DependencyInjection] Handle ServiceClosureArgument for callable in container linting (shieldo)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Handle ServiceClosureArgument for callable in container linting

| Q             | A
| ------------- | ---
| Branch?       | 4.4 (+)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | (none)
| License       | MIT

Making use of `ServiceClosureArgument` instances in service definitions was not accounted for in container linting when a service type-hints for `callable` in an argument - adding this check ensures that `ServiceClosureArgument` instances are recognised correctly as callables (once they are resolved).

Commits
-------

e48829e9b6 [DependencyInjection] Handle ServiceClosureArgument for callable in container linting
2020-01-07 11:57:32 +01:00
Douglas Greenshields
e48829e9b6 [DependencyInjection] Handle ServiceClosureArgument for callable in container linting 2020-01-07 11:57:22 +01:00
Christian Flothmann
8d7fa32d15 fix processing chain adapter based cache pool 2020-01-07 11:39:48 +01:00
Nicolas Grekas
6fb55812ab [HttpKernel] release lock explicitly 2020-01-07 11:19:31 +01:00
Robin Chalas
9b711b87fe [Security] Prevent canceled remember-me cookie from being accepted 2020-01-06 22:59:17 +01:00
Nicolas Grekas
b1bee60119 Merge branch '5.0'
* 5.0:
  Fix closing tag in mailer collector template
  [Notifier] Fix two minor issues
  [HttpClient] Don't read from the network faster than the CPU can deal with
  [DI] DecoratorServicePass should keep container.service_locator on the decorated definition
2020-01-06 14:05:24 +01:00
Nicolas Grekas
8c9e27834d Merge branch '4.4' into 5.0
* 4.4:
  Fix closing tag in mailer collector template
  [HttpClient] Don't read from the network faster than the CPU can deal with
  [DI] DecoratorServicePass should keep container.service_locator on the decorated definition
2020-01-06 14:04:40 +01:00
Nicolas Grekas
fb2d2577d9 Merge branch '4.3' into 4.4
* 4.3:
  [HttpClient] Don't read from the network faster than the CPU can deal with
  [DI] DecoratorServicePass should keep container.service_locator on the decorated definition
2020-01-06 13:57:54 +01:00
Nicolas Grekas
f9b36c754d bug #35223 [HttpClient] Don't read from the network faster than the CPU can deal with (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] Don't read from the network faster than the CPU can deal with

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

Something I spotted while working on #35115: both the curl and native clients don't play well with heavily compressed HTTP streams: they decompress faster than userland can process chunks.

The attached patch moves the decompression logic to the chunk generator. This means internally we only deal with raw compressed chunks, and they are decompressed only when passing the value to userland.

Commits
-------

ac3d77a76a [HttpClient] Don't read from the network faster than the CPU can deal with
2020-01-06 13:56:11 +01:00
Thomas Calvet
4f80d4d639 [Notifier] Fix two minor issues 2020-01-06 11:24:48 +01:00
Thomas Calvet
d0dacf51e1 [Notifier] Remove superfluous parameters in *Message::fromNotification() 2020-01-06 11:21:21 +01:00
Nicolas Grekas
ac3d77a76a [HttpClient] Don't read from the network faster than the CPU can deal with 2020-01-06 10:53:56 +01:00
Maciej Malarz
99dab87ada [DI] DecoratorServicePass should keep container.service_locator on the decorated definition 2020-01-04 20:22:46 +01:00
Robin Chalas
2ef8771ad7 [Security\Guard] Fix missing typehints 2020-01-04 19:57:41 +01:00
Chris Tanaskoski
e2c2397f1e [HttpClient] In StreamWrapper::createResource use the more efficient Response::toStream method if safe and available 2020-01-04 15:45:34 +01:00
Nicolas Grekas
e9f0cfe9db Merge branch '5.0'
* 5.0: (31 commits)
  [HttpClient] NativeHttpClient should not send >1.1 protocol version
  [HttpClient] fix support for non-blocking resource streams
  [Mailer] Make sure you can pass custom headers to Mailgun
  [Mailer] Remove line breaks in email attachment content
  Update links to documentation
  [Validator] Add the missing translations for the Arabic (ar) locale
  ensure to expect no validation for the right reasons
  [Security-Guard] fixed 35203 missing name tag in param docblock
  [HttpClient] fix casting responses to PHP streams
  [PhpUnitBridge] Add test case for @expectedDeprecation annotation
  [PhpUnitBridge][SymfonyTestsListenerTrait] Remove $testsWithWarnings stack
  [FrameworkBundle] Fix getUser() phpdoc in AbstractController
  [Mailer] Fix addresses management in Sendgrid API payload
  [Mailer][MailchimpBridge] Fix missing attachments when sending via Mandrill API
  [Mailer][MailchimpBridge] Fix incorrect sender address when sender has name
  [HttpClient] fix capturing SSL certificates with NativeHttpClient
  Update year in license files
  Update year in license files
  [TwigBridge][Form] Added missing help messages in form themes
  Update year in license files
  ...
2020-01-04 15:20:45 +01:00
Nicolas Grekas
f673cdc6e2 minor #35158 Update year in license files (rosier)
This PR was merged into the 5.0 branch.

Discussion
----------

Update year in license files

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

Happy new year Notifier and String

Commits
-------

ef4426ae87 Update year in license files
2020-01-04 15:09:07 +01:00
Nicolas Grekas
581b439931 Merge branch '4.4' into 5.0
* 4.4: (26 commits)
  [HttpClient] NativeHttpClient should not send >1.1 protocol version
  [HttpClient] fix support for non-blocking resource streams
  [Mailer] Make sure you can pass custom headers to Mailgun
  [Mailer] Remove line breaks in email attachment content
  Update links to documentation
  [Validator] Add the missing translations for the Arabic (ar) locale
  ensure to expect no validation for the right reasons
  [Security-Guard] fixed 35203 missing name tag in param docblock
  [HttpClient] fix casting responses to PHP streams
  [PhpUnitBridge] Add test case for @expectedDeprecation annotation
  [PhpUnitBridge][SymfonyTestsListenerTrait] Remove $testsWithWarnings stack
  [Mailer] Fix addresses management in Sendgrid API payload
  [Mailer][MailchimpBridge] Fix missing attachments when sending via Mandrill API
  [Mailer][MailchimpBridge] Fix incorrect sender address when sender has name
  [HttpClient] fix capturing SSL certificates with NativeHttpClient
  Update year in license files
  [TwigBridge][Form] Added missing help messages in form themes
  Update year in license files
  Update year in license files
  fix version when "anonymous: lazy" was introduced
  ...
2020-01-04 15:08:26 +01:00
Nicolas Grekas
9d4c98ee17 bug #35209 [HttpClient] fix support for non-blocking resource streams (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix support for non-blocking resource streams

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

Commits
-------

c651f63813 [HttpClient] fix support for non-blocking resource streams
2020-01-04 15:05:21 +01:00
Nicolas Grekas
75c24bbdde Merge branch '4.3' into 4.4
* 4.3:
  [HttpClient] NativeHttpClient should not send >1.1 protocol version
2020-01-04 15:04:37 +01:00
Nicolas Grekas
ccfc4b67b3 bug #35210 [HttpClient] NativeHttpClient should not send >1.1 protocol version (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] NativeHttpClient should not send >1.1 protocol version

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

Commits
-------

8b61c95685 [HttpClient] NativeHttpClient should not send >1.1 protocol version
2020-01-04 15:04:26 +01:00
Nicolas Grekas
8b61c95685 [HttpClient] NativeHttpClient should not send >1.1 protocol version 2020-01-04 15:00:37 +01:00
Nicolas Grekas
c651f63813 [HttpClient] fix support for non-blocking resource streams 2020-01-04 14:51:57 +01:00
Nyholm
43c1e77a88 [Mailer] Make sure you can pass custom headers to Mailgun 2020-01-04 14:10:16 +01:00
Nicolas Grekas
6f6976a192 minor #35157 Update year in license files (rosier)
This PR was merged into the 4.4 branch.

Discussion
----------

Update year in license files

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

Happy new year ErrorHandler

Commits
-------

500a075673 Update year in license files
2020-01-04 14:07:55 +01:00
Nicolas Grekas
c000577edb Merge branch '4.3' into 4.4
* 4.3:
  [Mailer] Remove line breaks in email attachment content
  Update links to documentation
  [Validator] Add the missing translations for the Arabic (ar) locale
  ensure to expect no validation for the right reasons
  [PhpUnitBridge] Add test case for @expectedDeprecation annotation
  [PhpUnitBridge][SymfonyTestsListenerTrait] Remove $testsWithWarnings stack
  [Mailer][MailchimpBridge] Fix missing attachments when sending via Mandrill API
  [Mailer][MailchimpBridge] Fix incorrect sender address when sender has name
  [HttpClient] fix capturing SSL certificates with NativeHttpClient
  [TwigBridge][Form] Added missing help messages in form themes
  Update year in license files
  Update year in license files
  [HttpClient] fix typo
  [Console][FormatterHelper] Use helper strlen statically and remove duplicated code
  [Routing] Fix i18n routing when the url contains the locale
  Fix BC issue in phpDoc Reflection library
  [Translator] Performance improvement in MessageCatalogue and catalogue operations.
2020-01-04 14:00:46 +01:00
Nicolas Grekas
eb5171f059 bug #33672 [Mailer] Remove line breaks in email attachment content (Stuart Fyfe)
This PR was squashed before being merged into the 4.3 branch.

Discussion
----------

[Mailer] Remove line breaks in email attachment content

Line breaks are not allowed in attachment content when sending over the
API.

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #33671, Closes #32645
| License       | MIT
| Doc PR        |

This is a fix for #33671. Send grid's API throws a 400 error when sending email attachments with default base64 encoding.
Removing the line breaks resolves this issue.

Commits
-------

a28a7f9dee [Mailer] Remove line breaks in email attachment content
2020-01-04 13:46:16 +01:00
Stuart Fyfe
a28a7f9dee [Mailer] Remove line breaks in email attachment content 2020-01-04 13:45:40 +01:00
Nicolas Grekas
423d3ddf05 bug #35101 [Routing] Fix i18n routing when the url contains the locale (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] Fix i18n routing when the url contains the locale

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

This PR fixes different scenarios with i18n routing.

Commits
-------

cd40bb8604 [Routing] Fix i18n routing when the url contains the locale
2020-01-04 13:43:28 +01:00
Nicolas Grekas
6b2f4e6126 bug #35195 [HttpClient] fix casting responses to PHP streams (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix casting responses to PHP streams

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

This patch is required to properly deal with casting responses to PHP streams.
This changes a public method, but we can't expect anyone to override it as it's totally internal.
Found when working on (and required by) #35115

Commits
-------

35c08ef395 [HttpClient] fix casting responses to PHP streams
2020-01-04 13:29:59 +01:00
Nicolas Grekas
cf83c608d3 bug #35168 [HttpClient] fix capturing SSL certificates with NativeHttpClient (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix capturing SSL certificates with NativeHttpClient

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

Commits
-------

234589a753 [HttpClient] fix capturing SSL certificates with NativeHttpClient
2020-01-04 13:28:10 +01:00
Nicolas Grekas
d394214b72 minor #35155 Update year in license files (rosier)
This PR was merged into the 4.3 branch.

Discussion
----------

Update year in license files

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

Happy new year new components ;-)

Commits
-------

0d7a8bdd0a Update year in license files
2020-01-04 13:25:35 +01:00
Nicolas Grekas
a56c3ef85c Merge branch '3.4' into 4.3
* 3.4:
  Update links to documentation
  [Validator] Add the missing translations for the Arabic (ar) locale
  ensure to expect no validation for the right reasons
  [PhpUnitBridge] Add test case for @expectedDeprecation annotation
  Update year in license files
  [Console][FormatterHelper] Use helper strlen statically and remove duplicated code
  Fix BC issue in phpDoc Reflection library
  [Translator] Performance improvement in MessageCatalogue and catalogue operations.
2020-01-04 13:24:57 +01:00
Shaharia Azam
5cac29571b Update links to documentation 2020-01-04 13:05:51 +01:00
Nicolas Grekas
28e502ec49 bug #35134 [PropertyInfo] Fix BC issue in phpDoc Reflection library (jaapio)
This PR was merged into the 3.4 branch.

Discussion
----------

[PropertyInfo] Fix BC issue in phpDoc Reflection library

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

The used phpDocumentor library DocBlockReflection contained a BC break
that broke this component. The patch was applied in the recently released v4.3.4
version. But since it is unclear how long this issue existed it is not possible
to exclude a certain version. Therefor also `\RuntimeExpception` needs to be caught.

The BC break is possibly caused by a change in the TypeResolver library used by the
DocBlockReflection which is now supporting the more popular generics notation for arrays.

This PR might need some tests but the current test cases are not very clear to me. Instead of patching the code we could also try to ban the broken versions of the used phpdoc libraries, but that would require much more testing, and doesn't really add any value. Especially because the DocBlockReflection and TypeResolver are used by over half a million projects. It would raise more questions than just patching the behavior of the PropertyInfo component.

We are sorry that this issue slipt through our QA pipeline. The linked issue already showed that the issue is now fixed by just doing a `composer update` but it is not very convenient to leave this known issue in symfony.

Commits
-------

bad07ec557 Fix BC issue in phpDoc Reflection library
2020-01-04 13:01:51 +01:00
Ahmed Raafat
da117714fd [Validator] Add the missing translations for the Arabic (ar) locale 2020-01-04 13:00:45 +01:00
Nicolas Grekas
9392f76519 minor #35207 [Form] ensure to expect no validation for the right reasons (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] ensure to expect no validation for the right reasons

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

Commits
-------

8d46f95f4c ensure to expect no validation for the right reasons
2020-01-04 12:55:48 +01:00
Christian Flothmann
8d46f95f4c ensure to expect no validation for the right reasons 2020-01-04 10:13:45 +01:00
Christian Flothmann
ef5835d833 derive the view timezone from the model timezone 2020-01-04 09:47:43 +01:00
Jesse Rushlow
555189ae2c
[Security-Guard] fixed 35203 missing name tag in param docblock
Added missing $credentials name tag to @param for getPassword()
to resolve PHPStan error and comply with the docBlock spec.
2020-01-03 18:06:56 -05:00
Nicolas Grekas
35c08ef395 [HttpClient] fix casting responses to PHP streams 2020-01-03 19:18:19 +01:00
Guillaume Verstraete
36eeba7a3a [Mailer] Fix addresses management in Sendgrid API payload 2020-01-03 02:28:31 +01:00
Fabien Potencier
e348513157 bug #35173 [Mailer][MailchimpBridge] Fix missing attachments when sending via Mandrill API (vilius-g)
This PR was merged into the 4.3 branch.

Discussion
----------

[Mailer][MailchimpBridge] Fix missing attachments when sending via Mandrill API

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

Previous code tries to pass attachments to API, but uses incorrect structure and as a result all attachments are missing when the email is sent.

This also adds previously missing attachment names.

Commits
-------

7b1bbb6190 [Mailer][MailchimpBridge] Fix missing attachments when sending via Mandrill API
2020-01-02 19:35:45 +01:00
Vilius Grigaliūnas
7b1bbb6190 [Mailer][MailchimpBridge] Fix missing attachments when sending via Mandrill API
Previous code tries to pass attachments to API, but uses incorrect structure and as a result all attachments are missing when the email is sent.
2020-01-02 17:40:32 +02:00
Vilius Grigaliūnas
9e12a6dcda [Mailer][MailchimpBridge] Fix incorrect sender address when sender has name
This fixes the same problem as https://github.com/symfony/symfony/commit/6dbac13a07c23f321b04489b6a9773 but for HTTP transport.
2020-01-02 17:01:57 +02:00
Thomas Calvet
4f642ad624 [DependencyInjection][PhpDumper] Dump root namespace array_key_exists 2020-01-02 11:48:57 +01:00
Nicolas Grekas
234589a753 [HttpClient] fix capturing SSL certificates with NativeHttpClient 2020-01-02 11:45:17 +01:00
Jan Rosier
ef4426ae87 Update year in license files 2020-01-01 15:53:07 +01:00
Jan Rosier
500a075673 Update year in license files 2020-01-01 15:47:03 +01:00
Jan Rosier
0d7a8bdd0a Update year in license files 2020-01-01 12:51:43 +01:00
Jan Rosier
889a110e74 Update year in license files 2020-01-01 12:03:25 +01:00
Nicolas Grekas
8e9aafc84f bug #35125 [Translator] fix performance issue in MessageCatalogue and catalogue operations (ArtemBrovko)
This PR was merged into the 3.4 branch.

Discussion
----------

[Translator] fix performance issue in MessageCatalogue and catalogue operations

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

In our project we use lots of catalogue operations during importing of translations to our system and we ran into performance issue. Code profiler showed lots or `array_replace` calls in  [MessageCatalogue::add](https://github.com/symfony/symfony/blob/3.4/src/Symfony/Component/Translation/MessageCatalogue.php#L128) method. This method is actually called by [MessageCatalogue::set](https://github.com/symfony/symfony/blob/3.4/src/Symfony/Component/Translation/MessageCatalogue.php#L70), which is quite an overkill, because `MessageCatalogue::set` is meant to set only one translation at a time. Method was reworked. `MergeOperation` and `TargetOperation` was reworked as well to use this improved `MessageCatalogue::set` method instead of constructing array with only one translation and passing it to `MessageCatalogue::add` method.

Table shows execution time before and after

|  | Time in seconds (avg. of 10 executions)
----------- | ------
Before | 50
After | 8

Looks like 4.* and 5.* versions can also be improved by the same changes.
<!--
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/roadmap):
 - 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 master.
-->

Commits
-------

5179af4796 [Translator] Performance improvement in MessageCatalogue and catalogue operations.
2019-12-31 15:31:48 +01:00
Emanuele Panzeri
879ba76a6a Fix Nexmo notifier bridge namespace 2019-12-31 15:16:53 +01:00
Nicolas Grekas
3a25878e98 [HttpClient] fix typo 2019-12-30 18:19:47 +01:00
Thomas Calvet
f0d227db2f [Console][FormatterHelper] Use helper strlen statically and remove duplicated code 2019-12-29 18:51:53 +01:00
Thomas Calvet
cd40bb8604 [Routing] Fix i18n routing when the url contains the locale 2019-12-29 11:48:40 +01:00
Jaapio
bad07ec557
Fix BC issue in phpDoc Reflection library
The used phpDocumentor library DocBlockReflection contained an BC break
that broke this component. The patch was applied in the recent released v4.3.4
version. But since it is unclear how long this issue existed it is not possible
to exclude a certain version. Therefor also `\RuntimeExpception` needs to be catched.

The BC break is possibly caused by a change in the TypeResolver library used by the
DocBlockReflection which is now supporting the more populair generics notation for arrays.
2019-12-28 22:02:19 +01:00
Nicolas Grekas
aa9ccf8825 Merge branch '5.0'
* 5.0:
  [DI] fix merge
2019-12-28 16:31:23 +01:00
Nicolas Grekas
291d1f3a84 [DI] fix merge 2019-12-28 16:31:08 +01:00
Nicolas Grekas
392d0b01f3 Merge branch '5.0'
* 5.0: (24 commits)
  Removing unused variable
  Fixed #35084
  Add missing use statement
  [HttpClient] fix scheduling pending NativeResponse
  do not overwrite variable value
  [Profiler] wording
  Use spaces correctly to display options in DebugCommand
  Add supported schemes doc blocks type
  X-Accel Nginx URL updated
  ticket-30197 [Validator] Add the missing translations for the Chinese (Taiwan) ("zh_TW") locale
  Fixed test added in #35022
  Use locale_parse for computing fallback locales
  [Console] Fix filtering out identical alternatives when there is a command loader
  [String][UnicodeString] Remove unneeded flag in chunk regex pattern
  add note about HTTP status code change
  Migrate server:log command away from WebServerBundle
  [DependencyInjection][CheckTypeDeclarationsPass] Handle \Closure for callable
  [Security] Fix missing defaults for auto-migrating encoders
  bumped Symfony version to 5.0.3
  updated VERSION for 5.0.2
  ...
2019-12-28 16:12:20 +01:00
Alireza Mirsepassi
12d3aa80ec Removing unused variable 2019-12-28 16:11:31 +01:00
Nicolas Grekas
725da2f218 Merge branch '4.4' into 5.0
* 4.4:
  Fixed #35084
  Add missing use statement
  [HttpClient] fix scheduling pending NativeResponse
  do not overwrite variable value
  [Profiler] wording
  Use spaces correctly to display options in DebugCommand
  X-Accel Nginx URL updated
  ticket-30197 [Validator] Add the missing translations for the Chinese (Taiwan) ("zh_TW") locale
  Fixed test added in #35022
  Use locale_parse for computing fallback locales
  [Console] Fix filtering out identical alternatives when there is a command loader
  add note about HTTP status code change
  Migrate server:log command away from WebServerBundle
  [DependencyInjection][CheckTypeDeclarationsPass] Handle \Closure for callable
  [Security] Fix missing defaults for auto-migrating encoders
  bumped Symfony version to 4.4.3
  updated VERSION for 4.4.2
  updated CHANGELOG for 4.4.2
2019-12-28 16:09:49 +01:00
Nicolas Grekas
47f7cdc848 Merge branch '4.3' into 4.4
* 4.3:
  Fixed #35084
  Add missing use statement
  [HttpClient] fix scheduling pending NativeResponse
  do not overwrite variable value
  [Profiler] wording
  Use spaces correctly to display options in DebugCommand
  X-Accel Nginx URL updated
  ticket-30197 [Validator] Add the missing translations for the Chinese (Taiwan) ("zh_TW") locale
  Fixed test added in #35022
  Use locale_parse for computing fallback locales
  [Console] Fix filtering out identical alternatives when there is a command loader
2019-12-28 16:00:14 +01:00
Artem Brovko
5179af4796 [Translator] Performance improvement in MessageCatalogue and catalogue operations. 2019-12-28 16:59:49 +02:00
Nicolas Grekas
f3d8fd2521 bug #35120 [HttpClient] fix scheduling pending NativeResponse (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix scheduling pending NativeResponse

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

There must be one pending list per `ResponseStream` instance.
Currently, we start unrelated responses and this can lead to broken iterators when the unrelated response throws because it is a 3/4/5xx.

Commits
-------

a90a6c9c48 [HttpClient] fix scheduling pending NativeResponse
2019-12-28 15:54:06 +01:00
Nicolas Grekas
b6403d88c2 bug #35117 [Cache] do not overwrite variable value (xabbuh)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] do not overwrite variable value

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

Commits
-------

e379dbbf21 do not overwrite variable value
2019-12-28 15:53:10 +01:00
Dmitriy Derepko
340bb145d9 Fixed #35084 2019-12-28 15:52:14 +01:00
Nicolas Grekas
af4f99f52b Merge branch '3.4' into 4.3
* 3.4:
  Add missing use statement
  [Profiler] wording
  X-Accel Nginx URL updated
  ticket-30197 [Validator] Add the missing translations for the Chinese (Taiwan) ("zh_TW") locale
  Fixed test added in #35022
  Use locale_parse for computing fallback locales
  [Console] Fix filtering out identical alternatives when there is a command loader
2019-12-28 15:48:01 +01:00
Olivier Dolbeau
6fd266dba6 Add missing use statement 2019-12-27 12:18:21 +01:00
Nicolas Grekas
a90a6c9c48 [HttpClient] fix scheduling pending NativeResponse 2019-12-27 12:01:41 +01:00
Christian Flothmann
e379dbbf21 do not overwrite variable value 2019-12-27 10:03:19 +01:00
Fabien Potencier
cee47cec05 bug #35103 [Translation] Use locale_parse for computing fallback locales (alanpoulain)
This PR was merged into the 3.4 branch.

Discussion
----------

[Translation] Use `locale_parse` for computing fallback locales

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

As done in this PR https://github.com/symfony/symfony/pull/24157 for the `Intl` component, the `Translation` component should use `locale_parse` as well when available.

It will allow to manage [BCP 47](https://tools.ietf.org/html/bcp47) locales, which is why it is considered a bugfix ([locale_set_default](https://www.php.net/manual/en/locale.setdefault.php) is using BCP 47 compliant locale).

As done with the forementioned PR, there is also a fallback to make it work with `-`.

Sadly, I think it will create some conflicts when merging it upstream since the modified code has changed little by little.

Commits
-------

3657c0e664 Use locale_parse for computing fallback locales
2019-12-27 09:11:50 +01:00
Robin Chalas
fd81bb8137 bug #35060 [Security] Fix missing defaults for auto-migrating encoders (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Fix missing defaults for auto-migrating encoders

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

Commits
-------

665ef06013 [Security] Fix missing defaults for auto-migrating encoders
2019-12-26 20:28:20 +01:00
tien.xuan.vo
75387433be [Console] Improve speed NullOutput 2019-12-26 16:51:30 +07:00
Nicolas Grekas
b138fbcb89 feature #34986 [Form] Added default inputmode attribute to Search, Email and Tel form types (fre5h)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[Form] Added default `inputmode` attribute to Search, Email and Tel form types

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

There is an HTML5 attribute `inputmode`. See https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode It is supported by most of mobile browsers.
There are such supported values for `inputmode`:
* `none`
* `text` (default value)
* `decimal`
* `numeric `
* `tel`
* `search`
* `email`
* `url`

The `url` inputmode is already implemented in UrlType https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Extension/Core/Type/UrlType.php#L39

I propose to add `tel`, `search`, `email` as default form view attribute to the relevant form types. Why only these three? `url` is already implemented, `none` makes no sense as default value for any form type, `text` is a default input type for any browser.

`decimal` and `numeric` has different behaviour on iOS. iOS doesn't show `-` (minus) sign on keyboard for these input modes. Of course in cases, when only positive numbers are expected, it is normal. But it is not suitable as default value in Symfony form type. Developers can add this attribute manually in their forms, if they need only positive numbers.

But `search`, `tel` and `email` input modes don't have problems and can be added as default attributes to Symfony form types. This will improve user experience, while using web-sites developed on Symfony on mobile devices. I add it into the *Type classes inside `buildView` method, so it will be possible to override this parameter if needed.

If you are interested in how it looks like in mobile browsers, you can open this link https://inputmodes.com/ on you mobile device.

Here are screenshots, how mobile keyboard looks like on Android and iOS with using `inputmode` attribute.

## `tel` inputmode
![image](https://user-images.githubusercontent.com/815865/70866507-45256480-1f73-11ea-9e82-320ef0b978ab.png)

## `email` inputmode
![image](https://user-images.githubusercontent.com/815865/70866502-3a6acf80-1f73-11ea-8f4c-3e7faca47f54.png)

## `search` inputmode
![image](https://user-images.githubusercontent.com/815865/70866498-2cb54a00-1f73-11ea-9fdc-2bb8abed107d.png)

Commits
-------

dbc500feb7 [Form] Added default `inputmode` attribute to Search, Email and Tel form types
2019-12-26 10:32:31 +01:00
Artem Henvald
dbc500feb7 [Form] Added default inputmode attribute to Search, Email and Tel form types 2019-12-26 10:32:18 +01:00
Thomas Calvet
c369598b05 [String] Add the reverse method 2019-12-26 10:01:21 +01:00
Nicolas Grekas
aac9ca2a88 bug #35067 [DependencyInjection][CheckTypeDeclarationsPass] Handle \Closure for callable (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection][CheckTypeDeclarationsPass] Handle \Closure for callable

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

Commits
-------

d6a7fbfbc3 [DependencyInjection][CheckTypeDeclarationsPass] Handle \Closure for callable
2019-12-26 09:58:10 +01:00
Nicolas Grekas
cdaebf6fb8 minor #35079 [Serializer] add array cache in front of serializer cache (bastnic)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Serializer] add array cache in front of serializer cache

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

This is another implementation of #35041, after #35046.

The DI solution is cleaner, but 10ms slower on my scenario (13 vs 3) and this data is not supposed to change at all (even in the original method there is a local cache).

Diff from master (without warmup):

![image](https://user-images.githubusercontent.com/84887/71313592-2cb5be00-243b-11ea-8983-b30abb7d0698.png)

Diff form master (with warmup):

![image](https://user-images.githubusercontent.com/84887/71313633-8e762800-243b-11ea-8044-003c810d3c0b.png)

Diff from #35046:

![image](https://user-images.githubusercontent.com/84887/71313668-312ea680-243c-11ea-9768-8531f4f33f3c.png)

Ping @nicolas-grekas

Commits
-------

6ee306bf33 [Cache] add array cache in front of serializer cache
2019-12-26 09:39:22 +01:00
Ruud Kamphuis
1c92e9e2f1 Use spaces correctly to display options in DebugCommand 2019-12-26 09:29:54 +01:00
Nicolas Grekas
9095838d57 minor #35093 [String][UnicodeString] Remove unneeded flag in chunk regex pattern (fancyweb)
This PR was merged into the 5.0 branch.

Discussion
----------

[String][UnicodeString] Remove unneeded flag in chunk regex pattern

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

The pattern cannot contain a `.`.

Commits
-------

dcb7c9a484 [String][UnicodeString] Remove unneeded flag in chunk regex pattern
2019-12-26 09:17:00 +01:00
Philippe Segatori
9bf46f88fb Add supported schemes doc blocks type 2019-12-26 09:06:53 +01:00
Shaharia Azam
4557221597 X-Accel Nginx URL updated
Obsolete URL has been updated
2019-12-26 09:05:33 +01:00
Islam93
36f07b7e09 ticket-30197 [Validator] Add the missing translations for the Chinese (Taiwan) ("zh_TW") locale 2019-12-26 09:01:24 +01:00
Nicolas Grekas
412fcf5463 minor #35056 Fixed test added in #35022 (GrahamCampbell)
This PR was merged into the 3.4 branch.

Discussion
----------

Fixed test added in #35022

| Q             | A
| ------------- | ---
| Branch?       | master for features / 3.4, 4.3, 4.4 or 5.0 for bug fixes <!-- see below -->
| Bug fix?      | yes/no
| New feature?  | yes/no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | yes/no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", if any -->
| 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/roadmap):
 - 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 master.
-->

Commits
-------

6eeec7c270 Fixed test added in #35022
2019-12-26 08:58:50 +01:00
Graham Campbell
6eeec7c270 Fixed test added in #35022 2019-12-26 08:58:28 +01:00
Ruud Kamphuis
4e6626ca63
Log sender alias in SendMessageMiddleware
This makes it easier to read which sender alias was used.
2019-12-25 15:44:46 +01:00
Alan Poulain
3657c0e664
Use locale_parse for computing fallback locales 2019-12-24 19:50:33 +01:00
Thomas Calvet
589e93e3b7 [Console] Fix filtering out identical alternatives when there is a command loader 2019-12-24 12:07:31 +01:00
Thomas Calvet
dcb7c9a484 [String][UnicodeString] Remove unneeded flag in chunk regex pattern 2019-12-23 19:25:43 +01:00
Bastien Jaillot
6ee306bf33 [Cache] add array cache in front of serializer cache 2019-12-22 10:07:48 +01:00
Thomas Calvet
d6a7fbfbc3 [DependencyInjection][CheckTypeDeclarationsPass] Handle \Closure for callable 2019-12-20 17:42:47 +01:00
Lynn
d3942cbe17 Use supportsClass where possible 2019-12-20 16:07:22 +01:00
Robin Chalas
665ef06013 [Security] Fix missing defaults for auto-migrating encoders 2019-12-19 23:42:08 +01:00
Fabien Potencier
10d26470bd bumped Symfony version to 5.0.3 2019-12-19 19:38:31 +01:00
Fabien Potencier
c57e7ad82a updated VERSION for 5.0.2 2019-12-19 19:35:03 +01:00
Fabien Potencier
6dc0c38351 bumped Symfony version to 4.4.3 2019-12-19 19:32:23 +01:00
Fabien Potencier
7fe9115db5 updated VERSION for 4.4.2 2019-12-19 17:23:40 +01:00
Nicolas Grekas
4e5b15353d Merge branch '5.0'
* 5.0:
  [DependencyInjection] Fix binding tagged services to containers
  [ProxyManager] fix generating proxies for root-namespaced classes
  [DoctrineBridge] Cleanup 3.4 legacy
  [DI] skip looking for config class when the extension class is anonymous
  Fix typo
  Docs - Update debug section of UPGRADE guides for 4.4 and 5.0 versions.
  Fix invalid typehint for subject in is_granted Twig function
  [Dotenv] FIX missing getenv
  [HttpFoundation] fix pdo session handler for sqlsrv
  [HttpClient][Psr18Client] Remove Psr18ExceptionTrait
  [HttpKernel] ignore failuresgenerated by opcache.restrict_api
2019-12-19 17:01:26 +01:00
Nicolas Grekas
582eb5c26b Merge branch '4.4' into 5.0
* 4.4:
  [DependencyInjection] Fix binding tagged services to containers
  [ProxyManager] fix generating proxies for root-namespaced classes
  [DI] skip looking for config class when the extension class is anonymous
  Fix typo
  Docs - Update debug section of UPGRADE guides for 4.4 and 5.0 versions.
  [Dotenv] FIX missing getenv
  [HttpFoundation] fix pdo session handler for sqlsrv
  [HttpClient][Psr18Client] Remove Psr18ExceptionTrait
  [HttpKernel] ignore failuresgenerated by opcache.restrict_api
2019-12-19 17:01:11 +01:00
Nicolas Grekas
1dc833d836 bug #35051 [DependencyInjection] Fix binding tagged services to containers (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Fix binding tagged services to containers

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

We missed this part in #33623

Commits
-------

9d48ba4f11 [DependencyInjection] Fix binding tagged services to containers
2019-12-19 17:00:02 +01:00
Nicolas Grekas
9d48ba4f11 [DependencyInjection] Fix binding tagged services to containers 2019-12-19 16:58:53 +01:00
Nicolas Grekas
c4ec3c24f2 Merge branch '4.3' into 4.4
* 4.3:
  [ProxyManager] fix generating proxies for root-namespaced classes
  [DI] skip looking for config class when the extension class is anonymous
  Fix typo
  [Dotenv] FIX missing getenv
  [HttpClient][Psr18Client] Remove Psr18ExceptionTrait
2019-12-19 16:57:49 +01:00
Nicolas Grekas
dfa118f253 Merge branch '3.4' into 4.3
* 3.4:
  [ProxyManager] fix generating proxies for root-namespaced classes
  [DI] skip looking for config class when the extension class is anonymous
  Fix typo
  [Dotenv] FIX missing getenv
2019-12-19 16:57:24 +01:00
Nicolas Grekas
135c6f7d9d bug #35039 [DI] skip looking for config class when the extension class is anonymous (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] skip looking for config class when the extension class is anonymous

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

Commits
-------

1c7eda4649 [DI] skip looking for config class when the extension class is anonymous
2019-12-19 16:52:25 +01:00
Nicolas Grekas
1c7eda4649 [DI] skip looking for config class when the extension class is anonymous 2019-12-19 11:27:02 +01:00
Fabien Potencier
5e9fa9d75e Fix typo 2019-12-19 10:48:27 +01:00
Fabien Potencier
bd9dc7c573 feature #35029 [DI] allow "." and "-" in env processor lines (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DI] allow "." and "-" in env processor lines

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

As explained in the linked issue, this is especially usefull with the `key` processor.

Commits
-------

231c505a47 [DI] allow "." and "-" in env processor lines
2019-12-19 08:07:55 +01:00
Nicolas Grekas
40c135125a bug #35021 [DI] Enable inline_class_loader in debug mode (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DI] Enable inline_class_loader in debug mode

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

Similar to https://github.com/symfony/recipes/pull/713
Check https://twitter.com/nicolasgrekas/status/929032213815005184
and https://github.com/symfony/symfony/pull/26276

Commits
-------

317ce6d16e [DI] Enable inline_class_loader in debug mode
2019-12-18 23:07:10 +01:00
Nicolas Grekas
b0eb6f36eb bug #35023 [HttpKernel] ignore failures generated by opcache.restrict_api (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] ignore failures generated by opcache.restrict_api

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

Commits
-------

e411b65dd0 [HttpKernel] ignore failuresgenerated by opcache.restrict_api
2019-12-18 22:42:09 +01:00
Nicolas Grekas
231c505a47 [DI] allow "." and "-" in env processor lines 2019-12-18 17:27:44 +01:00
Alexander McCullagh
9c5754acaa [Dotenv] FIX missing getenv 2019-12-18 16:41:13 +01:00
Saif Eddin G
776f649c61
[HttpFoundation] fix pdo session handler for sqlsrv 2019-12-18 16:15:58 +01:00
Thomas Calvet
c1746d8b14 [HttpClient][Psr18Client] Remove Psr18ExceptionTrait 2019-12-18 16:09:34 +01:00
Nicolas Grekas
e411b65dd0 [HttpKernel] ignore failuresgenerated by opcache.restrict_api 2019-12-18 15:43:30 +01:00
Nicolas Grekas
9960f3032a Merge branch '5.0'
* 5.0:
  [Config] improve perf of glob discovery when GLOB_BRACE is not available
  use utf8mb4_bin to align code with documentation
  [HttpClient] make pushed responses retry-able
  [VarDumper] ignore failing __debugInfo()
2019-12-18 14:50:41 +01:00
Nicolas Grekas
c048ea5de5 Merge branch '4.4' into 5.0
* 4.4:
  [Config] improve perf of glob discovery when GLOB_BRACE is not available
  use utf8mb4_bin to align code with documentation
  [HttpClient] make pushed responses retry-able
  [VarDumper] ignore failing __debugInfo()
2019-12-18 14:50:31 +01:00
Nicolas Grekas
d7a0679011 bug #35015 [Config] fix perf of glob discovery when GLOB_BRACE is not available (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Config] fix perf of glob discovery when GLOB_BRACE is not available

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

This PR implements a fast fallback implementation of GLOB_BRACE for musl-based libc, as found on Alpine. It is *not* a feature-complete fallback implementation. Implementing one would be [much more involving](https://github.com/zendframework/zend-stdlib/blob/master/src/Glob.php). But the provided implementation is good enough in practice IMHO, and the slow path is still used when not-covered glob patterns are used.

Here is the comparison:
![image](https://user-images.githubusercontent.com/243674/71022909-eb9f7000-2101-11ea-99f5-eab0286c77a3.png)

![image](https://user-images.githubusercontent.com/243674/71022899-e4786200-2101-11ea-8663-80c1674602db.png)

Commits
-------

8af6d86371 [Config] improve perf of glob discovery when GLOB_BRACE is not available
2019-12-18 14:46:16 +01:00
Nicolas Grekas
b450a2bed7 Merge branch '4.3' into 4.4
* 4.3:
  use utf8mb4_bin to align code with documentation
  [HttpClient] make pushed responses retry-able
  [VarDumper] ignore failing __debugInfo()
2019-12-18 14:41:29 +01:00
Nicolas Grekas
bbf7ed12b1 bug #35014 [HttpClient] make pushed responses retry-able (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] make pushed responses retry-able

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

This moves the PUSH matching logic down so that the curl handle of pushed responses can be properly configured. This should make pushed requests retry-able when they fail just after the push-promise frame.

Commits
-------

c2864f65ab [HttpClient] make pushed responses retry-able
2019-12-18 14:38:49 +01:00
Nicolas Grekas
026d57e196 Merge branch '3.4' into 4.3
* 3.4:
  use utf8mb4_bin to align code with documentation
  [VarDumper] ignore failing __debugInfo()
2019-12-18 14:36:54 +01:00
Nicolas Grekas
e85acddc9a bug #35010 [VarDumper] ignore failing __debugInfo() (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] ignore failing __debugInfo()

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

Commits
-------

eb2eb76d0e [VarDumper] ignore failing __debugInfo()
2019-12-18 14:29:30 +01:00
Robin Chalas
39bd706cbf feature #34548 Added access decision strategy to respect voter priority (aschempp)
This PR was squashed before being merged into the 5.1-dev branch (closes #34548).

Discussion
----------

Added access decision strategy to respect voter priority

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | _will happily do if this is of interest/to be merged 🙃_

The priority-based access decision strategy will decide based on the first voter that does not abstain from the decision. Security voters can be registered with priority (`PriorityTaggedServiceTrait`), so a voter with higher priority can overrule other voters.

In [Contao CMS](https://github.com/contao/contao), the core system should provide security voters that provide the "default permissions", but extensions/bundles can override almost anything and therefore need to be able to override the core decision. None of the existing strategies allow for something like that.

/ping @chalasr @Toflar @leofeyer @ausi
#SymfonyHackday

Commits
-------

0b8028a0ec Added access decision strategy to respect voter priority
2019-12-18 14:26:38 +01:00
Andreas Schempp
0b8028a0ec Added access decision strategy to respect voter priority 2019-12-18 14:26:30 +01:00
Nicolas Grekas
8af6d86371 [Config] improve perf of glob discovery when GLOB_BRACE is not available 2019-12-18 13:00:29 +01:00
Nicolas Grekas
317ce6d16e [DI] Enable inline_class_loader in debug mode 2019-12-18 12:53:53 +01:00
Ben Davies
3739ec9f29 use utf8mb4_bin to align code with documentation 2019-12-18 10:25:03 +00:00
Nicolas Grekas
c2864f65ab [HttpClient] make pushed responses retry-able 2019-12-17 17:19:12 +01:00
Nicolas Grekas
eb2eb76d0e [VarDumper] ignore failing __debugInfo() 2019-12-17 16:56:06 +01:00
Nicolas Grekas
76c98fda98 Merge branch '5.0'
* 5.0:
  [Console][QuestionHelper] Use string type declaration
2019-12-17 15:24:10 +01:00
Thomas Calvet
a594fe405b [Console][QuestionHelper] Use string type declaration 2019-12-17 14:20:22 +01:00
Nicolas Grekas
1b6c71200f Merge branch '5.0'
* 5.0:
  [DI] revert reordering of ResolveFactoryClassPass and AutowireRequiredMethodsPass in PassConfig
2019-12-17 13:18:30 +01:00
Nicolas Grekas
3c672bc923 Merge branch '4.4' into 5.0
* 4.4:
  [DI] revert reordering of ResolveFactoryClassPass and AutowireRequiredMethodsPass in PassConfig
2019-12-17 13:17:37 +01:00
Nicolas Grekas
32b09a8461 Merge branch '4.3' into 4.4
* 4.3:
  [DI] revert reordering of ResolveFactoryClassPass and AutowireRequiredMethodsPass in PassConfig
2019-12-17 13:17:04 +01:00
Nicolas Grekas
2b0f9d6bd9 [DI] revert reordering of ResolveFactoryClassPass and AutowireRequiredMethodsPass in PassConfig 2019-12-17 13:15:16 +01:00
Nicolas Grekas
8ffdef2958 Merge branch '5.0'
* 5.0:
  [DI] Service locators can't be decorated
  [HttpClient] force HTTP/1.1 when NTLM auth is used
  [Validation][FrameworkBundle] Allow EnableAutoMapping to work without auto-mapping namespaces
  [Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt
  [DI] fix auto-binding service providers to their service subscribers
  [Mailer] fixed undefined index when sending mail
2019-12-17 11:36:18 +01:00
Nicolas Grekas
3c348df73b Merge branch '4.4' into 5.0
* 4.4:
  [DI] Service locators can't be decorated
  [HttpClient] force HTTP/1.1 when NTLM auth is used
  [Validation][FrameworkBundle] Allow EnableAutoMapping to work without auto-mapping namespaces
  [Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt
  [DI] fix auto-binding service providers to their service subscribers
  [Mailer] fixed undefined index when sending mail
2019-12-17 11:33:13 +01:00
Nicolas Grekas
4b93c6210d Merge branch '4.3' into 4.4
* 4.3:
  [DI] Service locators can't be decorated
  [Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt
  [DI] fix auto-binding service providers to their service subscribers
2019-12-17 11:32:23 +01:00
Nicolas Grekas
91016348ba Merge branch '3.4' into 4.3
* 3.4:
  [Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt
2019-12-17 11:30:23 +01:00
Nicolas Grekas
8c74562dd8 bug #34998 [DI] fix auto-binding service providers to their service subscribers (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] fix auto-binding service providers to their service subscribers

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

Spotted during a workshop at SymfonyLive Sao Paulo if I recall well :)

Commits
-------

6c2ceb0c44 [DI] fix auto-binding service providers to their service subscribers
2019-12-17 11:27:58 +01:00
Nicolas Grekas
07bfe6bae5 bug #34954 [Mailer] Fixed undefined index when sending via Mandrill API (wulff)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Fixed undefined index when sending via Mandrill API

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

When a [Mandrill API send request](https://www.mandrillapp.com/api/docs/messages.JSON.html#method=send) is succesful, it returns an array of results, one for each recipient. To get rid of the undefined index error, we grab the message ID from the first recipient in the array.

Commits
-------

ef0aa4dc87 [Mailer] fixed undefined index when sending mail
2019-12-17 11:26:47 +01:00
Nicolas Grekas
672fbf5a2b bug #33670 [DI] Service locators can't be decorated (malarzm)
This PR was squashed before being merged into the 4.3 branch.

Discussion
----------

[DI] Service locators can't be decorated

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

This popped up while I was trying to update my work project as we have decorated the `messenger.receiver_locator` service. Not sure if this is a regression in DI or a change in messenger that caused the issue thus I'm not marking this as a BC break.

Exception while trying to compile the container:

```
Invalid definition for service "Symfony\Component\DependencyInjection\Tests\Compiler\DecoratedServiceLocator": an array of references is expected as first argument when the "container.service_locator" tag is set.
```

Expected result: service locator can be decorated.

Commits
-------

343282b9d4 [DI] Service locators can't be decorated
2019-12-17 11:22:17 +01:00
Maciej Malarz
343282b9d4 [DI] Service locators can't be decorated 2019-12-17 11:22:10 +01:00
Nicolas Grekas
ae9c41cb16 bug #35000 [Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt

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

Replaces / finishes https://github.com/symfony/symfony/pull/33911

Commits
-------

f175032ed8 [Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt
2019-12-17 11:19:24 +01:00
Nicolas Grekas
cb96f143da bug #35005 [HttpClient] force HTTP/1.1 when NTLM auth is used (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] force HTTP/1.1 when NTLM auth is used

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

NTLM requires HTTP/1.1.

Commits
-------

0e87e9b960 [HttpClient] force HTTP/1.1 when NTLM auth is used
2019-12-17 11:18:26 +01:00
Nicolas Grekas
45d65cc000 feature #34881 [FrameworkBundle] Allow using the kernel as a registry of controllers and service factories (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[FrameworkBundle] Allow using the kernel as a registry of controllers and service factories

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #28992, fix #29997
| License       | MIT
| Doc PR        | -

This PR builds on #34873 and #34872 and allows using the `Kernel` as a registry of autowired controllers and service factories. The `ContainerConfigurator` passed to `configureContainer()` defaults to declaring autowired and autoconfigured services.

TL;DR: Silex is back but in a much more powerful way \o/

Here is a Kernel that just works and displays `Hello App\Foo` on the `/` route:
```php
class Kernel extends BaseKernel
{
    use MicroKernelTrait;

    protected function configureContainer(ContainerConfigurator $container): void
    {
        $container->services()
            ->load('App\\', '../src')
            ->set(Foo::class)
                ->factory([$this, 'createFoo']);
    }

    public function createFoo(Bar $bar)
    {
        return new Foo($bar);
    }

    protected function configureRoutes(RoutingConfigurator $routes): void
    {
        $routes->add('home', '/')->controller([$this, 'helloAction']);
    }

    public function helloAction(Foo $foo)
    {
        return new Response('Hello '.get_class($foo));
    }
}
```

Commits
-------

9c9b99cc65 [FrameworkBundle] Allow using the kernel as a registry of controllers and service factories
2019-12-17 11:12:34 +01:00
Nicolas Grekas
0e87e9b960 [HttpClient] force HTTP/1.1 when NTLM auth is used 2019-12-17 10:59:36 +01:00
Maxime Steinhausser
00b46fa72e [Validation][FrameworkBundle] Allow EnableAutoMapping to work without auto-mapping namespaces 2019-12-17 09:15:02 +01:00
fancyweb
f175032ed8 [Console][SymfonyQuestionHelper] Handle multibytes question choices keys and custom prompt
Co-authored-by: Mikhail Fesenko <m.fesenko@corp.vk.com>
2019-12-17 09:06:44 +01:00
Nicolas Grekas
6c2ceb0c44 [DI] fix auto-binding service providers to their service subscribers 2019-12-16 19:47:19 +01:00
Nicolas Grekas
a44f58bd79 Merge branch '5.0'
* 5.0:
  Fix displaying anonymous classes on PHP 7.4
  Fix merge
2019-12-16 15:48:59 +01:00
Nicolas Grekas
6fe308bb2a Merge branch '4.4' into 5.0
* 4.4:
  Fix displaying anonymous classes on PHP 7.4
  Fix merge
2019-12-16 15:48:47 +01:00
Nicolas Grekas
4e44baf1bb Merge branch '4.3' into 4.4
* 4.3:
  Fix displaying anonymous classes on PHP 7.4
2019-12-16 15:46:54 +01:00
Nicolas Grekas
c36568a1ed Fix displaying anonymous classes on PHP 7.4 2019-12-16 15:20:08 +01:00
Nicolas Grekas
57361a5ab8 Fix merge 2019-12-16 15:00:54 +01:00
Nicolas Grekas
0b23153f4f Merge branch '5.0'
* 5.0:
  Skip deprecations from doctrine/orm
  Ignore deprecations about doctrine/persistence coming from doctrine/orm
  skip not applicable tests
2019-12-16 14:35:24 +01:00
Nicolas Grekas
2e878378ef Merge branch '4.4' into 5.0
* 4.4:
  Skip deprecations from doctrine/orm
  Ignore deprecations about doctrine/persistence coming from doctrine/orm
  skip not applicable tests
2019-12-16 14:35:13 +01:00
Nicolas Grekas
0dea24fa8c Merge branch '4.3' into 4.4
* 4.3:
  Skip deprecations from doctrine/orm
  Ignore deprecations about doctrine/persistence coming from doctrine/orm
  skip not applicable tests
2019-12-16 14:34:43 +01:00
Nicolas Grekas
c8f3053be8 feature #34977 [EventDispatcher] Deprecate LegacyEventDispatcherProxy (derrabus)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[EventDispatcher] Deprecate LegacyEventDispatcherProxy

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | yes
| Tickets       | Cleanup of #28920
| License       | MIT
| Doc PR        | N/A

> This class should be deprecated in Symfony 5.1

Well, here you go. 😃

Commits
-------

c7e612d4ad [EventDispatcher] Deprecate LegacyEventDispatcherProxy.
2019-12-16 12:38:33 +01:00
Christian Flothmann
f51538d581 minor #34994 [Validator] skip not applicable tests (xabbuh)
This PR was merged into the 4.3 branch.

Discussion
----------

[Validator] skip not applicable tests

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

Commits
-------

227c38180f skip not applicable tests
2019-12-16 12:34:11 +01:00
Christian Flothmann
227c38180f skip not applicable tests 2019-12-16 12:22:11 +01:00
Nicolas Grekas
700d2d39ca Merge branch '5.0'
* 5.0:
  Use `::class` constants instead of `__NAMESPACE__` when possible
2019-12-16 12:08:33 +01:00
Nicolas Grekas
4eadeb70a9 Merge branch '4.4' into 5.0
* 4.4:
  Use `::class` constants instead of `__NAMESPACE__` when possible
2019-12-16 12:08:25 +01:00
Nicolas Grekas
c05245d5a9 Merge branch '4.3' into 4.4
* 4.3:
  Use `::class` constants instead of `__NAMESPACE__` when possible
2019-12-16 12:07:37 +01:00
Nicolas Grekas
7d9945e24a Merge branch '3.4' into 4.3
* 3.4:
  Use `::class` constants instead of `__NAMESPACE__` when possible
2019-12-16 12:02:49 +01:00
Nicolas Grekas
cfd4194e20 minor #34990 Use ::class constants instead of __NAMESPACE__ when possible (fre5h)
This PR was merged into the 3.4 branch.

Discussion
----------

Use `::class` constants instead of `__NAMESPACE__` when possible

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

Form component has a lot of built-in form types. Some of them were implemented from the very beginning. In most of them there is a such method

```php
    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return __NAMESPACE__.'\TextType';
    }
```

This `getParent()` method was refactored in Symfony 2.8. The upgrade instructions are given here https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md#form

I think the `__NAMESPACE__.'\TextType';` expression was used because Symfony 2.8 was using `"php": ">=5.3.9"`, and the constant `::class` was added only in PHP 5.5

Now this line can be refactored into
```php
    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return TextType::class;
    }
```

For example new form types, that were added later, already using the `::class` constant.
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Extension/Core/Type/ColorType.php#L23
https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/Extension/Core/Type/TelType.php#L23

So, in this pull request I propose to refactor all old form types to use `::class` constant. It will give a benefit during the future refactoring, because IDE or static analysers will find all usages of parent class. Unlike the `__NAMESPACE__.'\TextType';` line, which doesn't show the real link to the class for IDE or static analysers, and it could complicate finding all usages of parent class.

Commits
-------

32bf50abca Use `::class` constants instead of `__NAMESPACE__` when possible
2019-12-16 11:55:12 +01:00
Nicolas Grekas
be0e04b84a Merge branch '5.0'
* 5.0: (21 commits)
  fix merge
  CS
  [FrameworkBundle][ContainerLintCommand] Improve messages when the kernel or the container is not supported
  [Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer
  stop using deprecated Doctrine persistence classes
  [Cache] Fix wrong classname in deprecation message
  Fix regex lookahead syntax in ApplicationTest
  Fixed syntax in comment
  [SecurityBundle][FirewallMap] Remove unused property
  [Messenger][AMQP] Use delivery_mode=2 by default
  [FrameworkBundle][DependencyInjection] Skip removed ids in the lint container command and its associated pass
  [SECURITY] Revert "AbstractAuthenticationListener.php error instead info. Rebase of #28462"
  [FrameworkBundle][Secrets] Hook configured local dotenv file
  [DI] Improve performance of processDefinition
  fix redis multi host dsn not recognized
  fix constructor argument type declaration
  Fix invalid Windows path normalization
  [Validator][ConstraintValidator] Safe fail on invalid timezones
  [DoctrineBridge] Fixed submitting invalid ids when using queries with limit
  [FrameworkBundle] Add info & example to auto_mapping config
  ...
2019-12-16 11:48:49 +01:00
Nicolas Grekas
525d7bf716 Merge branch '4.4' into 5.0
* 4.4: (21 commits)
  fix merge
  CS
  [FrameworkBundle][ContainerLintCommand] Improve messages when the kernel or the container is not supported
  [Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer
  stop using deprecated Doctrine persistence classes
  [Cache] Fix wrong classname in deprecation message
  Fix regex lookahead syntax in ApplicationTest
  Fixed syntax in comment
  [SecurityBundle][FirewallMap] Remove unused property
  [Messenger][AMQP] Use delivery_mode=2 by default
  [FrameworkBundle][DependencyInjection] Skip removed ids in the lint container command and its associated pass
  [SECURITY] Revert "AbstractAuthenticationListener.php error instead info. Rebase of #28462"
  [FrameworkBundle][Secrets] Hook configured local dotenv file
  [DI] Improve performance of processDefinition
  fix redis multi host dsn not recognized
  fix constructor argument type declaration
  Fix invalid Windows path normalization
  [Validator][ConstraintValidator] Safe fail on invalid timezones
  [DoctrineBridge] Fixed submitting invalid ids when using queries with limit
  [FrameworkBundle] Add info & example to auto_mapping config
  ...
2019-12-16 11:47:49 +01:00
Nicolas Grekas
68681e49f2 Merge branch '4.3' into 4.4
* 4.3:
  fix merge
  CS
  [Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer
  stop using deprecated Doctrine persistence classes
  [Cache] Fix wrong classname in deprecation message
  Fix regex lookahead syntax in ApplicationTest
  Fixed syntax in comment
  [SecurityBundle][FirewallMap] Remove unused property
  [Messenger][AMQP] Use delivery_mode=2 by default
  [DI] Improve performance of processDefinition
  Fix invalid Windows path normalization
  [Validator][ConstraintValidator] Safe fail on invalid timezones
  [DoctrineBridge] Fixed submitting invalid ids when using queries with limit
  [FrameworkBundle] Add info & example to auto_mapping config
  fix comparisons with null values at property paths
2019-12-16 11:45:21 +01:00
Nicolas Grekas
64410edfb3 fix merge 2019-12-16 11:44:01 +01:00
Nicolas Grekas
02c1cda67e Merge branch '3.4' into 4.3
* 3.4:
  CS
  [Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer
  stop using deprecated Doctrine persistence classes
  Fix regex lookahead syntax in ApplicationTest
  [SecurityBundle][FirewallMap] Remove unused property
  [DI] Improve performance of processDefinition
  Fix invalid Windows path normalization
  [Validator][ConstraintValidator] Safe fail on invalid timezones
  [DoctrineBridge] Fixed submitting invalid ids when using queries with limit
  fix comparisons with null values at property paths
2019-12-16 11:33:29 +01:00
Artem Henvald
32bf50abca Use ::class constants instead of __NAMESPACE__ when possible 2019-12-16 11:25:54 +01:00
Christian Flothmann
a073606ea8 bug #29839 [Validator] fix comparisons with null values at property paths (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] fix comparisons with null values at property paths

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #29831
| License       | MIT
| Doc PR        |

Commits
-------

ffa5db74c1 fix comparisons with null values at property paths
2019-12-16 09:55:48 +01:00
Robin Chalas
ab8841e248 minor #34991 CS for AccessDecisionManager (aschempp)
This PR was merged into the 3.4 branch.

Discussion
----------

CS for AccessDecisionManager

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

As discussed in #34548 with @nicolas-grekas here's a CS change for the `AccessDecisionManager`

Commits
-------

b3742ec493 CS
2019-12-16 00:50:24 +01:00
Alexander M. Turek
c7e612d4ad [EventDispatcher] Deprecate LegacyEventDispatcherProxy. 2019-12-15 23:54:05 +01:00
Andreas Schempp
b3742ec493 CS 2019-12-15 22:30:08 +01:00
gauss
0e92399daa [DI] Suggest typed argument when binding fails with untyped argument 2019-12-15 19:13:51 +01:00
Fabien Potencier
8f42a7679d bug #34791 [Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer (vudaltsov)
This PR was squashed before being merged into the 3.4 branch (closes #34791).

Discussion
----------

[Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer

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

When trying to read from an uninitialized property in PHP 7.4, a `TypeError` is generated, see https://wiki.php.net/rfc/typed_properties_v2#uninitialized_and_unset_properties. This PR fixes the issue.

Commits
-------

1ed8e42d15 [Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer
2019-12-15 14:47:04 +01:00
Valentin Udaltsov
1ed8e42d15 [Serializer] Skip uninitialized (PHP 7.4) properties in PropertyNormalizer and ObjectNormalizer 2019-12-15 14:46:58 +01:00
Fabien Potencier
91f79e269d bug #34956 [Messenger][AMQP] Use delivery_mode=2 by default (lyrixx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger][AMQP] Use delivery_mode=2 by default

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

Commits
-------

be2eb6fcc7 [Messenger][AMQP] Use delivery_mode=2 by default
2019-12-15 14:44:54 +01:00
Nicolas Grekas
2ecdc3ac36 minor #34966 [DI] Improve performance of processDefinition (Stefan Kruppa)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Improve performance of processDefinition

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

Saves some time during container compilation by instantiating the reflection class only once. In my case this speeds up container compilation in dev mode by ~10% (saves almost 100k calls to `getReflectionClass`).

Tests still run locally and my compiled container was identical pre and post change, but I found this improvement by Blackfire profiling and am not familiar with the surrounding code, so it would be great if someone could doublecheck if the change causes problems.

Commits
-------

41b56eac29 [DI] Improve performance of processDefinition
2019-12-15 11:05:21 +01:00
Anto
c7115a3087
[Cache] Fix wrong classname in deprecation message 2019-12-14 09:13:00 +01:00
Guilliam Xavier
cf1d7b2ed1
Fix regex lookahead syntax in ApplicationTest 2019-12-13 21:47:04 +01:00
Tobias Nyholm
20f9a5bbb0
Fixed syntax in comment 2019-12-13 20:25:45 +01:00
Grégoire Pineau
be2eb6fcc7 [Messenger][AMQP] Use delivery_mode=2 by default 2019-12-13 14:40:46 +01:00
Nicolas Grekas
9c9b99cc65 [FrameworkBundle] Allow using the kernel as a registry of controllers and service factories 2019-12-13 14:13:08 +01:00
Nicolas Grekas
cf45eeccfc [FrameworkBundle] Allow using a ContainerConfigurator in MicroKernelTrait::configureContainer() 2019-12-13 14:10:14 +01:00
Nicolas Grekas
44458126b5 feature #34872 [FrameworkBundle] Added flex-compatible default implementations for MicroKernelTrait::registerBundles() and getProjectDir() (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[FrameworkBundle] Added flex-compatible default implementations for `MicroKernelTrait::registerBundles()` and `getProjectDir()`

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

I think it's safe now to migrate some flex-based defaults from the recipe to the bundle.
No BC break here as all existing kernels already redefine this method.

Commits
-------

a689807387 [FrameworkBundle] Added flex-compatible default implementations for `MicroKernelTrait::registerBundles()` and `getProjectDir()`
2019-12-13 14:08:39 +01:00
Nicolas Grekas
a689807387 [FrameworkBundle] Added flex-compatible default implementations for MicroKernelTrait::registerBundles() and getProjectDir() 2019-12-13 13:53:25 +01:00
Nicolas Grekas
e04331657f bug #34904 [Validator][ConstraintValidator] Safe fail on invalid timezones (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator][ConstraintValidator] Safe fail on invalid timezones

Co-authored-by: Scott Dawson <scott@loyaltycorp.com.au>

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

Alternative to https://github.com/symfony/symfony/pull/33902.

I will explain why I think it is better this way:

1. We set the timezone with the setter because it's 100% safe, it never fails. It fall backs to the default timezone if the provided timezone is not supported (as if we passed null, so the same behavior that always existed). We are therefore compatible with all edge cases.
2. We don't validate the timezone with `\DateTimeZone::listIdentifiers()`. It only returns full identifiers like "Europe/Paris" but it doesn't take into account "numeric" identifiers such as "+08:00" which are perfectly valid. I added a test case to ensure we stay valid with this case. + some invalid identifiers for the native `\IntlDateFormatter` are valid with the polyfill that uses `\DateTimeZone` (eg : `X`). I don't think we can validate anything safely that will work reliably on both implementations.

Commits
-------

3b1b994cb3 [Validator][ConstraintValidator] Safe fail on invalid timezones
2019-12-13 13:34:40 +01:00
Nicolas Grekas
da7dedaaa0 bug #34935 [FrameworkBundle][DependencyInjection] Skip removed ids in the lint container command and its associated pass (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle][DependencyInjection] Skip removed ids in the lint container command and its associated pass

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

We remove the "removing" passes again and to avoid what https://github.com/symfony/symfony/pull/34502 fixed, we skip validating the "live" container removed ids in the pass (the "live" container is supposed to have the same definitions than the "debug container" one).

Logically, an errored service cannot pass the "live" container compilation without being removed. Consequently, it also skips the errored services that ended up being removed in the "live" container.

Commits
-------

a0f581ba9d [FrameworkBundle][DependencyInjection] Skip removed ids in the lint container command and its associated pass
2019-12-13 13:19:04 +01:00
Thomas Calvet
a0f581ba9d [FrameworkBundle][DependencyInjection] Skip removed ids in the lint container command and its associated pass 2019-12-13 13:18:52 +01:00
Diego Aguiar
9d306f9046 [SECURITY] Revert "AbstractAuthenticationListener.php error instead info. Rebase of #28462"
This reverts commit 867eb78cfe.
2019-12-13 13:11:48 +01:00
Nicolas Grekas
a6d15678f9 feature #34916 [DI] Add support for defining method calls in InlineServiceConfigurator (Lctrs)
This PR was squashed before being merged into the 5.1-dev branch.

Discussion
----------

[DI] Add support for defining method calls in InlineServiceConfigurator

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

Commits
-------

5af6e21529 [DI] Add support for defining method calls in InlineServiceConfigurator
2019-12-13 13:09:24 +01:00
Lctrs
5af6e21529 [DI] Add support for defining method calls in InlineServiceConfigurator 2019-12-13 13:09:17 +01:00
Stefan Kruppa
41b56eac29 [DI] Improve performance of processDefinition 2019-12-13 12:59:23 +01:00
Nicolas Grekas
212dc53431 bug #34967 [HttpFoundation] fix redis multi host dsn not recognized (Jan Christoph Beyer)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] fix redis multi host dsn not recognized

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

#34177 added support configurating session handlers with DSNs. It was no possible to pass a redis-DSN like
`redis:?host[localhost]&host[localhost:6379]&host[/var/run/redis.sock:]&auth=my-password&redis_cluster=1'`

since the check was
`case 0 === strpos($connection, 'redis://'):`

Commits
-------

81ba07aa26 fix redis multi host dsn not recognized
2019-12-13 12:54:36 +01:00
Jan Christoph Beyer
81ba07aa26 fix redis multi host dsn not recognized 2019-12-13 12:54:15 +01:00
Nicolas Grekas
0636177aa6 bug #34963 [Lock] fix constructor argument type declaration (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Lock] fix constructor argument type declaration

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

Commits
-------

201af4f31d fix constructor argument type declaration
2019-12-13 12:50:28 +01:00
Christian Flothmann
201af4f31d fix constructor argument type declaration 2019-12-13 09:10:41 +01:00
Nicolas Grekas
331765b95d Merge branch '5.0'
* 5.0:
  Fix leftover from doctrine/persistence < 1.3
  Require doctrine/persistence ^1.3
2019-12-12 16:10:59 +01:00
Nicolas Grekas
9a88f527a6 Merge branch '4.4' into 5.0
* 4.4:
  Fix leftover from doctrine/persistence < 1.3
  Require doctrine/persistence ^1.3
2019-12-12 16:09:39 +01:00
Nicolas Grekas
96f04d9b32 Fix leftover from doctrine/persistence < 1.3 2019-12-12 16:05:14 +01:00
Nicolas Grekas
866de0fb8b Merge branch '4.3' into 4.4
* 4.3:
  Require doctrine/persistence ^1.3
2019-12-12 16:02:38 +01:00
Morten Wulff
ef0aa4dc87 [Mailer] fixed undefined index when sending mail
When a Mandrill API request is succesful, it returns an array of
results, one for each recipient. To get rid of the undefined index
error, we grab the message ID from the first recipient in the array.
2019-12-12 15:08:08 +01:00
Nicolas Grekas
5690b97f7a [Lock] Fix merge 2019-12-12 14:59:51 +01:00
Nicolas Grekas
20811cea21 Merge branch '5.0'
* 5.0:
  [Messenger] Fix deprecation
2019-12-12 14:56:34 +01:00
Nicolas Grekas
5b06e01348 Merge branch '4.4' into 5.0
* 4.4:
  [Messenger] Fix deprecation
2019-12-12 14:55:59 +01:00
Nicolas Grekas
a656a57736 [Messenger] Fix deprecation 2019-12-12 14:54:44 +01:00
Nicolas Grekas
b94f9e5868 Merge branch '5.0'
* 5.0:
  Fix merge
  [DoctrineBridge] try to fix deprecations from doctrine/persistence
  [DI] Add support for immutable setters in CallTrait
  [Cache] Propagate expiry when syncing items in ChainAdapter
  Removed request header "Content-Type" from the preferred format guessing mechanism
  [Routing] fix memoryleak when loading compiled routes
  [Translation] fix memoryleak in PhpFileLoader
  fix triggering deprecation in file locator
  bug #34877 [TwigBundle] fix findTemplate() to return `null`
2019-12-12 14:04:26 +01:00
Nicolas Grekas
cf073e563f Merge branch '4.4' into 5.0
* 4.4:
  Fix merge
  [DoctrineBridge] try to fix deprecations from doctrine/persistence
  [DI] Add support for immutable setters in CallTrait
  [Cache] Propagate expiry when syncing items in ChainAdapter
  Removed request header "Content-Type" from the preferred format guessing mechanism
  [Routing] fix memoryleak when loading compiled routes
  [Translation] fix memoryleak in PhpFileLoader
  fix triggering deprecation in file locator
  bug #34877 [TwigBundle] fix findTemplate() to return `null`
2019-12-12 14:03:32 +01:00
Nicolas Grekas
a31119b89c Merge branch '4.3' into 4.4
* 4.3:
  Fix merge
  [DoctrineBridge] try to fix deprecations from doctrine/persistence
  [DI] Add support for immutable setters in CallTrait
  [Cache] Propagate expiry when syncing items in ChainAdapter
  [Routing] fix memoryleak when loading compiled routes
  [Translation] fix memoryleak in PhpFileLoader
2019-12-12 13:53:52 +01:00
Nicolas Grekas
72936e457f Merge branch '3.4' into 4.3
* 3.4:
  [DoctrineBridge] try to fix deprecations from doctrine/persistence
  [Translation] fix memoryleak in PhpFileLoader
2019-12-12 13:39:14 +01:00
Nicolas Grekas
53a4711520 [DoctrineBridge] try to fix deprecations from doctrine/persistence 2019-12-12 13:13:32 +01:00
Nicolas Grekas
d294085689 bug #34923 [DI] Fix support for immutable setters in CallTrait (Lctrs)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] Fix support for immutable setters in CallTrait

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

Commits
-------

90ace51328 [DI] Add support for immutable setters in CallTrait
2019-12-11 13:26:30 +01:00
Lctrs
90ace51328 [DI] Add support for immutable setters in CallTrait 2019-12-11 13:18:17 +01:00
Fabien Potencier
93f430b94f Fix CS 2019-12-11 01:47:24 +01:00
Joe Bennett
a6bfa5931e [Lock] add mongodb store 2019-12-11 01:40:35 +01:00
Fabien Potencier
d91efd31f6 bug #34921 [HttpFoundation] Removed "Content-Type" from the preferred format guessing mechanism (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] Removed "Content-Type" from the preferred format guessing mechanism

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

Confirmed, inferring the `Content-Type` of the response using the `Content-Type` provided for the request body is NOT a good idea. The HTTP RFC explicitly states that `Accept` must be used to hint a preferred response format (`Content-Type` on the request indicates the type of associated its the body).

Use `Accept` if provided (a best practice anyway), and fallback to the default value (HTML by default) otherwise.

Commits
-------

776523e56a Removed request header "Content-Type" from the preferred format guessing mechanism
2019-12-11 01:19:19 +01:00
Fabien Potencier
6bf764a4ed bug #34886 [HttpKernel] fix triggering deprecation in file locator (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] fix triggering deprecation in file locator

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

Commits
-------

142b1793e0 fix triggering deprecation in file locator
2019-12-11 01:18:36 +01:00
Fabien Potencier
349ea047e6 bug #34918 [Translation] fix memoryleak in PhpFileLoader (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Translation] fix memoryleak in PhpFileLoader

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

This happens when running the test suite with opcache disabled (as it is the case by default since `opcache.enable_cli=0`).
Doing this "require" in a loop (for each test case) compiles the file at each iteration and doesn't reclaim memory (there is no garbage collector for opcodes).

Commits
-------

5c9e3bac96 [Translation] fix memoryleak in PhpFileLoader
2019-12-11 01:14:09 +01:00
Fabien Potencier
ebadf51543 bug #34920 [Routing] fix memoryleak when loading compiled routes (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] fix memoryleak when loading compiled routes

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

Same as #34918 for Routing. That's the last significant memory hog I've identified.

Commits
-------

85371a174e [Routing] fix memoryleak when loading compiled routes
2019-12-11 01:13:19 +01:00
Javier Eguiluz
24f32f8bf8 [ErrorHandler] Enabled the dark theme for exception pages 2019-12-10 17:56:21 +01:00
Trevor North
77138acea6 [Cache] Propagate expiry when syncing items in ChainAdapter
If a lower adapter provides item metadata, propagate the expiry time when
syncing the item to upper ones.
2019-12-10 17:45:08 +01:00
Nicolas Grekas
65a988880d Merge branch '5.0'
* 5.0:
  Fix CS
2019-12-10 16:15:37 +01:00
Nicolas Grekas
af04885358 Merge branch '4.4' into 5.0
* 4.4:
  Fix CS
2019-12-10 16:15:29 +01:00
Nicolas Grekas
648544f432 Merge branch '4.3' into 4.4
* 4.3:
  Fix CS
2019-12-10 16:11:53 +01:00
Nicolas Grekas
5da657bcf3 Merge branch '3.4' into 4.3
* 3.4:
  Fix CS
2019-12-10 16:11:12 +01:00
Nicolas Grekas
c90cf3301a Fix CS 2019-12-10 16:06:53 +01:00
Yonel Ceruto
776523e56a Removed request header "Content-Type" from the preferred format guessing mechanism 2019-12-10 09:58:16 -05:00
Nicolas Grekas
85371a174e [Routing] fix memoryleak when loading compiled routes 2019-12-10 15:07:26 +01:00
Nicolas Grekas
2df13e1735 Merge branch '5.0'
* 5.0:
  [Cache] fix merge
2019-12-10 14:56:31 +01:00
Nicolas Grekas
418b8d9b7a [Cache] fix merge 2019-12-10 14:56:26 +01:00
Nicolas Grekas
c7d8accc9b Merge branch '5.0'
* 5.0:
  [Validator] fix low deps
  Don't patch BadFileName.php fixture file
2019-12-10 14:45:02 +01:00
Nicolas Grekas
c6eae73d15 Merge branch '4.4' into 5.0
* 4.4:
  [Validator] fix low deps
  Don't patch BadFileName.php fixture file
2019-12-10 14:44:54 +01:00
Nicolas Grekas
5c9e3bac96 [Translation] fix memoryleak in PhpFileLoader 2019-12-10 13:51:10 +01:00
Christian Flothmann
142b1793e0 fix triggering deprecation in file locator 2019-12-10 13:26:43 +01:00
Nicolas Grekas
c2181b0887 Merge branch '5.0'
* 5.0:
  [Validator] Fix auto-mapping constraints should not be validated
  [Debug] Updated the README to deprecate the component
  [Cache] fix memory leak when using PhpFilesAdapter
  [Yaml] Implement multiline string as scalar block for tagged values
  [HttpFoundation] Use `Cache-Control: must-revalidate` only if explicit lifetime has been given
  [FrameworkBundle] Use UserInterface to @return in getUser method
  [CI] Replace php7.4snapshot with php7.4 in Travis configuration
  [ExpressionLanguage][Node][BinaryNode] Process division by zero
  Fixing bad order of operations with null coalescing operator
  forward caught exception
  [Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime
  add tags before processing them
  [FrameworkBundle][ContainerLintCommand] Reinitialize bundles when the container is reprepared
  [Process] change the syntax of portable prepared command lines
  [MonologBridge] Fix debug processor datetime type
2019-12-10 12:07:17 +01:00
Nicolas Grekas
5f50769825 Merge branch '4.4' into 5.0
* 4.4:
  [Validator] Fix auto-mapping constraints should not be validated
  [Debug] Updated the README to deprecate the component
  [Cache] fix memory leak when using PhpFilesAdapter
  [Yaml] Implement multiline string as scalar block for tagged values
  [HttpFoundation] Use `Cache-Control: must-revalidate` only if explicit lifetime has been given
  [FrameworkBundle] Use UserInterface to @return in getUser method
  [CI] Replace php7.4snapshot with php7.4 in Travis configuration
  [ExpressionLanguage][Node][BinaryNode] Process division by zero
  Fixing bad order of operations with null coalescing operator
  forward caught exception
  [Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime
  add tags before processing them
  [FrameworkBundle][ContainerLintCommand] Reinitialize bundles when the container is reprepared
  [Process] change the syntax of portable prepared command lines
  [MonologBridge] Fix debug processor datetime type
2019-12-10 12:06:55 +01:00
Nicolas Grekas
ea5ad5c40b minor #34912 [Debug] Updated the README to deprecate the component (javiereguiluz)
This PR was merged into the 4.4 branch.

Discussion
----------

[Debug] Updated the README to deprecate the component

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | https://github.com/symfony/symfony-docs/issues/12775
| License       | MIT
| Doc PR        | -

Commits
-------

ab9e0eb2f5 [Debug] Updated the README to deprecate the component
2019-12-10 12:00:13 +01:00
Nicolas Grekas
7049b94aed bug #34694 [Validator] Fix auto-mapping constraints should not be validated (ogizanagi)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Validator] Fix auto-mapping constraints should not be validated

| Q             | A
| ------------- | ---
| Branch?       | 4.4 <!-- 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       | #34672 <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | N/A

As for `Traverse`, I don't think we should add these "constraints" to the list.

I'm also wondering if it really makes sense to have these annotations as constraints. I think it should rather behave like the `GroupSequence` annotation to add the info the generic metadata at loading time, but we don't need to rely on the constraints behavior at all.

Commits
-------

bc53e4bca0 [Validator] Fix auto-mapping constraints should not be validated
2019-12-10 11:58:52 +01:00
Maxime Steinhausser
bc53e4bca0 [Validator] Fix auto-mapping constraints should not be validated 2019-12-10 11:58:45 +01:00
Nicolas Grekas
2e7032420f bug #34848 [Process] change the syntax of portable command lines (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Process] change the syntax of portable command lines

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #34838
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/12772

An alternative to #34845

Right now, portable command lines use `"$FOO"` for placeholders.
But because we validate that a corresponding variable exists before running the command, this fails with `Command line is missing a value for key "$FOO"` when `FOO` is not defined.

This PR proposes to use `"${:FOO}"` instead. The difference with the previous syntax is that this cannot collide with existing shell scripts as it is invalid for them.

When this is merged, we'll have to update https://symfony.com/blog/new-in-symfony-4-1-prepared-commands too.

Commits
-------

3c7b775b3e [Process] change the syntax of portable prepared command lines
2019-12-10 11:51:39 +01:00
Javier Eguiluz
ab9e0eb2f5 [Debug] Updated the README to deprecate the component 2019-12-10 11:48:09 +01:00
Nicolas Grekas
e77059825c Merge branch '4.3' into 4.4
* 4.3:
  [Cache] fix memory leak when using PhpFilesAdapter
  [Yaml] Implement multiline string as scalar block for tagged values
  [HttpFoundation] Use `Cache-Control: must-revalidate` only if explicit lifetime has been given
  [FrameworkBundle] Use UserInterface to @return in getUser method
  [CI] Replace php7.4snapshot with php7.4 in Travis configuration
  [ExpressionLanguage][Node][BinaryNode] Process division by zero
  forward caught exception
  [Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime
  add tags before processing them
  [MonologBridge] Fix debug processor datetime type
2019-12-10 11:33:21 +01:00
Nicolas Grekas
7f2d9c2b1e Merge branch '3.4' into 4.3
* 3.4:
  [Yaml] Implement multiline string as scalar block for tagged values
  [HttpFoundation] Use `Cache-Control: must-revalidate` only if explicit lifetime has been given
  [FrameworkBundle] Use UserInterface to @return in getUser method
  [CI] Replace php7.4snapshot with php7.4 in Travis configuration
  [ExpressionLanguage][Node][BinaryNode] Process division by zero
  forward caught exception
  [Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime
  add tags before processing them
  [MonologBridge] Fix debug processor datetime type
2019-12-10 11:30:59 +01:00
Nicolas Grekas
5aff4a66f1 bug #34896 [Cache] fix memory leak when using PhpFilesAdapter (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] fix memory leak when using PhpFilesAdapter

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

Similar to #34839 but for `PhpFilesAdapter`, as the "appendOnly" mode is a v4-only feature.

Commits
-------

0b46226648 [Cache] fix memory leak when using PhpFilesAdapter
2019-12-10 11:24:37 +01:00
Nicolas Grekas
0b46226648 [Cache] fix memory leak when using PhpFilesAdapter 2019-12-10 11:09:22 +01:00
Nicolas Grekas
42712ee006 bug #34438 [HttpFoundation] Use Cache-Control: must-revalidate only if explicit lifetime has been given (mpdude)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Use `Cache-Control: must-revalidate` only if explicit lifetime has been given

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

This is really nit-picking: The conservative, safe default for `Cache-Control` is `private, no-cache` which means the response must not be served from cache unless it has been validated.

If `Last-Modified` or `Expires` are present, we can relax `no-cache` to be `must-revalidate`, which means that _once the response has become stale_, it must be revalidated.

An `ETag` alone does not give the response a lifetime, so IMO sticking with `no-cache` in this case would be more consistent.

Commits
-------

1b1002b426 [HttpFoundation] Use `Cache-Control: must-revalidate` only if explicit lifetime has been given
2019-12-10 10:07:44 +01:00
Nicolas Grekas
035d8a3925 bug #34449 [Yaml] Implement multiline string as scalar block for tagged values (natepage)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Yaml] Implement multiline string as scalar block for tagged values

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT

At the moment you can parse a tagged value defined as a scalar block. But you can't actually dump a multiline string as scalar block when using a tagged value.

This PR implements the multiline string as scalar block for tagged values as well.

Commits
-------

84241d4e62 [Yaml] Implement multiline string as scalar block for tagged values
2019-12-10 09:51:28 +01:00
natepage
84241d4e62 [Yaml] Implement multiline string as scalar block for tagged values 2019-12-10 09:51:22 +01:00
Matthias Pigulla
1b1002b426 [HttpFoundation] Use Cache-Control: must-revalidate only if explicit lifetime has been given 2019-12-10 09:49:31 +01:00
Thomas Calvet
3b1b994cb3 [Validator][ConstraintValidator] Safe fail on invalid timezones
Co-authored-by: Scott Dawson <scott@loyaltycorp.com.au>
2019-12-10 09:48:07 +01:00
Nicolas Grekas
2eacbc5b54 bug #34842 [ExpressionLanguage] Process division by zero (tigr1991)
This PR was merged into the 3.4 branch.

Discussion
----------

[ExpressionLanguage] Process division by zero

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

To be able to catch the error in expression like ` 1 / 0`

**Before PR:**
```
try {
    1 / 0;
} catch (\Throwable $e) {
    // It won't be caught anyway
    // PHP Warning:  Division by zero in...
}

try {
    1 % 0;
} catch (\Throwable $e) {
    // It will be caught since PHP7
    // \DivisionByZeroError with message `Modulo by zero`
}
```
**After PR:**
```
try {
    1 / 0;
} catch (\Throwable $e) {
    // It will be caught
    // \DivisionByZeroError with message `Division by zero`
}

try {
    1 % 0;
} catch (\Throwable $e) {
    // It will be caught
    // \DivisionByZeroError with message `Modulo by zero`
}
```

Commits
-------

02ab72ab30 [ExpressionLanguage][Node][BinaryNode] Process division by zero
2019-12-10 09:19:19 +01:00
Ivan
02ab72ab30 [ExpressionLanguage][Node][BinaryNode] Process division by zero 2019-12-10 09:18:51 +01:00
Nicolas Grekas
429b18e28e minor #34895 [Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime

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

Since we format the \DateTimeImmutable with the "e" character, it uses this timezone identifier and do not consider the passed one. See https://www.php.net/manual/en/datetime.construct.php:

> The $timezone parameter and the current timezone are ignored when the $time parameter either is a UNIX timestamp (e.g. @946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).

Commits
-------

03dbcf8794 [Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime
2019-12-10 09:11:51 +01:00
Ryan Weaver
629126435d Fixing bad order of operations with null coalescing operator 2019-12-09 15:51:18 -05:00
Christian Flothmann
98e18d33df forward caught exception 2019-12-09 21:23:16 +01:00
Thomas Calvet
03dbcf8794 [Validator][ConstraintValidator] Stop passing unnecessary timezone argument to \DateTime 2019-12-09 14:42:15 +01:00
Antonio Pauletich
4fde51745b
Enable auto alias compiler pass by default 2019-12-09 00:11:53 +01:00
Nicolas Grekas
ae00ff4cfa Merge branch '5.0'
* 5.0: (38 commits)
  [Security] Check UserInterface::getPassword is not null before calling needsRehash
  gracefully handle missing event dispatchers
  Fix TokenStorage::reset not called in stateless firewall
  [DotEnv] Remove `usePutEnv` property default value
  [HttpFoundation] get currently session.gc_maxlifetime if ttl doesnt exists
  Set up typo fix
  [DependencyInjection] Handle env var placeholders in CheckTypeDeclarationsPass
  [Cache] fix memory leak when using PhpArrayAdapter
  [Validator] Allow underscore character "_" in URL username and password
  [TwigBridge] Update bootstrap_4_layout.html.twig
  [DoctrineBridge] Removed QueryBuilder type hint in getLoader()
  [FrameworkBundle][SodiumVault] Create secrets directory only when needed
  fix parsing negative octal numbers
  [String] implement __sleep()/__wakeup() on strings
  Fixed translations file dumper behavior
  [Routing][ObjectLoader] Remove forgotten deprecation after merge
  [SecurityBundle] Passwords are not encoded when algorithm set to \"true\"
  [DependencyInjection] Resolve expressions in CheckTypeDeclarationsPass
  [SecurityBundle] Properly escape regex in AddSessionDomainConstraintPass
  do not validate passwords when the hash is null
  ...
2019-12-07 17:42:39 +01:00
Nicolas Grekas
1d1e29c8cd Merge branch '4.4' into 5.0
* 4.4: (30 commits)
  [Security] Check UserInterface::getPassword is not null before calling needsRehash
  gracefully handle missing event dispatchers
  Fix TokenStorage::reset not called in stateless firewall
  [DotEnv] Remove `usePutEnv` property default value
  [HttpFoundation] get currently session.gc_maxlifetime if ttl doesnt exists
  Set up typo fix
  [DependencyInjection] Handle env var placeholders in CheckTypeDeclarationsPass
  [Cache] fix memory leak when using PhpArrayAdapter
  [Validator] Allow underscore character "_" in URL username and password
  [TwigBridge] Update bootstrap_4_layout.html.twig
  [FrameworkBundle][SodiumVault] Create secrets directory only when needed
  fix parsing negative octal numbers
  [SecurityBundle] Passwords are not encoded when algorithm set to \"true\"
  [DependencyInjection] Resolve expressions in CheckTypeDeclarationsPass
  [SecurityBundle] Properly escape regex in AddSessionDomainConstraintPass
  do not validate passwords when the hash is null
  [DI] fix resolving bindings for named TypedReference
  [Config] never try loading failed classes twice with ClassExistenceResource
  [Mailer] Fix SMTP Authentication when using STARTTLS
  [DI] Fix making the container path-independent when the app is in /app
  ...
2019-12-07 17:40:37 +01:00
Nicolas Grekas
6e44447e5d Merge branch '4.3' into 4.4
* 4.3:
  gracefully handle missing event dispatchers
  [Cache] fix memory leak when using PhpArrayAdapter
  fix parsing negative octal numbers
  [SecurityBundle] Properly escape regex in AddSessionDomainConstraintPass
  [Config] never try loading failed classes twice with ClassExistenceResource
2019-12-07 17:27:44 +01:00
Nicolas Grekas
a492e72129 Merge branch '3.4' into 4.3
* 3.4:
  [Cache] fix memory leak when using PhpArrayAdapter
  fix parsing negative octal numbers
  [SecurityBundle] Properly escape regex in AddSessionDomainConstraintPass
  [Config] never try loading failed classes twice with ClassExistenceResource
2019-12-07 17:25:26 +01:00
Fabien Potencier
b4c8d51fed bug #34760 [Mailer] Fix SMTP Authentication when using STARTTLS (DjLeChuck)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Fix SMTP Authentication when using STARTTLS

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

When the mail server uses STARTTLS, the SMTP Authentication is not performed because the AUTH capabilities are not send during the first EHLO call, but during the second one.

Example of problematic exchange solved by this PR:
```
      < 220 mydomain.tld ESMTP Postcow
      > EHLO [127.0.0.1]
      < 250-mydomain.tld
      < 250-PIPELINING
      < 250-SIZE 104857600
      < 250-ETRN
      < 250-STARTTLS
      < 250-ENHANCEDSTATUSCODES
      < 250-8BITMIME
      < 250-DSN
      < 250 CHUNKING
      > STARTTLS
      < 220 2.0.0 Ready to start TLS
      > EHLO [127.0.0.1]
      < 250-mydomain.tld
      < 250-PIPELINING
      < 250-SIZE 104857600
      < 250-ETRN
      < 250-AUTH PLAIN LOGIN
      < 250-AUTH=PLAIN LOGIN
      < 250-ENHANCEDSTATUSCODES
      < 250-8BITMIME
      < 250-DSN
      < 250 CHUNKING
      > MAIL FROM:<noreply@XXX>
      < 250 2.1.0 Ok
      > RCPT TO:<XXX>
      < 554 5.7.1 <XXX>: Client host rejected: Access denied
```

Commits
-------

75b54542ab [Mailer] Fix SMTP Authentication when using STARTTLS
2019-12-07 15:09:53 +01:00
Fabien Potencier
d84e92c965 feature #34769 [DependencyInjection] Autowire public typed properties (Plopix)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DependencyInjection] Autowire public typed properties

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

### Description

This PR adds the Autowiring of **public typed properties** in PHP 7.4.
It is only on "public" properties.

It could let people think that services are better injected in "public".
I don't know what to think about it, you?

### How about "private" properties - further thinking

Even if I think that it would be awesome to be able to inject in "private" properties, we discussed it with @nicolas-grekas, and I agree Symfony should not break any standard logic. If the property is private then it is private the DI cannot touch it.

But that could/would remove a lot of boilerplate, and if it is declarative, that might still be something to do.
Maybe we could introduce a new annotation for injection in "private": `@requiredPrivated` ?

Commits
-------

cad7fbb9f7 [DI] Autowire public typed properties
2019-12-07 14:48:36 +01:00
Fabien Potencier
c0b2ade0a3 bug #34762 [Config] never try loading failed classes twice with ClassExistenceResource (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] never try loading failed classes twice with ClassExistenceResource

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

Commits
-------

90c9a80863 [Config] never try loading failed classes twice with ClassExistenceResource
2019-12-07 14:42:18 +01:00
Fabien Potencier
53f2878827 bug #34783 [DependencyInjection] Handle env var placeholders in CheckTypeDeclarationsPass (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Handle env var placeholders in CheckTypeDeclarationsPass

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

A case we forgot to handle.

Commits
-------

c3574858b5 [DependencyInjection] Handle env var placeholders in CheckTypeDeclarationsPass
2019-12-07 14:39:57 +01:00
Fabien Potencier
7dbc4c677b bug #34839 [Cache] fix memory leak when using PhpArrayAdapter (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] fix memory leak when using PhpArrayAdapter

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

Thanks to @adrienfr, I've been able to understand what causes this massive memory leak when using `PhpArrayAdapter`:
![image](https://user-images.githubusercontent.com/243674/70262187-303b1b00-1794-11ea-9fcb-21ae29c31ff0.png)

When tests run, a new kernel is booted for each test case. This means a new instance of `PhpArrayAdapter` is created, which means it loads its state again and again using `include` for e.g. `annotations.php` in this example.

The first obvious thing is that we see this doing `compile::*`: this means PHP is parsing the same file again and again. But shouldn't opcache prevent this? Well, it's disabled by default because `opcache.enable_cli=0`. To prove the point, here is a comparison with the same tests run with `php -dopcache.enable_cli=1`. The comparison is swapped, but you'll get it:

![image](https://user-images.githubusercontent.com/243674/70262616-fb7b9380-1794-11ea-81c3-6fea0145a63b.png)

But that's not over: because of https://bugs.php.net/76982 (see #32236 also), we still have a memory leak when the included file contains closures. And this one does.

This PR fixes the issue by storing the return value of the include statement into a static property. This fits the caching model of `PhpArrayAdapter`: it's a read-only storage for system caches - i.e. its content is immutable.

Commits
-------

4194c4c56d [Cache] fix memory leak when using PhpArrayAdapter
2019-12-07 14:38:12 +01:00
Fabien Potencier
ed3e111e1d bug #34801 [String] implement __sleep()/__wakeup() on strings (nicolas-grekas)
This PR was merged into the 5.0 branch.

Discussion
----------

[String] implement __sleep()/__wakeup() on strings

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

This resets the transient ignoreCase state on unserialized instances.

Commits
-------

416e40d943 [String] implement __sleep()/__wakeup() on strings
2019-12-07 14:35:22 +01:00
Fabien Potencier
b3f513a9a6 bug #34782 [String] inline Latin-ASCII rules (nicolas-grekas)
This PR was merged into the 5.0 branch.

Discussion
----------

[String] inline Latin-ASCII rules

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

Makes the component a bit more portable.

Commits
-------

976a938736 [String] inline Latin-ASCII rules
2019-12-07 14:33:40 +01:00
Fabien Potencier
8f2cd5bd67 bug #34812 [Yaml] fix parsing negative octal numbers (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] fix parsing negative octal numbers

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

Commits
-------

7ab53f9a39 fix parsing negative octal numbers
2019-12-07 14:29:49 +01:00
Fabien Potencier
9a025b44d9 bug #34854 [Messenger] gracefully handle missing event dispatchers (xabbuh)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] gracefully handle missing event dispatchers

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

Commits
-------

d4ae85fc72 gracefully handle missing event dispatchers
2019-12-07 05:52:32 +01:00
dbrekelmans
8e4cf497cd [Security] Check UserInterface::getPassword is not null before calling needsRehash 2019-12-06 21:36:15 +01:00
Christian Flothmann
d4ae85fc72 gracefully handle missing event dispatchers 2019-12-06 19:13:02 +01:00
Christian Flothmann
de0df4637d mark the Composite constraint as internal 2019-12-06 14:36:16 +01:00
Christian Flothmann
33146778b5 Merge branch '4.3' into 4.4
* 4.3:
  [DotEnv] Remove `usePutEnv` property default value
  Set up typo fix
  [Validator] Allow underscore character "_" in URL username and password
  [SecurityBundle] Passwords are not encoded when algorithm set to \"true\"
  do not validate passwords when the hash is null
  [DI] fix resolving bindings for named TypedReference
  [DI] Fix making the container path-independent when the app is in /app
  Allow copy instead of symlink for ./link script
  [FrameworkBundle] resolve service locators in `debug:*` commands
  bumped Symfony version to 4.3.10
  updated VERSION for 4.3.9
  updated CHANGELOG for 4.3.9
  bumped Symfony version to 3.4.37
  updated VERSION for 3.4.36
  update CONTRIBUTORS for 3.4.36
  updated CHANGELOG for 3.4.36
  Add test on ServerLogHandler
2019-12-06 14:32:19 +01:00
Christian Flothmann
2ac56093a5 Merge branch '3.4' into 4.3
* 3.4:
  [Validator] Allow underscore character "_" in URL username and password
  [SecurityBundle] Passwords are not encoded when algorithm set to \"true\"
  do not validate passwords when the hash is null
  [DI] Fix making the container path-independent when the app is in /app
  Allow copy instead of symlink for ./link script
  [FrameworkBundle] resolve service locators in `debug:*` commands
  bumped Symfony version to 3.4.37
  updated VERSION for 3.4.36
  update CONTRIBUTORS for 3.4.36
  updated CHANGELOG for 3.4.36
2019-12-06 14:11:20 +01:00
Tugdual Saunier
362c339fa6
[DotEnv] Remove usePutEnv property default value
The value is already set in the constructor (and changes in 5.0) and the class is final.
2019-12-06 12:04:06 +01:00
Nicolas Grekas
3c7b775b3e [Process] change the syntax of portable prepared command lines 2019-12-06 11:06:46 +01:00
Rafael Tovar
b6253e2336 [HttpFoundation] get currently session.gc_maxlifetime if ttl doesnt exists 2019-12-06 10:28:38 +01:00
Alex Bacart
b0daf020de Set up typo fix 2019-12-06 10:25:38 +01:00
Thomas Calvet
c3574858b5 [DependencyInjection] Handle env var placeholders in CheckTypeDeclarationsPass 2019-12-05 23:06:19 +01:00
Nicolas Grekas
4194c4c56d [Cache] fix memory leak when using PhpArrayAdapter 2019-12-05 19:35:35 +01:00
Romain Neutron
869518bc7e
[Validator] Allow underscore character "_" in URL username and password 2019-12-05 15:05:00 +01:00
Christian Flothmann
7ab53f9a39 fix parsing negative octal numbers 2019-12-04 12:33:46 +01:00
Nicolas Grekas
416e40d943 [String] implement __sleep()/__wakeup() on strings 2019-12-04 09:11:16 +01:00
Robin Chalas
bea74560e1 [Security} Make remember-me user providers lazy 2019-12-04 08:39:48 +01:00
Fabien Potencier
7f567584a5 bug #34794 [DependencyInjection] Resolve expressions in CheckTypeDeclarationsPass (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Resolve expressions in CheckTypeDeclarationsPass

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

One more case we forgot 😅

Commits
-------

b6c5a54cfd [DependencyInjection] Resolve expressions in CheckTypeDeclarationsPass
2019-12-04 07:43:26 +01:00
Fabien Potencier
98694d8677 bug #34795 [Routing][ObjectLoader] Remove forgotten deprecation after merge (fancyweb)
This PR was merged into the 5.0 branch.

Discussion
----------

[Routing][ObjectLoader] Remove forgotten deprecation after merge

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

https://github.com/symfony/symfony/pull/34621 needs to be gone on 5.0. We want to throw here. I think it was forgotten when merging in 5.0.

Commits
-------

4e60b9db22 [Routing][ObjectLoader] Remove forgotten deprecation after merge
2019-12-04 07:40:02 +01:00
Fabien Potencier
fb08d9c101 Merge branch '4.4' into 5.0
* 4.4:
  Fixed translations file dumper behavior
  When set, get secret from config variable
  [FrameworkBundle] Set the parameter bag as resolved in ContainerLintCommand
  [SecurityBundle] Fix switch_user provider configuration handling
2019-12-04 07:31:37 +01:00
Yonel Ceruto
1c41ae7631 Fixed translations file dumper behavior 2019-12-03 23:35:13 -05:00
Thomas Calvet
4e60b9db22 [Routing][ObjectLoader] Remove forgotten deprecation after merge 2019-12-03 23:29:20 +01:00
Thomas Calvet
b6c5a54cfd [DependencyInjection] Resolve expressions in CheckTypeDeclarationsPass 2019-12-03 21:47:51 +01:00
Christian Flothmann
5699cb22bb do not validate passwords when the hash is null 2019-12-03 19:05:24 +01:00
Nicolas Grekas
c732122b57 Merge branch '5.0'
* 5.0:
  [Security/Core] Fix checking for SHA256/SHA512 passwords
  [Cache][Lock] fix tests
  bumped Symfony version to 5.0.2
  updated VERSION for 5.0.1
  updated CHANGELOG for 5.0.1
  bumped Symfony version to 4.4.2
  updated VERSION for 4.4.1
  updated CHANGELOG for 4.4.1
2019-12-03 17:36:15 +01:00
Nicolas Grekas
9dbeab93f2 Merge branch '4.4' into 5.0
* 4.4:
  [Security/Core] Fix checking for SHA256/SHA512 passwords
  [Cache][Lock] fix tests
  bumped Symfony version to 4.4.2
  updated VERSION for 4.4.1
  updated CHANGELOG for 4.4.1
2019-12-03 17:35:18 +01:00
Nicolas Grekas
1f0070521c minor #34778 [Cache][Lock] fix tests (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache][Lock] fix tests

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

Commits
-------

5845c3f8cd [Cache][Lock] fix tests
2019-12-03 17:13:30 +01:00
Nicolas Grekas
976a938736 [String] inline Latin-ASCII rules 2019-12-03 16:53:46 +01:00
David Brooks
799c85b67c [Security/Core] Fix checking for SHA256/SHA512 passwords 2019-12-03 15:57:37 +01:00
Nicolas Grekas
5845c3f8cd [Cache][Lock] fix tests 2019-12-03 11:28:45 +01:00
Nicolas Grekas
62c227e368 [DI] fix resolving bindings for named TypedReference 2019-12-03 10:36:50 +01:00
Morel Sébastien
cad7fbb9f7
[DI] Autowire public typed properties 2019-12-03 01:03:38 -08:00
Fabien Potencier
6c163906f2 feature #34771 Deprecate *Response::create() methods (fabpot)
This PR was merged into the 5.1-dev branch.

Discussion
----------

Deprecate *Response::create() methods

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | yes <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a<!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | -

The `::create()` methods of the `Response` class hierarchy are not needed anymore in modern PHP versions as we can use parenthesis around the new operator. So `Response::create()->...()` is equivalent to `(new Response)->...()`.

Let's deprecate the static method. It's also good as the first parameter type changes depending on the sub-class.

Commits
-------

ebb13e7c99 Deprecate *Response::create() methods
2019-12-03 09:14:46 +01:00
Javier Eguiluz
138200cd88 [Form] Allow to translate each language into its language in LanguageType 2019-12-03 09:12:30 +01:00
Nicolas Grekas
90c9a80863 [Config] never try loading failed classes twice with ClassExistenceResource 2019-12-03 08:51:16 +01:00
Fabien Potencier
ebb13e7c99 Deprecate *Response::create() methods 2019-12-03 07:30:08 +01:00
Vivien
75b54542ab [Mailer] Fix SMTP Authentication when using STARTTLS 2019-12-02 17:18:01 +01:00
Nicolas Grekas
b33b9a6ad9 [DI] Fix making the container path-independent when the app is in /app 2019-12-02 16:26:29 +01:00
Dmitry Pigin
ab9b49b5c6 [Notifier] Added possibility to extract path from provided DSN 2019-12-01 21:12:29 +02:00
Fabien Potencier
08a8e77991 bumped Symfony version to 5.0.2 2019-12-01 15:15:07 +01:00
Fabien Potencier
ffd6087323 updated VERSION for 5.0.1 2019-12-01 15:11:30 +01:00
Fabien Potencier
f75e9d583c bumped Symfony version to 4.4.2 2019-12-01 15:09:53 +01:00
Fabien Potencier
5009b8a838 updated VERSION for 4.4.1 2019-12-01 15:06:38 +01:00
Fabien Potencier
e9366b4d17 bumped Symfony version to 4.3.10 2019-12-01 15:05:41 +01:00
Fabien Potencier
7ac4f9062d updated VERSION for 4.3.9 2019-12-01 15:00:23 +01:00
Fabien Potencier
7a13ea3efb bumped Symfony version to 3.4.37 2019-12-01 14:59:33 +01:00
Fabien Potencier
ae2514cd03 updated VERSION for 3.4.36 2019-12-01 14:50:37 +01:00
Nicolas Grekas
e0f6cdb1c7 Merge branch '5.0'
* 5.0:
  [HttpClient] Fix deps
  Fix tests
2019-12-01 12:19:04 +01:00
Nicolas Grekas
a266b35bbd [HttpClient] Fix deps 2019-12-01 12:18:54 +01:00
Nicolas Grekas
af81b8bbb7 Fix tests 2019-12-01 12:14:36 +01:00
Nicolas Grekas
861fb4b520 Merge branch '5.0'
* 5.0:
  Fix failures on PHP 7.4
  Fix tests
  [Console] fix typos
  [Console] fix tests
2019-12-01 11:51:31 +01:00
Nicolas Grekas
572117a660 Merge branch '4.4' into 5.0
* 4.4:
  Fix failures on PHP 7.4
  Fix tests
  [Console] fix typos
  [Console] fix tests
2019-12-01 11:51:15 +01:00
Nicolas Grekas
febff9b1fd Merge branch '4.3' into 4.4
* 4.3:
  Fix failures on PHP 7.4
2019-12-01 11:50:45 +01:00
Nicolas Grekas
54e2ad7c88 Merge branch '3.4' into 4.3
* 3.4:
  Fix failures on PHP 7.4
2019-12-01 11:50:31 +01:00
Nicolas Grekas
a94e76a866 Fix failures on PHP 7.4 2019-12-01 11:45:41 +01:00
Nicolas Grekas
9ad38b2e5f Fix tests 2019-12-01 11:19:36 +01:00
Nicolas Grekas
c22b36ef50 Merge branch '4.3' into 4.4
* 4.3:
  [Console] fix typos
  [Console] fix tests
2019-12-01 11:06:17 +01:00
Nicolas Grekas
a489c529ef Merge branch '3.4' into 4.3
* 3.4:
  [Console] fix typos
2019-12-01 11:04:59 +01:00
Nicolas Grekas
abc2880be4 [Console] fix typos 2019-12-01 11:04:45 +01:00
Nicolas Grekas
cd2a8d2628 [Console] fix tests 2019-12-01 10:59:54 +01:00
Fabien Potencier
324272111c Merge branch '5.0'
* 5.0:
  Add missing use statement
  [Notifier] Add telegram tests
  [Notifier] Add Slack bridge tests
2019-12-01 10:14:14 +01:00
Fabien Potencier
32b5d07139 Merge branch '4.4' into 5.0
* 4.4:
  Add missing use statement
2019-12-01 10:14:07 +01:00
Fabien Potencier
f3a670fb4a Add missing use statement 2019-12-01 10:13:30 +01:00
Fabien Potencier
c147ef4bc7 Merge branch '4.4'
* 4.4:
  Fix CS
  Fix CS
  Fix CS
  [DependencyInjection][Xml] Fix the attribute 'tag' is not allowed in 'bind' tag
2019-12-01 09:49:37 +01:00
Fabien Potencier
c13974cc20 Merge branch '4.4' into 5.0
* 4.4:
  Fix CS
  Fix CS
  Fix CS
  [DependencyInjection][Xml] Fix the attribute 'tag' is not allowed in 'bind' tag
2019-12-01 09:48:26 +01:00
Fabien Potencier
23e5d1aa8e Fix CS 2019-12-01 09:46:01 +01:00
Fabien Potencier
9b10c167ef Merge branch '4.3' into 4.4
* 4.3:
  Fix CS
  Fix CS
2019-12-01 09:39:58 +01:00
Fabien Potencier
2c04fad016 Fix CS 2019-12-01 09:39:44 +01:00
Fabien Potencier
d5ca9ec2c7 Merge branch '3.4' into 4.3
* 3.4:
  Fix CS
2019-12-01 09:34:52 +01:00
Fabien Potencier
861783cc15 Fix CS 2019-12-01 09:33:36 +01:00
Fabien Potencier
a6527464e7 minor #34539 [Notifier] Add telegram tests (Jeroeny)
This PR was squashed before being merged into the 5.0 branch (closes #34539).

Discussion
----------

[Notifier] Add telegram tests

| Q             | A
| ------------- | ---
| Branch?       | 5.0
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | See #33687
| License       | MIT

Adds tests for the Telegram bridge of the Notifier component. Not sure if this is the right way to go, but would love some feedback.

#SymfonyHackday

Commits
-------

3b4d83cb4a [Notifier] Add telegram tests
2019-11-30 19:15:43 +01:00
Jeroeny
3b4d83cb4a [Notifier] Add telegram tests 2019-11-30 19:15:37 +01:00
Fabien Potencier
0be4647bd9 minor #34549 [Notifier] Add Slack bridge tests (Jeroeny)
This PR was squashed before being merged into the 5.0 branch (closes #34549).

Discussion
----------

[Notifier] Add Slack bridge tests

| Q             | A
| ------------- | ---
| Branch?       | 5.0
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | See #33687
| License       | MIT

Adds tests for the Slack bridge of the Notifier component.

#SymfonyHackday

Commits
-------

626fdaa9a4 [Notifier] Add Slack bridge tests
2019-11-30 19:14:26 +01:00
Jeroeny
626fdaa9a4 [Notifier] Add Slack bridge tests 2019-11-30 19:14:20 +01:00
tien.xuan.vo
e38f7d41ef [DependencyInjection][Xml] Fix the attribute 'tag' is not allowed in 'bind' tag 2019-11-30 23:34:06 +07:00
Nicolas Grekas
c62bb82e27 Merge branch '5.0'
* 5.0:
  [DI] auto-register singly implemented interfaces by default
  [DI] fix overriding existing services with aliases for singly-implemented interfaces
  remove service when base class is missing
  do not depend on the QueryBuilder from the ORM
  [Security/Http] call auth listeners/guards eagerly when they "support" the request
  [Messenger] add tests to FailedMessagesShowCommand
  Fix the translation commands when a template contains a syntax error
  [Security] Fix clearing remember-me cookie after deauthentication
  [Validator] Update Slovenian translations
  [HttpClient] remove conflict rule with HttpKernel that prevents using the component in Symfony 3.4
  [Config][ReflectionClassResource] Handle parameters with undefined constant as their default values
  Fix compatibility with Monolog 2
  fix dumping number-like string parameters
  Fix CI
  [Console] Fix autocomplete multibyte input support
  [Config] don't break on virtual stack frames in ClassExistenceResource
  more robust initialization from request
  Changing the multipart form-data behavior to use the form name as an array, which makes it recognizable as an array by PHP on the $_POST globals once it is coming from the HttpClient component
2019-11-30 15:13:05 +01:00
Nicolas Grekas
bb11cac33e Merge branch '4.4' into 5.0
* 4.4:
  [DI] auto-register singly implemented interfaces by default
  [DI] fix overriding existing services with aliases for singly-implemented interfaces
  remove service when base class is missing
  do not depend on the QueryBuilder from the ORM
  [Security/Http] call auth listeners/guards eagerly when they "support" the request
  [Messenger] add tests to FailedMessagesShowCommand
  Fix the translation commands when a template contains a syntax error
  [Security] Fix clearing remember-me cookie after deauthentication
  [Validator] Update Slovenian translations
  [HttpClient] remove conflict rule with HttpKernel that prevents using the component in Symfony 3.4
  [Config][ReflectionClassResource] Handle parameters with undefined constant as their default values
  fix dumping number-like string parameters
  Fix CI
  [Console] Fix autocomplete multibyte input support
  [Config] don't break on virtual stack frames in ClassExistenceResource
  more robust initialization from request
  Changing the multipart form-data behavior to use the form name as an array, which makes it recognizable as an array by PHP on the $_POST globals once it is coming from the HttpClient component
2019-11-30 15:12:50 +01:00
Nicolas Grekas
9b658ed4a2 bug #34729 [DI] auto-register singly implemented interfaces by default (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] auto-register singly implemented interfaces by default

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

Commits
-------

209b330fd6 [DI] auto-register singly implemented interfaces by default
2019-11-30 15:05:16 +01:00
Nicolas Grekas
c222aaae70 bug #34728 [DI] fix overriding existing services with aliases for singly-implemented interfaces (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] fix overriding existing services with aliases for singly-implemented interfaces

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

Commits
-------

739357656d [DI] fix overriding existing services with aliases for singly-implemented interfaces
2019-11-30 15:04:25 +01:00
Nicolas Grekas
df379f0d07 Merge branch '4.3' into 4.4
* 4.3:
  [Messenger] add tests to FailedMessagesShowCommand
  Fix the translation commands when a template contains a syntax error
  [Security] Fix clearing remember-me cookie after deauthentication
  [Validator] Update Slovenian translations
  [Config][ReflectionClassResource] Handle parameters with undefined constant as their default values
  fix dumping number-like string parameters
  Fix CI
  [Console] Fix autocomplete multibyte input support
  [Config] don't break on virtual stack frames in ClassExistenceResource
  more robust initialization from request
2019-11-30 15:03:57 +01:00
Nicolas Grekas
cad14177dc Merge branch '3.4' into 4.3
* 3.4:
  [Security] Fix clearing remember-me cookie after deauthentication
  more robust initialization from request
2019-11-30 14:16:45 +01:00
LIBERT Jérémy
d6ccd4c40f Added MimeType for ".msg" 2019-11-30 14:04:25 +01:00
Fabien Potencier
9b3cc04522 bug #34649 more robust initialization from request (dbu)
This PR was merged into the 3.4 branch.

Discussion
----------

more robust initialization from request

Request::getPort is declared as int|string but can actually return null.

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

I discovered this problem with a functional test where i dispatch the RequestEvent with a `new Request()`. This used to work in symfony 4 and now triggers an error `Argument 1 passed to Symfony\Component\Routing\RequestContext::setHttpPort() must be of the type int, null given`

In regular web requests, this should probably never happen, but it seems to me if Request is not robust, the RequestContext should be robust about it.

Commits
-------

c6ed0f0208 more robust initialization from request
2019-11-30 13:57:32 +01:00
Nicolas Grekas
209b330fd6 [DI] auto-register singly implemented interfaces by default 2019-11-30 13:50:03 +01:00
Nicolas Grekas
739357656d [DI] fix overriding existing services with aliases for singly-implemented interfaces 2019-11-30 13:15:17 +01:00
Fabien Potencier
4d11bca474 bug #34627 [Security/Http] call auth listeners/guards eagerly when they "support" the request (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security/Http] call auth listeners/guards eagerly when they "support" the request

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

This fixes the form authenticator linked to #34614.
Since laziness is here to provide compatibility with HTTP caching, it should be disabled when the request cannot be cached.

Tests don't pass yet, but I'm on the path to something here.

The PR now introduces a new `AbstractListener` that splits the handling logic in two:
- `supports(Request): ?bool` is always called eagerly and tells whether the listener matches the request for an earger call or a lazy call
- `authenticate(RequestEvent)` does the rest of the job when `supports()` allows so - lazily or not depending on the return value of `supports()`.

Of course, this remains compatible with non-lazy logics, see `AbstractListener::__invoke()`.

Commits
-------

b20ebe6b90 [Security/Http] call auth listeners/guards eagerly when they "support" the request
2019-11-30 10:56:08 +01:00
Nicolas Grekas
b20ebe6b90 [Security/Http] call auth listeners/guards eagerly when they "support" the request 2019-11-30 10:49:41 +01:00
Fabien Potencier
d2a5c057c5 bug #34671 [Security] Fix clearing remember-me cookie after deauthentication (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Fix clearing remember-me cookie after deauthentication

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

If you are using the `remember_me` listener and the refreshed user is deauthenticated, you are still logged in because the remember-me cookie does not get cleared.
This fixes it.

Commits
-------

d625a73705 [Security] Fix clearing remember-me cookie after deauthentication
2019-11-30 09:47:34 +01:00
Fabien Potencier
270247aa74 feature #34705 [Validator] Label regex in date validator (kristofvc)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Validator] Label regex in date validator

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

This change makes sure that when extending the DateValidator you can easily change the format withouth changing anything else.
eg. you can change the pattern to
`/^(?<day>\d{2})/(?<month>\d{2})/(?<year>\d{4})$/` but the implementation still checks your date correctly.

Commits
-------

ec09f7e630 Label regex in date validator
2019-11-30 09:31:28 +01:00
Fabien Potencier
2a9c31e6cf Merge branch '3.4' into 4.3
* 3.4:
  Fix the translation commands when a template contains a syntax error
  [Validator] Update Slovenian translations
2019-11-30 09:28:34 +01:00
Fabien Potencier
6cc2c293bc bug #34032 [Mime] Fixing multidimensional array structure with FormDataPart (jvahldick)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mime] Fixing multidimensional array structure with FormDataPart

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

The issue is pretty much described on #34031
The current structure of the raw body build on FormDataPart is not well recognized by the server. It considers all the fields as a root type, when actually it is possible to send arrays by html forms.

Lets the following structure on the html
```html
<input type="text" name="names[]" value="John" />
<input type="text" name="names[]" value="Doe" />
```

It creates the following raw body:
```
----------------------------466490401959219490193856
Content-Disposition: form-data; name="names[]"

John
----------------------------466490401959219490193856
Content-Disposition: form-data; name="names[]"

Doe
----------------------------466490401959219490193856--
```

Meanwhile, the FormDataPart on Mime component generates the following body:
```
--_=_symfony_1571410799_b7846b3b4e86d821cdec4379e62b4068_=_
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data

John
--_=_symfony_1571410799_b7846b3b4e86d821cdec4379e62b4068_=_
Content-Type: text/plain; charset=utf-8; name=1
Content-Transfer-Encoding: 8bit
Content-Disposition: form-data; name=1

Doe
--_=_symfony_1571410799_b7846b3b4e86d821cdec4379e62b4068_=_--
```

For more complex structures, the $_POST doesn't even recognize properly the field names and values.

Commits
-------

ca630e5351 Changing the multipart form-data behavior to use the form name as an array, which makes it recognizable as an array by PHP on the $_POST globals once it is coming from the HttpClient component
2019-11-30 09:27:26 +01:00
Fabien Potencier
1d03e0e1a8 minor #34641 [Messenger] add tests to FailedMessagesShowCommand (ahmedash95)
This PR was squashed before being merged into the 4.3 branch (closes #34641).

Discussion
----------

[Messenger] add tests to FailedMessagesShowCommand

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

Add missing tests to FailedMessagesShowCommand in Messenger component

Commits
-------

4b9b93f5d6 [Messenger] add tests to FailedMessagesShowCommand
2019-11-30 09:26:46 +01:00
Ahmed
4b9b93f5d6 [Messenger] add tests to FailedMessagesShowCommand 2019-11-30 09:26:41 +01:00
Robin Chalas
d625a73705 [Security] Fix clearing remember-me cookie after deauthentication 2019-11-30 02:46:11 +01:00
Kristof Van Cauwenbergh
ec09f7e630 Label regex in date validator 2019-11-29 21:04:48 +01:00
Peter Kokot
b2ae60a73b [Validator] Update Slovenian translations 2019-11-29 20:07:18 +01:00
Nicolas Grekas
73ea89b4c2 Merge branch '3.4' into 4.3
* 3.4:
  [Config][ReflectionClassResource] Handle parameters with undefined constant as their default values
  fix dumping number-like string parameters
  [Console] Fix autocomplete multibyte input support
  [Config] don't break on virtual stack frames in ClassExistenceResource
2019-11-29 18:37:27 +01:00
Nicolas Grekas
d9c6476407 [HttpClient] remove conflict rule with HttpKernel that prevents using the component in Symfony 3.4 2019-11-29 17:55:58 +01:00
Nicolas Grekas
9eafff5ec0 bug #34560 [Config][ReflectionClassResource] Handle parameters with undefined constant as their default values (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config][ReflectionClassResource] Handle parameters with undefined constant as their default values

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

Basically we can fix this bug by "reimplementing" php src way of building the __toString() of the method except that we avoid to call the undefined constant. Obviously we cannot invalidate the resource if the value of the constant changes since we never knew it. However, it's still better than now.

Commits
-------

8de2a226a8 [Config][ReflectionClassResource] Handle parameters with undefined constant as their default values
2019-11-29 17:06:11 +01:00
Thomas Calvet
8de2a226a8 [Config][ReflectionClassResource] Handle parameters with undefined constant as their default values 2019-11-29 17:04:16 +01:00
Nicolas Grekas
2d2dd6244c bug #34695 [Config] don't break on virtual stack frames in ClassExistenceResource (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] don't break on virtual stack frames in ClassExistenceResource

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

Commits
-------

fffeccd744 [Config] don't break on virtual stack frames in ClassExistenceResource
2019-11-29 17:02:06 +01:00
Christian Flothmann
e0851737ab bug #34716 [DependencyInjection] fix dumping number-like string parameters (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[DependencyInjection] fix dumping number-like string parameters

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

Commits
-------

a1ce0ed086 fix dumping number-like string parameters
2019-11-29 16:39:50 +01:00
Grégoire Pineau
0a91f9baa1 feature #34591 [Workflow] Added Registry::has() to check if a workflow exists (lyrixx)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[Workflow] Added `Registry::has()` to check if a workflow exists

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

---

Allow to use
```php
$registry->has($subject);
// or
$registry->has($subject, 'workflow_a')
```

Commits
-------

8a4f03dee8 [Workflow] Added `Registry::has()` to check if a workflow exists
2019-11-29 16:39:47 +01:00
Christian Flothmann
a1ce0ed086 fix dumping number-like string parameters 2019-11-29 16:28:12 +01:00
Jan Schädlich
2640dfedfa [Yaml] Introduce yaml-lint binary 2019-11-29 10:38:36 +01:00
Thomas Calvet
a1129f938c [Console] Fix autocomplete multibyte input support 2019-11-29 10:09:40 +01:00
Nicolas Grekas
fffeccd744 [Config] don't break on virtual stack frames in ClassExistenceResource 2019-11-28 16:42:08 +01:00
Nicolas Grekas
746614807a Merge branch '5.0'
* 5.0:
  Fix merge
2019-11-28 15:32:46 +01:00
Nicolas Grekas
7c7d98135a Fix merge 2019-11-28 15:32:28 +01:00
Nicolas Grekas
d7cc01cd76 Merge branch '5.0'
* 5.0: (30 commits)
  bug #34554 [HttpClient] Fix early cleanup of pushed HTTP/2 responses (lyrixx)
  Fix tests
  [Console] Fix commands description with numeric namespaces
  [HttpFoundation] Fixed typo
  [DI] Skip unknown method calls for factories in check types pass
  [EventDispatcher] Better error reporting when arguments to dispatch() are swapped
  [errorHandler] Remove old references from the old debug component
  improve upgrade instructions for twig.exception_controller configuration
  [HttpFoundation] Update CHANGELOG for PdoSessionHandler BC BREAK in 4.4
  [Serializer] CsvEncoder::NO_HEADERS_KEY ignored when used in constructor
  [Form] Keep preferred_choices order for choice groups
  [Debug] work around failing chdir() on Darwin
  [PhpUnitBridge] Read configuration CLI directive
  [DI] Missing test on YamlFileLoader
  Revert "minor #34608 [Process] add tests for php executable finder if file does not exist (ahmedash95)"
  Simpler example for Apache basic auth workaround
  [Console] Fix trying to access array offset on value of type int
  [Config] Remove extra sprintf arg
  [HttpKernel] fix typo
  [HttpKernel] Support typehint to deprecated FlattenException in controller
  ...
2019-11-28 15:26:02 +01:00
Nicolas Grekas
3aa2a770b8 Merge branch '4.4' into 5.0
* 4.4: (28 commits)
  bug #34554 [HttpClient] Fix early cleanup of pushed HTTP/2 responses (lyrixx)
  Fix tests
  [Console] Fix commands description with numeric namespaces
  [HttpFoundation] Fixed typo
  [DI] Skip unknown method calls for factories in check types pass
  [EventDispatcher] Better error reporting when arguments to dispatch() are swapped
  improve upgrade instructions for twig.exception_controller configuration
  [HttpFoundation] Update CHANGELOG for PdoSessionHandler BC BREAK in 4.4
  [Serializer] CsvEncoder::NO_HEADERS_KEY ignored when used in constructor
  [Form] Keep preferred_choices order for choice groups
  [Debug] work around failing chdir() on Darwin
  [PhpUnitBridge] Read configuration CLI directive
  [DI] Missing test on YamlFileLoader
  Revert "minor #34608 [Process] add tests for php executable finder if file does not exist (ahmedash95)"
  Simpler example for Apache basic auth workaround
  [Console] Fix trying to access array offset on value of type int
  [Config] Remove extra sprintf arg
  [HttpKernel] fix typo
  [HttpKernel] Support typehint to deprecated FlattenException in controller
  Add preview mode support for Html and Serializer error renderers
  ...
2019-11-28 15:20:16 +01:00
Nicolas Grekas
475967cbc1 Merge branch '4.3' into 4.4
* 4.3:
  bug #34554 [HttpClient] Fix early cleanup of pushed HTTP/2 responses (lyrixx)
2019-11-28 15:12:27 +01:00
Nicolas Grekas
53127c54a1 bug #34554 [HttpClient] Fix early cleanup of pushed HTTP/2 responses (lyrixx)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] Fix early cleanup of pushed HTTP/2 responses

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

Commits
-------

0f51da6ec7 [HttpClient] Fix early cleanup of pushed HTTP/2 responses
2019-11-28 15:09:27 +01:00
Nicolas Grekas
3e917dbfe3 Merge branch '4.3' into 4.4
* 4.3:
  Fix tests
  [Console] Fix commands description with numeric namespaces
  [HttpFoundation] Fixed typo
  [EventDispatcher] Better error reporting when arguments to dispatch() are swapped
  [Serializer] CsvEncoder::NO_HEADERS_KEY ignored when used in constructor
  [Form] Keep preferred_choices order for choice groups
  [Debug] work around failing chdir() on Darwin
  [PhpUnitBridge] Read configuration CLI directive
  [DI] Missing test on YamlFileLoader
  Revert "minor #34608 [Process] add tests for php executable finder if file does not exist (ahmedash95)"
  Simpler example for Apache basic auth workaround
  [Console] Fix trying to access array offset on value of type int
  [Config] Remove extra sprintf arg
  [VarDumper] notice on potential undefined index
  [HttpClient] turn exception into log when the request has no content-type
  [Process] add tests for php executable finder if file does not exist
  [Cache] Make sure we get the correct number of values from redis::mget()
  [TwigBridge] Add row_attr to all form themes
  [Serializer] Fix MetadataAwareNameConverter usage with string group
2019-11-28 14:33:56 +01:00
Nicolas Grekas
845943ab10 Merge branch '3.4' into 4.3
* 3.4:
  [Console] Fix commands description with numeric namespaces
  [HttpFoundation] Fixed typo
2019-11-28 14:29:27 +01:00
Nicolas Grekas
fa783f9697 bug #34130 [Console] Fix commands description with numeric namespaces (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Fix commands description with numeric namespaces

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

This PR fixes the linked ticket case.

It also changes the keys sorting to display the numeric namespaces first.

It also fixes another bug if your command name starts with `_global:`. In this special case the command is considered global but its full name is still `_global:xxx`. We can't do better without more refactoring since the final array of namespaces and global commands is shared, `_global` just being a special key. Currently, if your command starts with `_global`, all global commands are not displayed at all so it's better like this anyway.

It also fixes another bug if your command starts with `0:` (cf `'' ===` comparison).

Commits
-------

4d47868125 [Console] Fix commands description with numeric namespaces
2019-11-28 14:28:57 +01:00
Nicolas Grekas
51045927da Fix tests 2019-11-28 14:25:45 +01:00
Thomas Calvet
4d47868125 [Console] Fix commands description with numeric namespaces 2019-11-28 14:20:50 +01:00
Thomas Bisignani
3378890e70 [HttpFoundation] Fixed typo 2019-11-28 13:52:59 +01:00
Nicolas Grekas
8378d958e2 bug #34562 [DI] Skip unknown method calls for factories in check types pass (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] Skip unknown method calls for factories in check types pass

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

Ref https://github.com/symfony/symfony/issues/30885 and https://github.com/symfony/symfony/pull/30889.

Commits
-------

592bff88f2 [DI] Skip unknown method calls for factories in check types pass
2019-11-28 13:12:35 +01:00
Thomas Calvet
592bff88f2 [DI] Skip unknown method calls for factories in check types pass 2019-11-28 13:12:16 +01:00
Nicolas Grekas
28c3b3e3e7 bug #34677 [EventDispatcher] Better error reporting when arguments to dispatch() are swapped (rimas-kudelis)
This PR was squashed before being merged into the 4.3 branch.

Discussion
----------

[EventDispatcher] Better error reporting when arguments to dispatch() are swapped

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

Incorrect error is currently being reported when the second argument is an instance of `Symfony\Contracts\EventDispatcher\Event`.

Commits
-------

54aac56ab8 [EventDispatcher] Better error reporting when arguments to dispatch() are swapped
2019-11-28 12:54:58 +01:00
Rimas Kudelis
54aac56ab8 [EventDispatcher] Better error reporting when arguments to dispatch() are swapped 2019-11-28 12:54:51 +01:00
Vincent
326df983ca [errorHandler] Remove old references from the old debug component 2019-11-28 12:50:50 +01:00
Nicolas Grekas
8d22819443 minor #34582 [HttpFoundation] Update CHANGELOG for PdoSessionHandler BC BREAK in 4.4 (tseho)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] Update CHANGELOG for PdoSessionHandler BC BREAK in 4.4

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

As explained in https://github.com/symfony/symfony/issues/34491, there was a BC BREAK between 4.3 and 4.4, when using `PdoSessionHandler` with MySQL, where the column `sess_lifetime` was modified from `MEDIUMINT` to `INTEGER UNSIGNED`.

This PR updates `UPGRADE-4.4.md` with a suggested query for updating the database accordingly.

Commits
-------

eda4d68f7d [HttpFoundation] Update CHANGELOG for PdoSessionHandler BC BREAK in 4.4
2019-11-28 12:41:55 +01:00
Quentin Favrie
eda4d68f7d [HttpFoundation] Update CHANGELOG for PdoSessionHandler BC BREAK in 4.4 2019-11-28 12:41:49 +01:00
Nicolas Grekas
50db43fc4c bug #34019 [Serializer] CsvEncoder::NO_HEADERS_KEY ignored when used in constructor (Dario Savella)
This PR was squashed before being merged into the 4.3 branch.

Discussion
----------

[Serializer] CsvEncoder::NO_HEADERS_KEY ignored when used in constructor

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| License       | MIT

My first pull request...
The following code:
```
$data = <<<EOD
a,b
c,d
EOD;
$encoder = new CsvEncoder([CsvEncoder::NO_HEADERS_KEY=>true]);
var_dump($encoder->decode($data,'csv'));
```
produces:
```
array(2) {
  'a' =>
  string(1) "c"
  'b' =>
  string(1) "d"
}
```
instead of the expected:
```
array(2) {
  [0] =>
  array(2) {
    [0] =>
    string(1) "a"
    [1] =>
    string(1) "b"
  }
  [1] =>
  array(2) {
    [0] =>
    string(1) "c"
    [1] =>
    string(1) "d"
  }
}
```

Commits
-------

a0430f6917 [Serializer] CsvEncoder::NO_HEADERS_KEY ignored when used in constructor
2019-11-28 12:29:50 +01:00
Dario Savella
a0430f6917 [Serializer] CsvEncoder::NO_HEADERS_KEY ignored when used in constructor 2019-11-28 12:29:45 +01:00
Nicolas Grekas
ab5e7fa706 bug #34083 [Form] Keep preferred_choices order for choice groups (vilius-g)
This PR was squashed before being merged into the 4.3 branch.

Discussion
----------

[Form] Keep preferred_choices order for choice groups

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

Since 4.3 ordering of `preferred_choices` is preserved when displaying form. But this only works for flat options. When the choices are grouped, the preferred groups are in default order.

Now the preferred choice group order is derived by taking the first matching choice from `preferred_choices` and using its position to sort the groups.

Commits
-------

75404e5287 [Form] Keep preferred_choices order for choice groups
2019-11-28 12:24:09 +01:00
Vilius Grigaliūnas
75404e5287 [Form] Keep preferred_choices order for choice groups 2019-11-28 12:22:21 +01:00
Nicolas Grekas
3688c3aebb Merge branch '3.4' into 4.3
* 3.4:
  [DI] Missing test on YamlFileLoader
2019-11-28 12:13:33 +01:00
Nicolas Grekas
84b5db3a44 minor #34675 [DI] Missing test on YamlFileLoader (maxhelias)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Missing test on YamlFileLoader

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

Missing test on YamlFileLoader

Commits
-------

b9d5237f67 [DI] Missing test on YamlFileLoader
2019-11-28 12:10:43 +01:00
Nicolas Grekas
789c863233 bug #34091 [Debug] work around failing chdir() on Darwin (mary2501)
This PR was merged into the 4.3 branch.

Discussion
----------

[Debug] work around failing chdir() on Darwin

| Q             | A
| ------------- | ---
| Branch?       |  4.3 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 https://github.com/happybottoms/coverd/issues/15 <!-- prefix each issue number with "Fix #", if any -->
| 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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

f40373eb7c [Debug] work around failing chdir() on Darwin
2019-11-28 11:55:21 +01:00
Maria Grazia Patteri
f40373eb7c [Debug] work around failing chdir() on Darwin 2019-11-28 11:53:46 +01:00
Nicolas Grekas
33731bf287 bug #34490 [Serializer] Fix MetadataAwareNameConverter usage with string group (antograssiot)
This PR was merged into the 4.3 branch.

Discussion
----------

[Serializer] Fix MetadataAwareNameConverter usage with string group

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

Allow to use the short syntax for serialization context group like `['groups' => 'user']`

Commits
-------

d4f749a465 [Serializer] Fix MetadataAwareNameConverter usage with string group
2019-11-28 11:19:20 +01:00
Maxime Helias
b9d5237f67 [DI] Missing test on YamlFileLoader 2019-11-28 11:09:39 +01:00
Nicolas Grekas
53241df2df Revert "minor #34608 [Process] add tests for php executable finder if file does not exist (ahmedash95)"
This reverts commit 5cacc5dd69, reversing
changes made to f0a6de2736.
2019-11-28 11:05:51 +01:00
Nicolas Grekas
4375742f2c Merge branch '3.4' into 4.3
* 3.4:
  Simpler example for Apache basic auth workaround
  [Console] Fix trying to access array offset on value of type int
  [Process] add tests for php executable finder if file does not exist
  [Cache] Make sure we get the correct number of values from redis::mget()
2019-11-28 11:05:26 +01:00
Roy-Orbison
388528da50 Simpler example for Apache basic auth workaround
Uses a simpler regex and existing back-reference instead of reading header twice.
2019-11-28 10:37:24 +01:00
Ali Tavafi
069d214210 [Console] Fix trying to access array offset on value of type int 2019-11-28 10:13:48 +01:00
David Buchmann
c6ed0f0208 more robust initialization from request
Request::getPort is declared as int|string but can actually return null.
2019-11-28 09:59:10 +01:00
Maxime Steinhausser
9f19ae185d [Config] Remove extra sprintf arg 2019-11-28 09:31:09 +01:00
Nicolas Grekas
ed22c85635 [HttpKernel] fix typo 2019-11-28 09:08:13 +01:00
Nicolas Grekas
396da3726b bug #34669 [HttpClient] turn exception into log when the request has no content-type (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] turn exception into log when the request has no content-type

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

Spotted while merging a PR with ext-curl disabled:

```
  [Symfony\Component\HttpClient\Exception\TransportException]
  fopen(): Content-type not specified assuming application/x-www-form-urlencoded
```

This is now a log.

Commits
-------

4c671a4487 [HttpClient] turn exception into log when the request has no content-type
2019-11-28 09:02:16 +01:00
Nicolas Grekas
f9e6f11bea bug #34662 [HttpKernel] Support typehint to deprecated FlattenException in controller (andrew-demb)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Support typehint to deprecated FlattenException in controller

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

We should support converting throwable to `FlattenException` with typehint to deprecated class also

Commits
-------

26b4e372dd [HttpKernel] Support typehint to deprecated FlattenException in controller
2019-11-28 08:56:36 +01:00
Andrii Dembitskyi
26b4e372dd [HttpKernel] Support typehint to deprecated FlattenException in controller 2019-11-28 08:56:28 +01:00
Yonel Ceruto
38493b3e4b Add preview mode support for Html and Serializer error renderers 2019-11-28 08:51:03 +01:00
Sylvain METAYER
d4c34e00ac [VarDumper] notice on potential undefined index 2019-11-28 08:25:37 +01:00
Nicolas Grekas
4c671a4487 [HttpClient] turn exception into log when the request has no content-type 2019-11-27 23:48:43 +01:00
Ahmed
2b62dc3fc5 [Process] add tests for php executable finder if file does not exist 2019-11-27 23:46:56 +01:00
Emanuele Panzeri
685c36c3d2 [Cache] Make sure we get the correct number of values from redis::mget() 2019-11-27 19:56:02 +01:00
Robin Chalas
2b97a0f5f1 Merge branch '5.0'
* 5.0: (47 commits)
  reset the kernel cache after each test
  [HttpKernel] Ability to define multiple kernel.reset tags
  [Routing] Continue supporting single colon in object route loaders
  [FWBundle] Remove unused parameter
  [Intl] [Workflow] fixes English grammar typos
  [Filesystem] [Serializer] fixes English grammar typo
  mailer: mailchimp bridge is throwing undefined index _id when setting message id in mandrill http transport
  has_roles should be is_granted in security upgrade file
  has_roles should be is_granted in upgrade files
  [HttpClient] Fix early cleanup of pushed HTTP/2 responses
  skip test on incompatible PHP versions
  [HttpKernel] Don't cache "not-fresh" state
  Drop WebServerBundle directory
  [FrameworkBundle][Cache] Don't deep-merge cache pools configuration
  [Messenger] Adding exception to amqp transport in case amqp ext is not installed
  [SecurityBundle] Don't require a user provider for the anonymous listener
  [DoctrineBridge] Fixed cs in DoctrineType
  [Monolog Bridge] Fixed accessing static property as non static.
  Improve Symfony description
  [Mailer] Add UPGRADE entries about Envelope and MessageEvent
  ...
2019-11-27 01:54:57 +01:00
Robin Chalas
e5f0e60a44 Merge branch '4.4' into 5.0
* 4.4: (38 commits)
  reset the kernel cache after each test
  [HttpKernel] Ability to define multiple kernel.reset tags
  [Routing] Continue supporting single colon in object route loaders
  [FWBundle] Remove unused parameter
  [Intl] [Workflow] fixes English grammar typos
  [Filesystem] [Serializer] fixes English grammar typo
  mailer: mailchimp bridge is throwing undefined index _id when setting message id in mandrill http transport
  has_roles should be is_granted in upgrade files
  [HttpClient] Fix early cleanup of pushed HTTP/2 responses
  skip test on incompatible PHP versions
  [HttpKernel] Don't cache "not-fresh" state
  [FrameworkBundle][Cache] Don't deep-merge cache pools configuration
  [Messenger] Adding exception to amqp transport in case amqp ext is not installed
  [SecurityBundle] Don't require a user provider for the anonymous listener
  [Monolog Bridge] Fixed accessing static property as non static.
  Improve Symfony description
  [Mailer] Add UPGRADE entries about Envelope and MessageEvent
  [FrameworkBundle] fix leftover mentioning "secret:" processor
  Add DateTimeZoneNormalizer into Dependency Injection
  [Messenger] Error when specified default bus is not among the configured
  ...
2019-11-27 00:25:11 +01:00
Robin Chalas
cde2538849 Merge branch '4.3' into 4.4
* 4.3:
  [FWBundle] Remove unused parameter
  [Intl] [Workflow] fixes English grammar typos
  [Filesystem] [Serializer] fixes English grammar typo
  [Messenger] Adding exception to amqp transport in case amqp ext is not installed
  [Monolog Bridge] Fixed accessing static property as non static.
  Improve Symfony description
  Add DateTimeZoneNormalizer into Dependency Injection
  [Messenger] Error when specified default bus is not among the configured
  [Validator] Add Japanese translation
  [Workflow] Apply the same logic of precedence between the apply() and the buildTransitionBlockerList() method
  Remove some unused methods parameters
  Avoid empty \"If-Modified-Since\" header in validation request
  [Security] Fix SwitchUser is broken when the User Provider always returns a valid user
  Fix error message according to the new regex
  compatibility with DoctrineBundle 2
  [Validator] ConstraintValidatorTestCase: add missing return value to mocked validate method calls
2019-11-27 00:16:41 +01:00
Fabien Potencier
51d756f65a bug #34621 [Routing] Continue supporting single colon in object route loaders (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[Routing] Continue supporting single colon in object route loaders

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

https://github.com/symfony/symfony/pull/32582#discussion_r304824139 was a bad idea. The new `ObjectLoader` class is used directly on 4.4 since we detagged the old service (and the old one). So we need to support the old notation on it. It changes the exception message but it should be alright.

Commits
-------

3c796e120c [Routing] Continue supporting single colon in object route loaders
2019-11-26 14:01:00 +01:00
Christian Flothmann
4633993cc1 minor #34625 [HttpKernel] reset the kernel cache after each test (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] reset the kernel cache after each test

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

Commits
-------

5b5927b93b reset the kernel cache after each test
2019-11-26 12:29:28 +01:00
Nicolas Grekas
59b6cfef4c bug #34554 [HttpClient] Fix early cleanup of pushed HTTP/2 responses (lyrixx)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] Fix early cleanup of pushed HTTP/2 responses

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

Commits
-------

0f51da6ec7 [HttpClient] Fix early cleanup of pushed HTTP/2 responses
2019-11-26 10:41:30 +01:00
Christian Flothmann
5b5927b93b reset the kernel cache after each test 2019-11-26 10:38:45 +01:00
Nicolas Grekas
127ebeee1f bug #34607 [HttpKernel] Ability to define multiple kernel.reset tags (rmikalkenas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Ability to define multiple kernel.reset tags

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

All info #34606

Commits
-------

6f8dbf1a5f [HttpKernel] Ability to define multiple kernel.reset tags
2019-11-26 10:37:37 +01:00
Rokas Mikalkėnas
6f8dbf1a5f [HttpKernel] Ability to define multiple kernel.reset tags 2019-11-26 10:37:14 +01:00
Thomas Calvet
3c796e120c [Routing] Continue supporting single colon in object route loaders 2019-11-26 09:26:36 +01:00
Fabien Potencier
877376a8b3 minor #34603 [Intl] [Workflow] fixes English grammar typos (hhamon)
This PR was merged into the 4.3 branch.

Discussion
----------

[Intl] [Workflow] fixes English grammar typos

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

Also related to #34604

Commits
-------

492e1b5afd [Intl] [Workflow] fixes English grammar typos
2019-11-26 04:45:55 +01:00
Fabien Potencier
4daa83e8fc Merge branch '3.4' into 4.3
* 3.4:
  [Filesystem] [Serializer] fixes English grammar typo
  [Monolog Bridge] Fixed accessing static property as non static.
  Improve Symfony description
  [Validator] Add Japanese translation
  Remove some unused methods parameters
  Avoid empty \"If-Modified-Since\" header in validation request
  [Validator] ConstraintValidatorTestCase: add missing return value to mocked validate method calls
2019-11-26 04:44:44 +01:00
Hugo Hamon
492e1b5afd [Intl] [Workflow] fixes English grammar typos 2019-11-25 17:40:38 +01:00
Hugo Hamon
7524ac2866 [Filesystem] [Serializer] fixes English grammar typo 2019-11-25 17:36:22 +01:00
Grégoire Pineau
8a4f03dee8 [Workflow] Added Registry::has() to check if a workflow exists 2019-11-25 16:20:18 +01:00
Hugo Monteiro
fa3f901cf8 mailer: mailchimp bridge is throwing undefined index _id when setting message id in mandrill http transport 2019-11-25 14:55:17 +00:00
Lynn
2f1336e79f has_roles should be is_granted in security upgrade file 2019-11-25 15:08:41 +01:00
Grégoire Pineau
cc400f867e bug #34569 [Workflow] Apply the same logic of precedence between the apply() and the buildTransitionBlockerList() method (lyrixx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Workflow] Apply the same logic of precedence between the apply() and the buildTransitionBlockerList() method

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

Commits
-------

2ff3496d62 [Workflow] Apply the same logic of precedence between the apply() and the buildTransitionBlockerList() method
2019-11-25 15:05:10 +01:00
Grégoire Pineau
0f51da6ec7 [HttpClient] Fix early cleanup of pushed HTTP/2 responses 2019-11-25 13:42:17 +01:00
Fabien Potencier
7719fc709e feature #32937 [Routing] Deprecate RouteCollectionBuilder (vudaltsov)
This PR was squashed before being merged into the 5.1-dev branch (closes #32937).

Discussion
----------

[Routing] Deprecate RouteCollectionBuilder

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #32240
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/12688
| Recipe PR | https://github.com/symfony/recipes/pull/690

A lot to be done here after the implementation is accepted:
- [x] finish deprecations in the MicroKernelTrait
- [x] deprecate the class
- [x] mention in the CHANGELOG file
- [x] mention in the UPGRADE file
- [x] mark tests as legacy
- [x] add a doc PR
- [x] update the recipe

Ping @Tobion , @nicolas-grekas .

Commits
-------

e641cbdd46 [Routing] Deprecate RouteCollectionBuilder
2019-11-25 13:06:39 +01:00
Valentin Udaltsov
e641cbdd46 [Routing] Deprecate RouteCollectionBuilder 2019-11-25 13:05:32 +01:00
Christian Flothmann
986cfc6580 skip test on incompatible PHP versions 2019-11-25 11:39:47 +01:00
Nicolas Grekas
be80db3dc8 [HttpKernel] Don't cache "not-fresh" state 2019-11-25 10:10:35 +01:00
Fabien Potencier
3888312ba9 feature #34557 [PropertyInfo] Add support for typed properties (PHP 7.4) (dunglas)
This PR was squashed before being merged into the 5.1-dev branch (closes #34557).

Discussion
----------

[PropertyInfo] Add support for typed properties (PHP 7.4)

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | n/a

Add support for [typed properties](https://wiki.php.net/rfc/typed_properties_v2), a new feature introduced in PHP 7.4:

```php
class Foo
{
    public Bar $bar;
    private ?bool $nullableBoolProp;
}

$this->extractor->getTypes(Foo::class, 'bar'); // Type[]
$this->extractor->getTypes(Foo::class, 'nullableBoolProp'); // Type[]
```

#SymfonyHackday

Commits
-------

7edfe4f741 [PropertyInfo] Add support for typed properties (PHP 7.4)
2019-11-25 08:09:07 +01:00
Kévin Dunglas
7edfe4f741 [PropertyInfo] Add support for typed properties (PHP 7.4) 2019-11-25 08:09:01 +01:00
Fabien Potencier
f6c4b67fe3 bug #34515 [DependencyInjection] definitions are valid objects (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] definitions are valid objects

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

Commits
-------

0acaa5cfb3 definitions are valid objects
2019-11-25 08:06:53 +01:00
Christopher Hertel
f15e0e6a43 [Messenger] Adding exception to amqp transport in case amqp ext is not installed 2019-11-25 07:26:43 +01:00
Fabien Potencier
adbc1dff56 feature #34573 [DX] [Workflow] Added a way to specify a message when blocking a transition + better default message in case it is not set (lyrixx)
This PR was merged into the 5.1-dev branch.

Discussion
----------

[DX] [Workflow] Added a way to specify a message when blocking a transition + better default message in case it is not set

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

Commits
-------

169bb2ff51 [Workflow] Added a way to specify a message when blocking a transition + better default message in case it is not set
2019-11-24 19:23:34 +01:00
Fabien Potencier
692d0e75e1 feature #34457 Added context to exceptions thrown in apply method (koenreiniers)
This PR was squashed before being merged into the 5.1-dev branch (closes #34457).

Discussion
----------

Added context to exceptions thrown in apply method

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

During the workflow and state machines workshop at SymfonyCon, we noticed that the context in the apply method was not passed to the exceptions that are thrown. This could prove to be convenient for debugging purposes.

Commits
-------

8f86c337f7 Added context to exceptions thrown in apply method
2019-11-24 19:20:30 +01:00
Koen Reiniers
8f86c337f7 Added context to exceptions thrown in apply method 2019-11-24 19:20:23 +01:00
Fabien Potencier
212931e43c minor #34543 Add missing defaultPriorityMethod field in TaggedIteratorArgument (alexandrunastase)
This PR was merged into the 4.4 branch.

Discussion
----------

 Add missing defaultPriorityMethod field in TaggedIteratorArgument

| Q             | A
| ------------- | ---
| Branch?       | 4.4 <!-- 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       | <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        |  <!-- 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/roadmap):
 - 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 master.
-->

#SymfonyHackday

Commits
-------

f5bd421597  Add missing defaultPriorityMethod field in TaggedIteratorArgument
2019-11-24 19:11:43 +01:00
Fabien Potencier
0ea13868fa bug #34552 [Dotenv] don't fail when referenced env var does not exist (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Dotenv] don't fail when referenced env var does not exist

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

Commits
-------

8026609dc9 don't fail when referenced env var does not exist
2019-11-24 19:05:55 +01:00
Grégoire Pineau
169bb2ff51 [Workflow] Added a way to specify a message when blocking a transition + better default message in case it is not set 2019-11-24 19:01:59 +01:00
Issei.M
6cea35a108 [Validator] Add Japanese translation 2019-11-24 18:47:24 +01:00
Fabien Potencier
e757512f8f bug #34513 [Validator] remove return type declaration from __sleep() (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] remove return type declaration from __sleep()

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

Commits
-------

bedad35e59 remove return type declaration from __sleep()
2019-11-24 18:43:39 +01:00
Fabien Potencier
df6c635df2 minor #34561 Remove some unused methods parameters (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

Remove some unused methods parameters

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

This PR removes some useless private method parameters.

Commits
-------

026730e913 Remove some unused methods parameters
2019-11-24 18:40:20 +01:00
Grégoire Pineau
2ff3496d62 [Workflow] Apply the same logic of precedence between the apply() and the buildTransitionBlockerList() method 2019-11-24 18:22:56 +01:00
Thomas Calvet
026730e913 Remove some unused methods parameters 2019-11-23 21:30:33 +01:00
Christophe Coevoet
7d87ebce2c bug #34385 Avoid empty "If-Modified-Since" header in validation request (mpdude)
This PR was squashed before being merged into the 3.4 branch (closes #34385).

Discussion
----------

Avoid empty "If-Modified-Since" header in validation request

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

Just noticed that when a response has been cached that is `public` and has an `maxAge` but does _not_ provide `Last-Modified`, the validation subrequest will have an empty `If-Modified-Since` header value.

Commits
-------

960faef66f Avoid empty \"If-Modified-Since\" header in validation request
2019-11-23 16:08:00 +01:00
Matthias Pigulla
960faef66f Avoid empty \"If-Modified-Since\" header in validation request 2019-11-23 16:07:54 +01:00
Christian Flothmann
8026609dc9 don't fail when referenced env var does not exist 2019-11-23 15:53:46 +01:00
Tugdual Saunier
2bf6cd2eea
[Security] Fix SwitchUser is broken when the User Provider always returns a valid user 2019-11-23 15:44:33 +01:00
Alexandru Năstase
f5bd421597
Add missing defaultPriorityMethod field in TaggedIteratorArgument 2019-11-23 11:53:09 +01:00
Thiago Cordeiro
5c3c295873 [HttpKernel] Fix write signature 2019-11-23 11:47:49 +01:00
elementaire
7425d2c69d
Fix error message according to the new regex
Complete https://github.com/symfony/symfony/pull/34448
2019-11-22 15:36:52 +01:00
Christian Flothmann
6ff20f0122 compatibility with DoctrineBundle 2 2019-11-22 14:37:01 +01:00
Christian Flothmann
93685026b0 drop return type declaration
The configured memory limit can exceed the range that can be represented
by an integer.
2019-11-22 14:14:59 +01:00
Christian Flothmann
0acaa5cfb3 definitions are valid objects 2019-11-22 13:53:53 +01:00
Christian Flothmann
bedad35e59 remove return type declaration from __sleep() 2019-11-22 13:40:21 +01:00
tien.xuan.vo
b435b1aab6 [Messenger] Ignore stamps in in-memory transport 2019-11-21 19:55:17 +07:00
Anto
d4f749a465
[Serializer] Fix MetadataAwareNameConverter usage with string group
fixes 34455
2019-11-21 13:47:16 +01:00
Fabien Potencier
255f557a30 Bump Symfony version to 5.0.1 2019-11-21 09:56:56 +01:00
Fabien Potencier
bac8c50706 Update VERSION for 5.0.0 2019-11-21 09:51:01 +01:00
Fabien Potencier
a7fe2b29d2 Bump Symfony version to 4.4.1 2019-11-21 08:13:22 +01:00
Fabien Potencier
65ec3b47e8 Update VERSION for 4.4.0 2019-11-21 08:08:15 +01:00
Nicolas Grekas
1b4ab81085 Merge branch '5.0'
* 5.0:
  [Routing] fix tests
  [DI] minor cleanup
  [Form] group constraints when calling the validator
  Remove wrong @group legacy annotations
  [DependencyInjection] Fix dumping multiple deprecated aliases
  allow button names to start with uppercase letter
  Allow PHP ^7.2.5
  States that the HttpClient provides a Http Async implementation
  [Routing] Fix ContainerLoader and ObjectLoaderTest
  [HttpKernel] Make ErrorListener::onKernelException()'s dispatcher argument explicit
  [HttpKernel] Drop deprecated ExceptionListener
  Removed extra whitespace
  [Security] Fix best encoder not wired using migrate_from
2019-11-21 08:02:52 +01:00
Nicolas Grekas
0f8fe5d74b Merge branch '4.4' into 5.0
* 4.4:
  [Routing] fix tests
  [Form] group constraints when calling the validator
  Remove wrong @group legacy annotations
  [DependencyInjection] Fix dumping multiple deprecated aliases
  allow button names to start with uppercase letter
  States that the HttpClient provides a Http Async implementation
2019-11-21 08:02:40 +01:00
Nicolas Grekas
2c1b1bad6e bug #34464 [Form] group constraints when calling the validator (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] group constraints when calling the validator

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

Follow up of https://github.com/symfony/symfony/pull/34081
Spotted during the workshop at SymfonyCon, while trying to fix deprecation notices on symfony-demo:
the Form component currently passes constraints one by one for validation, effectively preventing the validator from taking care of cross-constraints dependencies.

This PR fixes it.

This will prevent ppl from having to fix things like
> Using the "Symfony\Component\Validator\Constraints\Length" constraint with the "min" option without setting the "allowEmptyString" one is deprecated and defaults to true. In 5.0, it will become optional and default to false.

Commits
-------

d15f77f33e [Form] group constraints when calling the validator
2019-11-21 08:01:17 +01:00
Nicolas Grekas
698cc6bb3b [Routing] fix tests 2019-11-20 14:44:34 +01:00
Nicolas Grekas
c41fa26069 [DI] minor cleanup 2019-11-20 14:33:09 +01:00
Nicolas Grekas
6f110581df Merge branch '4.3' into 4.4
* 4.3:
  [DependencyInjection] Fix dumping multiple deprecated aliases
2019-11-20 14:27:43 +01:00
Nicolas Grekas
d15f77f33e [Form] group constraints when calling the validator 2019-11-20 13:58:23 +01:00
Fabien Potencier
9624a444d4 minor #34443 Allow PHP ^7.2.5 (nicolas-grekas)
This PR was merged into the 5.0 branch.

Discussion
----------

Allow PHP ^7.2.5

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

Let's what the CI says.

Will need tagging all contracts as v2.0.1 after merge.

Commits
-------

6194c2a96c Allow PHP ^7.2.5
2019-11-20 12:12:35 +01:00
Nicolas Grekas
8d84ac34a5 Remove wrong @group legacy annotations 2019-11-20 11:44:55 +01:00
Maxime Steinhausser
8d1f32613b [Validator] ConstraintValidatorTestCase: add missing return value to mocked validate method calls 2019-11-19 17:21:35 +01:00
Soner Sayakci
60b0dae174
[DependencyInjection] Fix dumping multiple deprecated aliases 2019-11-19 16:12:52 +01:00
Nicolas Grekas
12f00e3e15 Merge branch '4.3' into 4.4
* 4.3:
  allow button names to start with uppercase letter
2019-11-19 13:20:06 +01:00
Christian Flothmann
d811b0e9b5 allow button names to start with uppercase letter 2019-11-19 08:55:12 +01:00
Nicolas Grekas
6194c2a96c Allow PHP ^7.2.5 2019-11-18 18:27:11 +01:00
Baptiste Clavié
8a460cefef
States that the HttpClient provides a Http Async implementation 2019-11-18 13:47:27 +01:00
Thomas Calvet
0e5db6a033 [Routing] Fix ContainerLoader and ObjectLoaderTest 2019-11-18 10:36:08 +01:00
Nicolas Grekas
15f7ea1362 Merge branch '4.4' into 5.0
* 4.4:
  [HttpKernel] Make ErrorListener::onKernelException()'s dispatcher argument explicit
  Removed extra whitespace
  [Security] Fix best encoder not wired using migrate_from
2019-11-18 08:34:28 +01:00
Robin Chalas
aab9b43d03 [HttpKernel] Make ErrorListener::onKernelException()'s dispatcher argument explicit 2019-11-18 00:49:10 +01:00
Robin Chalas
dede9145dc [HttpKernel] Drop deprecated ExceptionListener 2019-11-18 00:44:50 +01:00
Robin Chalas
76d3112d8e bug #34428 [Security] Fix best encoder not wired using migrate_from (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Fix best encoder not wired using migrate_from

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

Thanks @wouterj for spotting it.

Commits
-------

4132a60392 [Security] Fix best encoder not wired using migrate_from
2019-11-17 23:59:41 +01:00
Graham Campbell
754fbe41fb
Removed extra whitespace 2019-11-17 22:49:13 +00:00
Robin Chalas
4132a60392 [Security] Fix best encoder not wired using migrate_from 2019-11-17 23:41:50 +01:00
Nicolas Grekas
d2649f2f78 minor #34427 Relax requirements for experimental components (nicolas-grekas)
This PR was merged into the 5.1-dev branch.

Discussion
----------

Relax requirements for experimental components

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

Reverts #34316 for 5.1 only.

Commits
-------

0c1c4ede48 Relax requirements for experimental components
2019-11-17 22:58:32 +01:00
Nicolas Grekas
a06a0d8a71 Merge branch '5.0'
* 5.0:
  [Finder] Fixed docs
  Fix PR template
  Adjust pull request template for 5.0 branchout
  Update HttpKernel.php
  bumped Symfony version to 4.4.0
  updated VERSION for 4.4.0-RC1
  updated CHANGELOG for 4.4.0-RC1
2019-11-17 22:58:13 +01:00
Nicolas Grekas
eb4f5a8d06 Merge branch '4.4' into 5.0
* 4.4:
  [Finder] Fixed docs
  Fix PR template
  Adjust pull request template for 5.0 branchout
  Update HttpKernel.php
  bumped Symfony version to 4.4.0
  updated VERSION for 4.4.0-RC1
  updated CHANGELOG for 4.4.0-RC1
2019-11-17 22:57:12 +01:00
Nicolas Grekas
80e4ed1a32 Merge branch '4.3' into 4.4
* 4.3:
  [Finder] Fixed docs
  Fix PR template
  Adjust pull request template for 5.0 branchout
  Update HttpKernel.php
2019-11-17 22:56:56 +01:00
Nicolas Grekas
90431e78e2 Merge branch '3.4' into 4.3
* 3.4:
  [Finder] Fixed docs
  Fix PR template
  Adjust pull request template for 5.0 branchout
  Update HttpKernel.php
2019-11-17 22:56:13 +01:00
Markus Staab
e7d0787a4d [Finder] Fixed docs 2019-11-17 22:55:15 +01:00
Nicolas Grekas
0c1c4ede48 Relax requirements for experimental components 2019-11-17 22:48:42 +01:00
Fabien Potencier
44d79c4a57 Fix version in Kernel 2019-11-17 21:26:07 +01:00
Nardberjean
7b7f966711 Update HttpKernel.php 2019-11-17 21:23:00 +01:00
Fabien Potencier
e60a876201 updated version to 5.1 2019-11-17 19:31:35 +01:00
Fabien Potencier
10aac86d6f Bump Symfony version to 5.0.0 2019-11-17 18:19:46 +01:00
Fabien Potencier
e4cc7cd698 Update VERSION for 5.0.0-RC1 2019-11-17 18:09:30 +01:00
Fabien Potencier
7ed6d35f2c bumped Symfony version to 4.4.0 2019-11-17 15:29:13 +01:00
Fabien Potencier
bef727c673 updated VERSION for 4.4.0-RC1 2019-11-17 15:24:08 +01:00
Nicolas Grekas
b30ea0c7a8 Merge branch '4.4'
* 4.4:
  [Cache] Disable igbinary on PHP >= 7.4
2019-11-17 12:01:19 +01:00
Nicolas Grekas
0c12b9e31b Merge branch '4.3' into 4.4
* 4.3:
  [Cache] Disable igbinary on PHP >= 7.4
2019-11-17 12:01:12 +01:00
Nicolas Grekas
a2c924d772 [Cache] Disable igbinary on PHP >= 7.4 2019-11-17 11:56:39 +01:00
Nicolas Grekas
3d222c6cd5 Merge branch '4.4'
* 4.4:
  [Messenger] Perform no deep merging of bus middleware
  [HttpFoundation] Added possibility to configure expiration time in redis session handler
  [FrameworkBundle] Remove project dir from Translator cache vary scanned directories
  [HttpFoundation] Allow redirecting to URLs that contain a semicolon
  Drop useless executable bit
  [DoctrineBridge] Improve queries parameters display in Profiler
  catch exceptions when using PDO directly
  [SecurityBundle] fix failing test
2019-11-17 11:12:24 +01:00
Nicolas Grekas
88cf8a7d48 Merge branch '4.3' into 4.4
* 4.3:
  [FrameworkBundle] Remove project dir from Translator cache vary scanned directories
  [HttpFoundation] Allow redirecting to URLs that contain a semicolon
  catch exceptions when using PDO directly
  [SecurityBundle] fix failing test
2019-11-17 11:10:42 +01:00
Nicolas Grekas
d20f544e14 Merge branch '3.4' into 4.3
* 3.4:
  [HttpFoundation] Allow redirecting to URLs that contain a semicolon
2019-11-17 11:10:32 +01:00
Fabien Potencier
2b05b71999 feature #34405 [HttpFoundation] Added possibility to configure expiration time in redis session handler (mantulo)
This PR was squashed before being merged into the 4.4 branch (closes #34405).

Discussion
----------

[HttpFoundation] Added possibility to configure expiration time in redis session handler

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

Add possibility to manually configure expiration time in redis session handler.

Commits
-------

4a9d947b1a [HttpFoundation] Added possibility to configure expiration time in redis session handler
2019-11-17 11:00:25 +01:00
Vladimir
4a9d947b1a [HttpFoundation] Added possibility to configure expiration time in redis session handler 2019-11-17 11:00:20 +01:00
Mark Beech
bd0637ebe4 [HttpFoundation] Allow redirecting to URLs that contain a semicolon 2019-11-17 10:18:38 +01:00
David Prévot
1883af4d4b Drop useless executable bit 2019-11-16 08:59:35 -10:00
Nicolas Grekas
1fbe6157ba bug #34408 [Cache] catch exceptions when using PDO directly (xabbuh)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] catch exceptions when using PDO directly

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

Commits
-------

5c1f5594f5 catch exceptions when using PDO directly
2019-11-16 18:08:55 +01:00
Christian Flothmann
5c1f5594f5 catch exceptions when using PDO directly 2019-11-16 17:52:07 +01:00
Nicolas Grekas
df63cc59f1 Merge branch '4.4'
* 4.4: (23 commits)
  [HttpFoundation] fix docblock
  [HttpKernel] Flatten "exception" controller argument if not typed
  Fix MySQL column type definition.
  Link the right file depending on the new version
  [Cache] Redis Tag Aware warn on wrong eviction policy
  [HttpClient] fix HttpClientDataCollector
  [HttpKernel] collect bundle classes, not paths
  [Config] fix id-generation for GlobResource
  [HttpKernel] dont check cache freshness more than once per process
  [Finder] Allow ssh2 stream wrapper for sftp
  [FrameworkBundle] fix wiring of httplug client
  add FrameworkBundle requirement
  [SecurityBundle] add tests with empty authenticator
  [Security] always check the token on non-lazy firewalls
  [DI] Use reproducible entropy to generate env placeholders
  [WebProfilerBundle] Require symfony/twig-bundle
  [Mailer] Add UPGRADE entry about the null transport DSN
  bumped Symfony version to 4.3.9
  updated VERSION for 4.3.8
  updated CHANGELOG for 4.3.8
  ...
2019-11-16 16:24:47 +01:00
Nicolas Grekas
4ac626a482 Merge branch '4.3' into 4.4
* 4.3:
  [HttpFoundation] fix docblock
  Fix MySQL column type definition.
  Link the right file depending on the new version
  [Config] fix id-generation for GlobResource
  [Finder] Allow ssh2 stream wrapper for sftp
  [DI] Use reproducible entropy to generate env placeholders
  [WebProfilerBundle] Require symfony/twig-bundle
  bumped Symfony version to 4.3.9
  updated VERSION for 4.3.8
  updated CHANGELOG for 4.3.8
  bumped Symfony version to 3.4.36
  updated VERSION for 3.4.35
  updated CHANGELOG for 3.4.35
2019-11-16 16:22:42 +01:00
Nicolas Grekas
769aced459 Merge branch '3.4' into 4.3
* 3.4:
  Fix MySQL column type definition.
2019-11-16 16:18:16 +01:00
Nicolas Grekas
4d9b6f1bbd [HttpFoundation] fix docblock 2019-11-16 16:17:02 +01:00
Robin Chalas
585216a8e8 [HttpKernel] Flatten "exception" controller argument if not typed 2019-11-16 13:16:23 +01:00
Jérémie Broutier
51c5f69274 Fix MySQL column type definition.
Fix wrong MySQL column type definition causing Numeric value out of range exception.

Ref #34409
2019-11-16 12:41:30 +01:00
Nicolas Grekas
476042d0fb Merge branch '3.4' into 4.3
* 3.4:
  Link the right file depending on the new version
  [Finder] Allow ssh2 stream wrapper for sftp
  [WebProfilerBundle] Require symfony/twig-bundle
  bumped Symfony version to 3.4.36
  updated VERSION for 3.4.35
  updated CHANGELOG for 3.4.35
2019-11-16 10:07:40 +01:00
Nicolas Grekas
278dcfb380 bug #34403 [Cache] Redis Tag Aware warn on wrong eviction policy (andrerom)
This PR was squashed before being merged into the 4.4 branch.

Discussion
----------

[Cache] Redis Tag Aware warn on wrong eviction policy

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

Adds validation to make sure Redis has been setup with the supported eviction policy to avoid surprises when cache suddenly is inconsistent.

This PR replaces #34178, and instead of checking in constructor and throwing it only checks on save, warns about this and refuses to save cache as suggested on the other PR.

TODO:
- [x] ~Adapt test setups for this to set correct eviction policy~ _It already uses default noeviction_

Commits
-------

e77f6de1e8 [Cache] Redis Tag Aware warn on wrong eviction policy
2019-11-16 09:53:59 +01:00
André R
e77f6de1e8 [Cache] Redis Tag Aware warn on wrong eviction policy 2019-11-16 09:53:52 +01:00
Nicolas Grekas
fda36e84b3 bug #34400 [HttpKernel] collect bundle classes, not paths (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] collect bundle classes, not paths

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

Commits
-------

7824d75ac3 [HttpKernel] collect bundle classes, not paths
2019-11-16 09:51:49 +01:00
Nicolas Grekas
a90de43a8e bug #34398 [Config] fix id-generation for GlobResource (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Config] fix id-generation for GlobResource

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

I never encountered any issues related to this but still, it's a fix.

Commits
-------

6adbfa2ae7 [Config] fix id-generation for GlobResource
2019-11-16 09:51:12 +01:00
Nicolas Grekas
114a4b86ac bug #34404 [HttpClient] fix HttpClientDataCollector (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix HttpClientDataCollector

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

Commits
-------

f51adc53f8 [HttpClient] fix HttpClientDataCollector
2019-11-16 09:50:26 +01:00
Nicolas Grekas
f51adc53f8 [HttpClient] fix HttpClientDataCollector 2019-11-16 09:45:13 +01:00
Fabien Potencier
1374abd6e8 minor #34399 [HttpKernel] dont check cache freshness more than once per process (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] dont check cache freshness more than once per process

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

While running some functional tests in a loop, I noticed that half the time is spent computing cache freshness. This makes no sense - this mechanism is supposed to run once per process.

Here is the Blackfire comparison:
https://blackfire.io/profiles/compare/a4f2eb44-ae85-440b-ae87-edf43c2b2ef7/graph

![image](https://user-images.githubusercontent.com/243674/68955196-c5667780-07c5-11ea-9a19-f8e765664a8e.png)

Commits
-------

7f9556ce19 [HttpKernel] dont check cache freshness more than once per process
2019-11-15 18:39:48 +01:00
Nicolas Grekas
7824d75ac3 [HttpKernel] collect bundle classes, not paths 2019-11-15 17:50:43 +01:00
Nicolas Grekas
6adbfa2ae7 [Config] fix id-generation for GlobResource 2019-11-15 16:28:20 +01:00
Nicolas Grekas
7f9556ce19 [HttpKernel] dont check cache freshness more than once per process 2019-11-15 16:26:40 +01:00
Damien Alexandre
e6c9d77b63
[Finder] Allow ssh2 stream wrapper for sftp
Same fix as #28604 but for the ss2.sftp wrapper.
2019-11-15 15:28:29 +01:00
Nicolas Grekas
b8f8ac947e bug #34358 [Security] always check the token on non-lazy firewalls (nicolas-grekas, lyrixx)
This PR was merged into the 4.4 branch.

Discussion
----------

 [Security] always check the token on non-lazy firewalls

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

Commits
-------

2c2632a04c [SecurityBundle] add tests with empty authenticator
797450d6b8 [Security] always check the token on non-lazy firewalls
2019-11-15 12:06:35 +01:00
Nicolas Grekas
797450d6b8 [Security] always check the token on non-lazy firewalls 2019-11-14 23:50:50 +01:00
Nicolas Grekas
600ae33262 [DI] Use reproducible entropy to generate env placeholders 2019-11-14 21:13:17 +01:00
karser
8a08c2090a Added HostnameValidator 2019-11-14 19:31:20 +02:00
Maxime Steinhausser
abcf63aaa8 [Mailer] Add UPGRADE entry about the null transport DSN 2019-11-14 15:24:33 +01:00
Nicolas Grekas
818e2911d7 Merge branch '4.4'
* 4.4:
  [DI] fix detecting singly implemented interfaces
  [FrameworkBundle] Disallow WebProfilerBundle < 4.4.
  [Form] Allow symfony/service-contracts v2.
  bumped Symfony version to 4.4.0
  updated VERSION for 4.4.0-BETA2
  updated CHANGELOG for 4.4.0-BETA2
2019-11-14 10:04:42 +01:00
Nicolas Grekas
2a2d2bc0c0 minor #34367 [Form] Allow symfony/service-contracts v2 (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form] Allow symfony/service-contracts v2

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

In Symfony 4.4 applications, the Form component currently prevents the installation of `symfony/service-contracts` 2.0.0. That should not be the case.

Commits
-------

4755e160be [Form] Allow symfony/service-contracts v2.
2019-11-14 09:55:14 +01:00
Nicolas Grekas
eccb937d97 [DI] fix detecting singly implemented interfaces 2019-11-13 22:56:53 +01:00
Alexander M. Turek
4755e160be [Form] Allow symfony/service-contracts v2. 2019-11-13 22:07:47 +01:00
Fabien Potencier
c3455b46eb bumped Symfony version to 5.0.0 2019-11-13 10:24:14 +01:00
Fabien Potencier
20933dab0a updated VERSION for 5.0.0-BETA2 2019-11-13 10:19:33 +01:00
Fabien Potencier
29a2f17124 bumped Symfony version to 4.4.0 2019-11-13 10:18:19 +01:00
Fabien Potencier
8c47650d53 updated VERSION for 4.4.0-BETA2 2019-11-13 10:13:36 +01:00
Fabien Potencier
d863fc2b4b bumped Symfony version to 4.3.9 2019-11-13 10:11:31 +01:00
Fabien Potencier
3a50fa397d updated VERSION for 4.3.8 2019-11-13 10:07:28 +01:00
Fabien Potencier
8a68d2d358 bumped Symfony version to 3.4.36 2019-11-13 09:48:47 +01:00
Fabien Potencier
02257c8098 updated VERSION for 3.4.35 2019-11-13 09:44:50 +01:00
Nicolas Grekas
f2daa534b9 Merge branch '4.4'
* 4.4:
  [Console] Constant STDOUT might be undefined.
  Add missing conflict with symfony/serializer <4.4
  Allow returning null from NormalizerInterface::normalize
  bumped Symfony version to 4.4.0
  updated VERSION for 4.4.0-BETA1
  updated CHANGELOG for 4.4.0-BETA1
  [Security\Core] throw AccessDeniedException when switch user fails
  [Mime] fix guessing mime-types of files with leading dash
  [HttpFoundation] fix guessing mime-types of files with leading dash
  [VarExporter] fix exporting some strings
  [Cache] forbid serializing AbstractAdapter and TagAwareAdapter instances
  Use constant time comparison in UriSigner
2019-11-13 08:42:48 +01:00
Nicolas Grekas
ae3552685d Merge branch '4.3' into 4.4
* 4.3:
  [Console] Constant STDOUT might be undefined.
  Allow returning null from NormalizerInterface::normalize
  [Security\Core] throw AccessDeniedException when switch user fails
  [Mime] fix guessing mime-types of files with leading dash
  [HttpFoundation] fix guessing mime-types of files with leading dash
  [VarExporter] fix exporting some strings
  [Cache] forbid serializing AbstractAdapter and TagAwareAdapter instances
  Use constant time comparison in UriSigner
2019-11-13 08:39:40 +01:00
Nicolas Grekas
983b5d1d5f Merge branch '3.4' into 4.3
* 3.4:
  [Console] Constant STDOUT might be undefined.
  Allow returning null from NormalizerInterface::normalize
2019-11-13 08:29:07 +01:00
Nicolas Grekas
32bde39f63 bug #34344 [Console] Constant STDOUT might be undefined (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Constant STDOUT might be undefined

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

Commits
-------

bb8c82c0b5 [Console] Constant STDOUT might be undefined.
2019-11-13 08:27:07 +01:00
Nicolas Grekas
53dc781814 minor #34340 Allow returning null from NormalizerInterface::normalize (teohhanhui)
This PR was merged into the 3.4 branch.

Discussion
----------

Allow returning null from NormalizerInterface::normalize

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

Looking at the code, it seems that a normalizer might be called with a `null` value for `$data`, and thus it's only sensible that it be allowed to return `null` too:

7064ff35f2/src/Symfony/Component/Serializer/Serializer.php (L141-L148)

Updating the phpdoc to match.

Commits
-------

1c8edc55ad Allow returning null from NormalizerInterface::normalize
2019-11-13 08:26:33 +01:00
Nicolas Grekas
bb8c82c0b5 [Console] Constant STDOUT might be undefined. 2019-11-13 08:12:39 +01:00
Robin Chalas
3fcf543f75 [Serializer] Fix ProblemNormalizer signature mismatch 2019-11-13 06:32:44 +01:00
Fabien Potencier
92748b6c22 bumped Symfony version to 5.0.0 2019-11-12 18:59:43 +01:00
Fabien Potencier
7debf6d54b updated VERSION for 5.0.0-BETA1 2019-11-12 18:55:30 +01:00
Teoh Han Hui
1c8edc55ad
Allow returning null from NormalizerInterface::normalize 2019-11-12 18:51:12 +01:00
Fabien Potencier
839c6b4256 bumped Symfony version to 4.4.0 2019-11-12 18:50:34 +01:00
Fabien Potencier
88927e1640 updated VERSION for 4.4.0-BETA1 2019-11-12 18:37:44 +01:00
Nicolas Grekas
6917ec6b2e Merge branch '4.4'
* 4.4:
  Fix some \Throwable support remaining issues
2019-11-12 18:26:48 +01:00
Thomas Calvet
47bd32e16f Fix some \Throwable support remaining issues 2019-11-12 18:18:47 +01:00
Nicolas Grekas
4e2b5e0a76 Merge branch '4.4'
* 4.4:
  Revert "feature #34329 [ExpressionLanguage] add XOR operator (ottaviano)"
  Allow \Throwable $previous everywhere
2019-11-12 15:58:10 +01:00
Nicolas Grekas
7cee181e08 feature #34333 Revert "feature #34329 [ExpressionLanguage] add XOR operator (ottaviano)" (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Revert "feature #34329 [ExpressionLanguage] add XOR operator (ottaviano)"

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

This reverts commit d1d4bc8bad, reversing
changes made to f63976fcbb.

Commits
-------

adb716dd2c Revert "feature #34329 [ExpressionLanguage] add XOR operator (ottaviano)"
2019-11-12 15:57:18 +01:00
Nicolas Grekas
686e9b7d72 feature #34332 Allow \Throwable $previous everywhere (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

Allow \Throwable $previous everywhere

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

Commits
-------

59e044dfb1 Allow \Throwable $previous everywhere
2019-11-12 15:56:48 +01:00
Nicolas Grekas
adb716dd2c Revert "feature #34329 [ExpressionLanguage] add XOR operator (ottaviano)"
This reverts commit d1d4bc8bad, reversing
changes made to f63976fcbb.
2019-11-12 15:53:53 +01:00
Thomas Calvet
59e044dfb1 Allow \Throwable $previous everywhere 2019-11-12 15:51:11 +01:00
Nicolas Grekas
8f89f62621 Merge branch '4.4'
* 4.4:
  [ExpressionLanguage] add XOR operator
2019-11-12 15:01:04 +01:00
Nicolas Grekas
d1d4bc8bad feature #34329 [ExpressionLanguage] add XOR operator (ottaviano)
This PR was merged into the 4.4 branch.

Discussion
----------

[ExpressionLanguage] add XOR operator

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

👋
little PR for adding the best logical operator: `XOR`

Commits
-------

46fe91781d [ExpressionLanguage] add XOR operator
2019-11-12 15:00:30 +01:00
Dimitri Gritsajuk
46fe91781d [ExpressionLanguage] add XOR operator 2019-11-12 15:00:18 +01:00
Nicolas Grekas
417d2e1c75 minor #34316 more strict requirements of experimental components (xabbuh)
This PR was merged into the 5.0-dev branch.

Discussion
----------

more strict requirements of experimental components

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

Commits
-------

23bc40b764 more strict requirements of experimental components
2019-11-12 14:57:12 +01:00
Nicolas Grekas
6417770530 Merge branch '4.4'
* 4.4:
  [TwigBundle] Restore the preview mechanism
2019-11-12 14:56:01 +01:00
Yonel Ceruto
d3f1121885 [TwigBundle] Restore the preview mechanism 2019-11-12 08:42:17 -05:00
Nicolas Grekas
bcfc282d42 [Security\Core] throw AccessDeniedException when switch user fails 2019-11-12 14:12:56 +01:00
Nicolas Grekas
77ddabf2e7 [Mime] fix guessing mime-types of files with leading dash 2019-11-12 14:10:02 +01:00
Nicolas Grekas
227e73d164 security #cve-2019-11325 [VarExporter] fix exporting some strings (nicolas-grekas)
This PR was merged into the 4.3 branch.
2019-11-12 14:08:52 +01:00
Nicolas Grekas
2baf53aa7a Merge branch '3.4' into 4.3
* 3.4:
  [HttpFoundation] fix guessing mime-types of files with leading dash
  [Cache] forbid serializing AbstractAdapter and TagAwareAdapter instances
  Use constant time comparison in UriSigner
2019-11-12 14:07:20 +01:00
Nicolas Grekas
4cc37df2fb security #cve-2019-18889 [Cache] forbid serializing AbstractAdapter and TagAwareAdapter instances (nicolas-grekas)
This PR was merged into the 3.4 branch.
2019-11-12 13:50:33 +01:00
Nicolas Grekas
b21025b139 security #cve-2019-18888 [HttpFoundation] fix guessing mime-types of files with leading dash (nicolas-grekas)
This PR was merged into the 3.4 branch.
2019-11-12 13:49:04 +01:00
Nicolas Grekas
010213408e security #cve-2019-18887 [HttpKernel] Use constant time comparison in UriSigner (stof)
This PR was merged into the 3.4 branch.
2019-11-12 13:47:53 +01:00
Nicolas Grekas
92c81b7258 [DI] fix dep 2019-11-12 12:50:59 +01:00
Nicolas Grekas
ee07c70b00 bug #34327 Last cleanups before beta (nicolas-grekas)
This PR was merged into the 5.0-dev branch.

Discussion
----------

Last cleanups before beta

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

Commits
-------

61c7c11a32 Last cleanups before beta
2019-11-12 12:25:25 +01:00
Nicolas Grekas
61c7c11a32 Last cleanups before beta 2019-11-12 12:24:05 +01:00
Nicolas Grekas
ddb80de959 Merge branch '4.4'
* 4.4:
  [ErrorHandler] fix return type
2019-11-12 12:21:24 +01:00
Nicolas Grekas
32c81a5f2e [ErrorHandler] fix return type 2019-11-12 12:21:15 +01:00
Nicolas Grekas
621f48cce1 Merge branch '4.4'
* 4.4:
  [ErrorHandler] add missing return types
  Sync UPGRADE-5.0 before beta
  [HttpKernel] fix deps
  [TwigBundle] fix conflict rule
2019-11-12 12:20:44 +01:00
Nicolas Grekas
810e4a136f [ErrorHandler] add missing return types 2019-11-12 12:16:57 +01:00
Nicolas Grekas
7ec445b130 [HttpKernel] fix deps 2019-11-12 12:00:56 +01:00
Nicolas Grekas
8b8299e9c7 Merge branch '4.4'
* 4.4:
  [Workflow] fix lowest dep
  Cleanup deps on var-dumper
  [HttpKernel] Fix missing import in GetResponseForExceptionEvent
2019-11-12 11:18:18 +01:00
Nicolas Grekas
a0708cca7f Merge branch '4.3' into 4.4
* 4.3:
  [Workflow] fix lowest dep
2019-11-12 11:13:59 +01:00
Nicolas Grekas
4bc7e9c614 Merge branch '3.4' into 4.3
* 3.4:
  [Workflow] fix lowest dep
2019-11-12 11:07:11 +01:00
Nicolas Grekas
7064ff35f2 [Workflow] fix lowest dep 2019-11-12 11:06:38 +01:00
Nicolas Grekas
36aca86545 Cleanup deps on var-dumper 2019-11-12 11:02:34 +01:00
Thomas Calvet
bc46a3a6dd [HttpKernel] Fix missing import in GetResponseForExceptionEvent 2019-11-12 10:28:52 +01:00
Nicolas Grekas
a3376918ba Merge branch '4.4'
* 4.4:
  [ErrorHandler] help finish the PR
  [ErrorHandler] merge and remove the ErrorRenderer component
2019-11-12 10:25:44 +01:00
Fabien Potencier
0b867be27b feature #34312 [ErrorHandler] merge and remove the ErrorRenderer component (nicolas-grekas, yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] merge and remove the ErrorRenderer component

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

This PR supersedes #34288.

Here is what it does:
- Merge the `ErrorRenderer` component into `ErrorHandler`
- Add `ErrorRendererInterface::render(\Throwable $e): FlattenException` and refactor error renderers around it.
- Add `FlattenException::setAsString()` to make the previous possible.
- Add `CliErrorRenderer` to render error on the CLI too. This means `VarDumper` is now a required dependency of `ErrorHandler`. This paves the way to use it also for rendering HTML - the logic there is much more advanced than what `HtmlErrorRenderer` provides and ever should provide.
- Make `BufferingLogger` map its collected logs to `error_log()` if they are not emptied before.
- Remove some classes that are not needed anymore (`ErrorRenderer`, `ErrorRendererPass`, `HtmlErrorRendererInterface`)
- Simplified the logic in `Debug::enable()` - nobody uses its arguments
- Fix a few issues found meanwhile.

With these changes, the component can be used standalone. One is now able to require only it, register it either with either `ErrorHandler::register()` or `Debug::enable()` and profit.

Commits
-------

d1bf1cada4 [ErrorHandler] help finish the PR
6c9157bbc2 [ErrorHandler] merge and remove the ErrorRenderer component
2019-11-12 10:05:23 +01:00
Yonel Ceruto
d1bf1cada4 [ErrorHandler] help finish the PR 2019-11-12 10:04:13 +01:00
Yonel Ceruto
4939f0e323 Fix handling of empty_data's \Closure value in Date/Time form types 2019-11-11 13:06:09 -05:00
Fabien Potencier
7ddb19c702 bumped Symfony version to 4.3.8 2019-11-11 17:42:32 +01:00
Fabien Potencier
a2fd583db3 updated VERSION for 4.3.7 2019-11-11 17:38:54 +01:00
Fabien Potencier
3445e5c602 Merge branch '4.4'
* 4.4:
  [HttpFoundation] fix typo
  [HttpFoundation][Lock] Connection parameter corrected
  Removed declare(strict_types=1) in DispatchAfterCurrentBusStamp
2019-11-11 17:28:28 +01:00
Fabien Potencier
be987f4926 Merge branch '4.3' into 4.4
* 4.3:
  Removed declare(strict_types=1) in DispatchAfterCurrentBusStamp
2019-11-11 17:28:16 +01:00
Fabien Potencier
a4c4f00e17 bumped Symfony version to 3.4.35 2019-11-11 17:24:44 +01:00
Fabien Potencier
d7601fa827 updated VERSION for 3.4.34 2019-11-11 17:11:23 +01:00
Nicolas Grekas
01d9c9dc80 [HttpFoundation] fix typo 2019-11-11 14:11:43 +01:00
wimg
27207c3056 [HttpFoundation][Lock] Connection parameter corrected 2019-11-11 14:09:26 +01:00
Nicolas Grekas
6be5cc75a4 [HttpFoundation] fix guessing mime-types of files with leading dash 2019-11-11 13:53:10 +01:00
Nicolas Grekas
d446d7733a [VarExporter] fix exporting some strings 2019-11-11 13:48:54 +01:00
Christian Flothmann
eba2d8efc9 make ExceptionEvent handle all throwables 2019-11-11 12:53:44 +01:00
Christian Flothmann
da437e2de8 Merge branch '4.4'
* 4.4:
  [HttpKernel] make ExceptionEvent able to propagate any throwable
  [Security] Avoid unnecessary usage of Reflection
  Disallow symfony/contracts v2.
  minor add missing loop break
  [Security] Add migrating encoder configuration
  [Security] Fix defining multiple roles per access_control rule
2019-11-11 12:15:58 +01:00
Christian Flothmann
23bc40b764 more strict requirements of experimental components 2019-11-11 11:03:58 +01:00
Fabien Potencier
81a177df61 minor #34074 [5.0][Security] Minor clarification of the new isGranted signature (wouterj)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[5.0][Security] Minor clarification of the new isGranted signature

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

As we now only allow a single attribute for `isGranted()` in Symfony 5, let's adapt the PHPdoc and parameter name as well.

Commits
-------

e41e6b48a9 Clarified single attribute to isGranted() a bit more
2019-11-11 10:48:22 +01:00
Nicolas Grekas
6c9157bbc2 [ErrorHandler] merge and remove the ErrorRenderer component 2019-11-10 18:54:30 +01:00
Fabien Potencier
10a349c37d feature #34309 [HttpKernel] make ExceptionEvent able to propagate any throwable (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] make ExceptionEvent able to propagate any throwable

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

An alternative to #34306.

As a reminder, the goal of this series of PRs is to remove the `FatalThrowableError` wrapper that we introduced to seamlessly handle throwables when they were introduced in PHP 7.

From the changelog of `HttpKernel`:
 * Deprecated methods `ExceptionEvent::get/setException()`, use `get/setThrowable()` instead
 * Deprecated class `ExceptionListener`, use `ErrorListener` instead

And the final target: removed `Symfony\Component\ErrorHandler\Exception\ErrorException` (`FatalThrowableError` is already deprecated.)

Commits
-------

6f67f0e0c0 [HttpKernel] make ExceptionEvent able to propagate any throwable
2019-11-10 14:19:52 +01:00
Valentin Udaltsov
7b9f752b47 Removed declare(strict_types=1) in DispatchAfterCurrentBusStamp 2019-11-10 12:50:21 +03:00
Nicolas Grekas
6f67f0e0c0 [HttpKernel] make ExceptionEvent able to propagate any throwable 2019-11-10 10:37:33 +01:00
Robin Chalas
2377418443 [Security] Avoid unnecessary usage of Reflection 2019-11-09 23:08:03 +01:00
Robin Chalas
040d93d5b5 minor add missing loop break 2019-11-09 13:08:24 +01:00
Fabien Potencier
758e266f48 bug #34304 [Security] Fix defining multiple roles per access_control rule (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Fix defining multiple roles per access_control rule

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        |  https://github.com/symfony/symfony-docs/pull/12371 needs to be reverted

#33584 deprecated passing multiple attributes to `AccessDecisionManager::decide()`, but this change must not impact `access_control` as you cannot define multiple rules with the same criteria for request matching (the first match wins).

Commits
-------

338b3dfd9f [Security] Fix defining multiple roles per access_control rule
2019-11-09 12:16:35 +01:00
Fabien Potencier
d688a79b5a feature #34139 [Security] Add migrating encoder configuration (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Add migrating encoder configuration

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

Commits
-------

80955be45d [Security] Add migrating encoder configuration
2019-11-09 12:12:07 +01:00
Robin Chalas
80955be45d [Security] Add migrating encoder configuration 2019-11-09 11:20:37 +01:00
Nicolas Grekas
12a8b6937b [Translator] fix compat with translation-contracts v2 2019-11-09 10:30:00 +01:00
Alexander M. Turek
4de3773979 Add parameter type declarations to contracts. 2019-11-09 10:18:34 +01:00
Nicolas Grekas
55559f48b5 [IdentityTranslator] fix compat with translation-contracts v2 2019-11-09 09:49:52 +01:00
Robin Chalas
338b3dfd9f [Security] Fix defining multiple roles per access_control rule 2019-11-09 09:18:51 +01:00
Nicolas Grekas
2a1a266573 Merge branch '4.4'
* 4.4:
  [Messenger] Fixed bad event dispatcher mocks.
  [Workflow] Simplified EventDispatcherMock.
  [Routing] revert the return type for UrlGeneratorInterface::generate to remove null
  [HttpFoundation] Add a way to anonymize IPs
2019-11-09 09:06:17 +01:00
Nicolas Grekas
a20e1ad138 Merge branch '4.3' into 4.4
* 4.3:
  [Workflow] Simplified EventDispatcherMock.
  [Routing] revert the return type for UrlGeneratorInterface::generate to remove null
2019-11-09 09:06:11 +01:00
Fabien Potencier
fd7c676172 minor #34303 [Messenger] Fixed bad event dispatcher mocks (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[Messenger] Fixed bad event dispatcher mocks

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

`EventDispatcherInterface::dispatch()` must return the passed event object. This PR fixes two mocks that violated this contract.

Commits
-------

103930039b [Messenger] Fixed bad event dispatcher mocks.
2019-11-09 07:45:24 +01:00
Fabien Potencier
4463791d0e minor #34299 [Routing] revert the return type for UrlGeneratorInterface::generate to remove null (shieldo)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] revert the return type for UrlGeneratorInterface::generate to remove null

…to remove null

| Q             | A
| ------------- | ---
| Branch?       | 3.4 (only)
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| License       | MIT

Bit of a casualty of commit tennis this:

A change to add `null` here as an option for how `UrlGeneratorInterface::generate()` (rather than the concrete `UrlGenerator`) was merged in https://github.com/symfony/symfony/pull/28321, but then [reverted](90494c20cc) for the reason [that this could be seen as a BC break](https://github.com/symfony/symfony/pull/28321#issuecomment-418540080), as the `null` return had not previously been documented (and is still not as part of the interface method docs).

However, in a subsequent change (https://github.com/symfony/symfony/pull/33252) with a wider scope, this doc change was added _back_ in order to reflect the underlying implementation as a result of a PHPStorm plugin complaining. There's no indication though of what a `null` return here though would mean, and for the same reason as the first revert (that this should be seen as a BC break), I'd like to submit this to be reverted for the 3.4 branch. (In 4.4 the `null` has already been removed.)

Having the interface indicating that this method can return `null` necessitates introducing a lot of actually redundant null checks in code that is covered by static analysis tools such as PHPStan.

Commits
-------

9f853f324f [Routing] revert the return type for UrlGeneratorInterface::generate to remove null
2019-11-09 07:39:26 +01:00
Fabien Potencier
f4c925418b feature #32194 [HttpFoundation] Add a way to anonymize IPs (Seldaek)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] Add a way to anonymize IPs

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features --> TODO

This is helpful for GDPR compliance reasons, and it isn't much code saved but it's also good if you don't have to think about how to do it.

Commits
-------

9e62330bc4 [HttpFoundation] Add a way to anonymize IPs
2019-11-09 07:36:01 +01:00
Wouter J
e41e6b48a9 Clarified single attribute to isGranted() a bit more
Also, allow the array type for a single attribute.
2019-11-09 00:23:23 +01:00
Alexander M. Turek
103930039b [Messenger] Fixed bad event dispatcher mocks. 2019-11-09 00:05:14 +01:00
Nicolas Grekas
9e554cee75 [EventDispatcher] dont allow event-dispatcher-contracts ^2 2019-11-08 23:40:51 +01:00
Alexander M. Turek
5aee181c83 [Workflow] Simplified EventDispatcherMock. 2019-11-08 23:25:20 +01:00
Nicolas Grekas
69cd75069a Merge branch '4.4'
* 4.4:
  [DI] fix loading env while env loaders are loaded
2019-11-08 22:16:29 +01:00
Nicolas Grekas
522bd5d99d [DI] fix loading env while env loaders are loaded 2019-11-08 21:45:30 +01:00
Douglas Greenshields
9f853f324f
[Routing] revert the return type for UrlGeneratorInterface::generate to remove null 2019-11-08 17:25:00 +00:00
Jordi Boggiano
9e62330bc4
[HttpFoundation] Add a way to anonymize IPs 2019-11-08 18:11:01 +01:00
Nicolas Grekas
0cd837bf1a Merge branch '4.4'
* 4.4:
  [DI] fix locators with numeric keys
  Add support for NO_COLOR env var
  [DI][FrameworkBundle] add EnvVarLoaderInterface - remove SecretEnvVarProcessor
  Fix error when we use VO for the marking property
  [DI] Remove LazyString from 4.4, before adding back to the String component
2019-11-08 17:32:03 +01:00
Nicolas Grekas
7c111bdcf3 minor #34290 [DI] Remove LazyString from 4.4, before adding back to the String component (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] Remove LazyString from 4.4, before adding back to the String component

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

In #34190 I'm proposing to move LazyString to the Service contracts, but String might be a better fit actually. Let's remove the class from 4.4 where it's not really needed, and add it back on 5.0 in the String component.

Commits
-------

b1a3ee76ac [DI] Remove LazyString from 4.4, before adding back to the String component
2019-11-08 17:26:52 +01:00
Nicolas Grekas
f459fd01a2 Merge branch '4.3' into 4.4
* 4.3:
  [DI] fix locators with numeric keys
  Fix error when we use VO for the marking property
2019-11-08 17:24:33 +01:00
Nicolas Grekas
bc726f7d50 bug #34294 [Workflow] Fix error when we use ValueObject for the marking property (FabienSalles)
This PR was merged into the 4.3 branch.

Discussion
----------

[Workflow] Fix error when we use ValueObject for the marking property

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #28203 #22031
| License       | MIT

Fix Illegal offset type in `MethodMarkingStore` class when we use Value Object for
the marking property.

Now, we can avoid to use only a string an we can have a Subject class with a Value Object like this :
```php
final class State
{
    public const DRAFT = 'draft';
    public const REVIEWED = 'reviewed';
    public const REJECTED = 'rejected';
    public const PUBLISHED = 'published';

     /** @var string */
    private $state;

    public function __construct(string $state)
    {
        // some validation
        $this->state = $state;
    }

    public function __toString()
     {
         return $this->state;
    }

    public static function Draft()
     {
         return new self(self::DRAFT);
     }
    ...
}

final class Subject
{
    private $marking;

    public function __construct(State $marking = null)
    {
        $this->marking = $marking;
    }

    public function getMarking()
    {
        return $this->marking;
    }

    public function setMarking($marking)
    {
        $this->marking = $marking instanceof State ? $marking : new State($marking);
    }

```

Commits
-------

6570d5cbe2 Fix error when we use VO for the marking property
2019-11-08 17:23:33 +01:00
Nicolas Grekas
618aec6abe Merge branch '3.4' into 4.3
* 3.4:
  [DI] fix locators with numeric keys
2019-11-08 17:22:27 +01:00
Nicolas Grekas
dad4344793 [DI] fix locators with numeric keys 2019-11-08 17:18:30 +01:00
Nicolas Grekas
97577aea66 feature #34252 [Console] Add support for NO_COLOR env var (Seldaek)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Add support for NO_COLOR env var

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

Adds support for https://no-color.org/ - ideally this would be considered a bugfix and added to older releases IMO, but submitting as new feature for now.

cc @johnstevenson

Commits
-------

c1b0a8e956 Add support for NO_COLOR env var
2019-11-08 17:06:42 +01:00
Jordi Boggiano
c1b0a8e956
Add support for NO_COLOR env var 2019-11-08 16:59:14 +01:00
Nicolas Grekas
ba2148fff3 [DI][FrameworkBundle] add EnvVarLoaderInterface - remove SecretEnvVarProcessor 2019-11-08 15:47:02 +01:00
FabienSalles
6570d5cbe2 Fix error when we use VO for the marking property
Fix Illegal offset type when we use ValueObject instead of string for
the marking property #28203 #22031
2019-11-08 12:45:38 +01:00
Nicolas Grekas
b1a3ee76ac [DI] Remove LazyString from 4.4, before adding back to the String component 2019-11-08 11:42:01 +01:00
Nicolas Grekas
38f86e6758 [DI] fix merge 2019-11-08 10:32:27 +01:00
Nicolas Grekas
c4226e4128 Merge branch '4.4'
* 4.4:
  [DI] Dont cache classes with missing parents
  [HttpClient] Fix a crash when calling CurlHttpClient::__destruct()
  Unallow symfony/http-kernel ^5.0
  [FrameworkBundle] fix SodiumVault after stof review
  [HttpClient] allow arbitrary JSON values in requests
  [DependencyInjection] Added option `ignore_errors: not_found` while importing config files
  [Validator] Add the missing translations for the Hebrew (\"he\") locale and fix 2 typos
  [FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change
2019-11-08 10:16:28 +01:00
Nicolas Grekas
4cc88b1ce1 minor #34265 Remove \Throwable bubbling down support deprecation layer (fancyweb)
This PR was merged into the 5.0-dev branch.

Discussion
----------

Remove \Throwable bubbling down support deprecation layer

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

Remove deprecation layer of https://github.com/symfony/symfony/pull/33065

Commits
-------

ffcfdb42a7 Remove \Throwable support deprecation layer
2019-11-08 10:01:31 +01:00
Thomas Calvet
ffcfdb42a7 Remove \Throwable support deprecation layer 2019-11-08 10:00:49 +01:00
Nicolas Grekas
585c0df909 feature #31310 [DependencyInjection] Added option ignore_errors: not_found for imported config files (pulzarraider)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] Added option `ignore_errors: not_found` for imported config files

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | symfony/symfony-docs#11647

If someone want to add optional config file. The only available choice was to add `ignore_errors: true` option

e.g.
```
imports:
    - { resource: parameters.yml, ignore_errors: true }
```

But this will hide all errors in imported file. We ran in many situations that broke our Symfony applications because we had a typo in this imported files.

This PR introduce new possible value `not_found` for `ignore_errors` option. It can be used for optional config files like the `ignore_errors: true`, but it will ignore only the file non-existence, not the possible syntax errors inside.

Usage:
```
imports:
    - { resource: parameters.yml, ignore_errors: not_found}
```

Commits
-------

e0ee01c10d [DependencyInjection] Added option `ignore_errors: not_found` while importing config files
2019-11-08 09:53:35 +01:00
Thomas Calvet
e7456547bd [ErrorHandler] Remove Symfony ClassLoader support in an error enhancer 2019-11-08 09:41:40 +01:00
Nicolas Grekas
8aaa8c5fc6 Merge branch '4.3' into 4.4
* 4.3:
  [DI] Dont cache classes with missing parents
  [HttpClient] Fix a crash when calling CurlHttpClient::__destruct()
  [Validator] Add the missing translations for the Hebrew (\"he\") locale and fix 2 typos
  [FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change
2019-11-08 09:33:02 +01:00
Nicolas Grekas
a1fc280bf2 Merge branch '3.4' into 4.3
* 3.4:
  [DI] Dont cache classes with missing parents
  [Validator] Add the missing translations for the Hebrew (\"he\") locale and fix 2 typos
2019-11-08 09:31:27 +01:00
Nicolas Grekas
1606430cfd [DI] Dont cache classes with missing parents 2019-11-08 09:28:59 +01:00
Kévin Dunglas
d2c5ffda52 [HttpClient] Fix a crash when calling CurlHttpClient::__destruct() 2019-11-08 09:23:45 +01:00
Thomas Calvet
da454db947 Unallow symfony/http-kernel ^5.0 2019-11-07 18:22:59 +01:00
Peter Schultz
e98731aabf [HttpClient] allow arbitrary JSON values in requests
Allow arbitrary values in the "json" request option. Previously values were
limitated to arrays and objects of type JsonSerializable. This doesn't account
for scalar values and classes with public properties (which don't need to
implement JsonSerializable), all of which are perfectly acceptable arguments to
json_encode.
2019-11-07 13:44:51 +01:00
Nicolas Grekas
3d8cca8a73 minor #34266 [VarDumper] Clean casters @final annotations (fancyweb)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[VarDumper] Clean casters @final annotations

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

Clean https://github.com/symfony/symfony/pull/33882 on master.

Commits
-------

ce35ca2d01 [VarDumper] Clean casters @final annotations
2019-11-07 13:07:34 +01:00
Yonel Ceruto
48937fc27b minor #34269 [ErrorHandler] Clean @final annotation from ErrorHandler (fancyweb)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[ErrorHandler] Clean @final annotation from ErrorHandler

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

Clean leftover `@final` annotation.

Commits
-------

bf7fc2b [ErrorHandler] Clean @final annotation from ErrorHandler
2019-11-07 06:16:48 -05:00
Andrej Hudec
e0ee01c10d [DependencyInjection] Added option ignore_errors: not_found while importing config files 2019-11-07 12:06:31 +01:00
Yonel Ceruto
c90b53e54e minor #34272 [Debug] Remove it from master (fancyweb)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Debug] Remove it from master

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

Looks like it came back from the dead 😅

Commits
-------

54ffd46 [Debug] Remove it from master
2019-11-06 18:40:12 -05:00
Fabien Potencier
4056baf0f4 bug #34129 [FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change

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

The cache file name needs to depend on the scanned directories list. Otherwise, when a new directory is added, even if the container is rebuilt and the `FWB Translator` gets the new scanned directories list, the cached catalogue name is still the same and is resolved accordingly.

An alternative would be to make the `Translation Translator` `getCatalogueCachePath()` method and `fallbackLocales` `@internal` and `protected` to just override everything in the `FWB Translator`. The `cacheVary` argument has the benefit to be reusable by all the `Translation` component users.

Note that there is a negative minor performance impact that increases when the list of scanned directories grows.

Commits
-------

6cbee0944c [FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change
2019-11-07 00:21:49 +01:00
Thomas Calvet
54ffd4672d [Debug] Remove it from master 2019-11-06 22:56:05 +01:00
Thomas Calvet
bf7fc2b3f3 [ErrorHandler] Clean @final annotation from ErrorHandler 2019-11-06 22:38:32 +01:00
Thomas Calvet
ce35ca2d01 [VarDumper] Clean casters @final annotations 2019-11-06 19:00:00 +01:00
Yonel Ceruto
bf27a83064 minor #34212 [Form] fix exception messages (xabbuh)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Form] fix exception messages

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

Commits
-------

be8cb4e fix exception messages
2019-11-06 12:58:36 -05:00
Nicolas Grekas
9dd60645d9 Merge branch '4.4'
* 4.4:
  Skip validation of services that make the CI fail
2019-11-06 18:06:06 +01:00
Nicolas Grekas
403fdf4a59 Skip validation of services that make the CI fail 2019-11-06 17:48:56 +01:00
Nicolas Grekas
d4ae37457a Merge branch '4.4'
* 4.4:
  [Serializer] Use context to compute MetadataAwareNameConverter cache
  [VarDumper] Mark StubCaster as @final
2019-11-06 17:13:58 +01:00
Nicolas Grekas
a1155ea6e2 Merge branch '4.3' into 4.4
* 4.3:
  [Serializer] Use context to compute MetadataAwareNameConverter cache
2019-11-06 17:13:44 +01:00
Anto
0ac5346bf5
[Serializer] Use context to compute MetadataAwareNameConverter cache 2019-11-06 17:10:14 +01:00
Thomas Calvet
d25b60961f [VarDumper] Mark StubCaster as @final 2019-11-06 17:06:09 +01:00
Nicolas Grekas
4c401ebdd6 [HttpKernel] backport FC compat code 2019-11-06 15:42:08 +01:00
Nicolas Grekas
98b457aa36 Merge branch '4.4'
* 4.4:
  conflict with FrameworkBundle < 4.4
  [DoctrineBridge] Reopen DoctrineDataCollector to extensibility
  [HttpClient] fix support for NTLM auth
2019-11-06 15:14:36 +01:00
Nicolas Grekas
3a4d60f298 minor #34260 [Messenger] conflict with FrameworkBundle < 4.4 (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Messenger] conflict with FrameworkBundle < 4.4

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

Commits
-------

cddf3e9083 conflict with FrameworkBundle < 4.4
2019-11-06 15:12:58 +01:00
Christian Flothmann
cddf3e9083 conflict with FrameworkBundle < 4.4 2019-11-06 15:11:47 +01:00
Nicolas Grekas
370c4379a5 [HttpClient] fix support for NTLM auth 2019-11-06 14:41:42 +01:00
Christian Flothmann
9733bef488 bug #34213 [Notifier][Telegram] Fixing Telegram token (chr-hertel)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Notifier][Telegram] Fixing Telegram token

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

Thanks, i really love this integration! i needed to do two minor changes while playing around:

- token needs to contain user and password, see https://core.telegram.org/bots/api#making-requests
- channel should be optional for bot interaction, using `chat_id` as message option instead

Commits
-------

c2c3e70e6b fixing telegram token
2019-11-06 14:40:22 +01:00
Nicolas Grekas
4e703258a1 Merge branch '4.4'
* 4.4:
  [HttpClient] fix after merge from 4.3
  [HttpClient] expose only gzip when doing transparent compression
  [VarDumper] fix tests & displaying generators
  Fix WeekType tests
  add species to inflector and inflector tests
  Add handling for delayed message to redis transport
2019-11-06 13:04:01 +01:00
Nicolas Grekas
62bf1f5002 bug #34255 [HttpClient] fix after merge from 4.3 (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix after merge from 4.3

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

Commits
-------

3c6dc96ab4 [HttpClient] fix after merge from 4.3
2019-11-06 13:03:36 +01:00
Nicolas Grekas
3932642619 bug #34250 [VarDumper] fix tests & displaying generators (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] fix tests & displaying generators

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

Replaces #34248

Commits
-------

bcf43a4593 [VarDumper] fix tests & displaying generators
2019-11-06 13:03:12 +01:00
Nicolas Grekas
dac61d0667 Merge branch '4.3' into 4.4
* 4.3:
  [HttpClient] expose only gzip when doing transparent compression
  add species to inflector and inflector tests
2019-11-06 13:02:32 +01:00
Nicolas Grekas
3c6dc96ab4 [HttpClient] fix after merge from 4.3 2019-11-06 12:53:36 +01:00
Nicolas Grekas
6571dddc4c [HttpClient] expose only gzip when doing transparent compression 2019-11-06 11:21:02 +01:00
Nicolas Grekas
bcf43a4593 [VarDumper] fix tests & displaying generators 2019-11-06 10:36:47 +01:00
Thomas Calvet
906b82eb97 Fix WeekType tests 2019-11-05 23:24:16 +01:00
Fabien Potencier
9151698d85 minor #34135 [Validator] Add the missing translations for the Hebrew ("he") locale and fix 2 typos (Tamarpe)
This PR was squashed before being merged into the 3.4 branch (closes #34135).

Discussion
----------

[Validator] Add the missing translations for the Hebrew ("he") locale and fix 2 typos

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

Ref #30166

Commits
-------

022cf67f19 [Validator] Add the missing translations for the Hebrew (\"he\") locale and fix 2 typos
2019-11-05 23:03:38 +01:00
tamar peled
022cf67f19 [Validator] Add the missing translations for the Hebrew (\"he\") locale and fix 2 typos 2019-11-05 23:03:33 +01:00
jeffreymoelands
cc87e40a8f add species to inflector and inflector tests 2019-11-05 20:58:22 +01:00
Alexander Schranz
cfece10569 Add handling for delayed message to redis transport 2019-11-05 19:40:51 +01:00
Nicolas Grekas
1cc66db290 Merge branch '4.4'
* 4.4:
  [Messenger] use events consistently in worker
  Deprecate things that prevent \Throwable from bubbling down
2019-11-05 18:32:06 +01:00
Tobias Schultze
201f159303 [Messenger] use events consistently in worker 2019-11-05 18:28:25 +01:00
Thomas Calvet
abef506e89 Deprecate things that prevent \Throwable from bubbling down 2019-11-05 18:23:20 +01:00
Nicolas Grekas
5e358e33c9 Merge branch '4.4'
* 4.4: (39 commits)
  [Console] Fix #33915, Detect dimensions using mode CON if vt100 is supported
  [PhpUnitBridge] Also search for composer.phar in git root folder
  [HttpKernel][DataCollectorInterface] Ease compatibility
  Add tests to ensure defaultLocale is properly passed to the URL generator
  [DependencyInjection] Fix broken references in tests
  [VarDumper] display the method we're in when dumping stack traces
  [HttpClient] Retry safe requests when then fail before the body arrives
  [Console] Rename some methods related to redraw frequency
  Avoid using of kernel after shutdown
  Simplify PHP CS Fixer configuration
  [PropertyInfo] Fixed type extraction for nullable collections of non-nullable elements
  [FrameworkBundle] [HttpKernel] fixed correct EOL and EOM month
  Fix CS
  [Serializer] Fix property name usage for denormalization
  Name test accordingly to the tested class
  Fix MockFileSessionStorageTest::sessionDir being used after it's unset
  [Security] Fix SwitchUserToken wrongly deauthenticated
  Supporting Bootstrap 4 custom switches
  Add new Form WeekType
  bumped Symfony version to 4.3.7
  ...
2019-11-05 18:15:52 +01:00
Nicolas Grekas
4cd3dc8d7f Merge branch '4.3' into 4.4
* 4.3: (26 commits)
  [Console] Fix #33915, Detect dimensions using mode CON if vt100 is supported
  [HttpKernel][DataCollectorInterface] Ease compatibility
  Add tests to ensure defaultLocale is properly passed to the URL generator
  [DependencyInjection] Fix broken references in tests
  [HttpClient] Retry safe requests when then fail before the body arrives
  Avoid using of kernel after shutdown
  Simplify PHP CS Fixer configuration
  [PropertyInfo] Fixed type extraction for nullable collections of non-nullable elements
  [FrameworkBundle] [HttpKernel] fixed correct EOL and EOM month
  [Serializer] Fix property name usage for denormalization
  Name test accordingly to the tested class
  Fix MockFileSessionStorageTest::sessionDir being used after it's unset
  bumped Symfony version to 4.3.7
  updated VERSION for 4.3.6
  updated CHANGELOG for 4.3.6
  bumped Symfony version to 3.4.34
  updated VERSION for 3.4.33
  update CONTRIBUTORS for 3.4.33
  updated CHANGELOG for 3.4.33
  [HttpClient] Fix perf issue when doing thousands of requests with curl
  ...
2019-11-05 17:11:08 +01:00
Nicolas Grekas
620e8942a2 bug #34085 [Console] Detect dimensions using mode CON if vt100 is supported (rtek)
This PR was merged into the 4.3 branch.

Discussion
----------

[Console] Detect dimensions using mode CON if vt100 is supported

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

This fixes color support detection for users of Win10 + git-bash.  If vt100 support is detected, the terminal will not try to use `stty` to test for dimensions. Calling such command implicitly disables vt100 support on STDOUT.

Commits
-------

fdeceff85e [Console] Fix #33915, Detect dimensions using mode CON if vt100 is supported
2019-11-05 16:00:49 +01:00
rtek
fdeceff85e [Console] Fix #33915, Detect dimensions using mode CON if vt100 is supported 2019-11-05 16:00:28 +01:00
Nicolas Grekas
e0c7ab0700 bug #34199 [HttpClient] Retry safe requests using HTTP/1.1 when HTTP/2 fails (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] Retry safe requests using HTTP/1.1 when HTTP/2 fails

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

cURL support of HTTP/2 is not as robust as HTTP/1.1. When doing >1k requests, the stream can break for buggy reasons. New versions of cURL are fixed already, but let's make our logic more resilient anyway, and switch to HTTP/1.1 when a *safe* request fails for send/recv reasons.

Commits
-------

9f7cd66004 [HttpClient] Retry safe requests when then fail before the body arrives
2019-11-05 15:50:06 +01:00
Nicolas Grekas
448d0d6728 Merge branch '3.4' into 4.3
* 3.4:
  [DependencyInjection] Fix broken references in tests
  Avoid using of kernel after shutdown
  Simplify PHP CS Fixer configuration
  [FrameworkBundle] [HttpKernel] fixed correct EOL and EOM month
  Fix MockFileSessionStorageTest::sessionDir being used after it's unset
  bumped Symfony version to 3.4.34
  updated VERSION for 3.4.33
  update CONTRIBUTORS for 3.4.33
  updated CHANGELOG for 3.4.33
  [Stopwatch] Fixed a bug in stopwatch event getStartTime
  [Stopwatch] Fixed bug in getDuration when counting multiple ongoing periods
  Adding some validations tags on validators.et.xlf
  add missing translation for 94 (it)
2019-11-05 15:48:09 +01:00
Thomas Calvet
761df46993 [HttpKernel][DataCollectorInterface] Ease compatibility 2019-11-05 14:42:27 +01:00
Nicolas Grekas
dc8bb309b5 feature #34184 [VarDumper] display the method we're in when dumping stack traces (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] display the method we're in when dumping stack traces

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

This PR adds the line in blue:
![image](https://user-images.githubusercontent.com/243674/68152006-131bee00-ff43-11e9-8270-1d547732a7e5.png)

Without it, we're missing some context as the method is from a trait. This allows knowing which class is actually importing and using the method.

Commits
-------

23600cc8e1 [VarDumper] display the method we're in when dumping stack traces
2019-11-05 00:35:38 +01:00
Nicolas Grekas
a56ac78269 bug #34192 [Routing] Fix URL generator instantiation (X-Coder264, HypeMC)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] Fix URL generator instantiation

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| License       | MIT

After merging my fix (PR https://github.com/symfony/symfony/pull/31023) from the 4.2 branch to 4.3 (which was master at the time) one code path which instantiates the url generator was missed. This new code path was added via https://github.com/symfony/symfony/pull/28865 and was missed during the merge because there was no merge conflict there as that code path didn't exist on 4.2.

So the current state on the 4.3 branch is:

- https://github.com/symfony/symfony/blob/v4.3.5/src/Symfony/Component/Routing/Router.php#L356 (default locale is properly passed to the constructor)

- https://github.com/symfony/symfony/blob/v4.3.5/src/Symfony/Component/Routing/Router.php#L372 (default locale is **NOT** properly passed to the constructor)

- https://github.com/symfony/symfony/blob/v4.3.5/src/Symfony/Component/Routing/Router.php#L378 (default locale is properly passed to the constructor)

I noticed this in my app because tests started to fail on the branch where we are upgrading our app from SF 4.2 to 4.3 due to this. This PR fixes the inconsistency (now the default locale is passed on all three places) which fixes the bug.

Commits
-------

9aa66e2f59 Add tests to ensure defaultLocale is properly passed to the URL generator
16c9bafee4 Fix URL generator instantiation
2019-11-04 21:23:21 +01:00
HypeMC
9aa66e2f59 Add tests to ensure defaultLocale is properly passed to the URL generator 2019-11-04 21:23:03 +01:00
Chi-teck
bd1ead251c [DependencyInjection] Fix broken references in tests 2019-11-04 20:58:26 +01:00
Nicolas Grekas
23600cc8e1 [VarDumper] display the method we're in when dumping stack traces 2019-11-04 20:39:01 +01:00
Nicolas Grekas
9f7cd66004 [HttpClient] Retry safe requests when then fail before the body arrives 2019-11-04 16:10:28 +01:00
Fabien Potencier
14080ce5b5 minor #34197 [ErrorRenderer] Show generic message in non-debug mode (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorRenderer] Show generic message in non-debug mode

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

I agree with @Tobion here https://github.com/symfony/symfony/pull/34158#issuecomment-548181099, so let's always show the detail message, but for 5xx errors we'll send a generic message instead.

/cc @dunglas wdyt?

Commits
-------

45f1a5ee06 Show generic message in non-debug mode
2019-11-04 13:48:39 +01:00
Fabien Potencier
e4c661901e feature #33732 [Console] Rename some methods related to redraw frequency (javiereguiluz)
This PR was squashed before being merged into the 4.4 branch (closes #33732).

Discussion
----------

[Console] Rename some methods related to redraw frequency

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

In #26339 we added `preventRedrawFasterThan()` and `forceRedrawSlowerThan()`. While merging the docs for them (https://github.com/symfony/symfony-docs/pull/12364) I thought that the method names are a bit hard to understand.

In this PR I propose a renaming for your consideration. Thanks!

In the following example, we want to update the progress bar every 100 iterations, but not faster than 100ms or slower than 200ms.

**Before**

```php
$progressBar = new ProgressBar($output, 50000);
$progressBar->start();

$progressBar->setRedrawFrequency(100);
$progressBar->preventRedrawFasterThan(0.1);
$progressBar->forceRedrawSlowerThan(0.2);
```

**After**

```php
$progressBar = new ProgressBar($output, 50000);
$progressBar->start();

$progressBar->setRedrawFrequency(100);
$progressBar->maxRefreshInterval(0.1);
$progressBar->minRefreshInterval(0.2);
```

Commits
-------

e6ee7b07f3 [Console] Rename some methods related to redraw frequency
2019-11-04 13:46:19 +01:00
Javier Eguiluz
e6ee7b07f3 [Console] Rename some methods related to redraw frequency 2019-11-04 13:46:13 +01:00
Nicolas Grekas
13dd18c8a6 feature #31587 [Routing][Config] Allow patterns of resources to be excluded from config loading (tristanbes)
This PR was merged into the 4.4 branch.

Discussion
----------

[Routing][Config] Allow patterns of resources to be excluded from config loading

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #31516
| License       | MIT
| Doc PR        | not yet

The PR will fix the following RFC: #31516

Like resource loading for services, this PR offers a way to exclude patterns of resources like:

```yml
// config/routes/annotations.yaml
controllers:
    resource: ../../src/Controller/*
    type: annotation
    exclude: '../src/Controller/{DebugEmailController}.php'
```

All the annotation routes inside `Controller/` will be loaded in this example except all the one present inside the `Controller/DebugEmailController.php`

Commits
-------

332ff8811c [Routing][Config] Allow patterns of resources to be excluded from config loading
2019-11-04 11:53:20 +01:00
Nicolas Grekas
29fd51f272 feature #32256 [DI] Add compiler pass and command to check that services wiring matches type declarations (alcalyn, GuilhemN, nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] Add compiler pass and command to check that services wiring matches type declarations

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27744
| License       | MIT
| Doc PR        |

PR replacing https://github.com/symfony/symfony/pull/27825.

It adds a `lint:container` command asserting the type hints used in your code are correct.

Commits
-------

8230a1543e Make it really work on real apps
4b3e9d4c96 Fix comments, improve the feature
a6292b917b [DI] Add compiler pass to check arguments type hint
2019-11-04 11:27:29 +01:00
Fabien Potencier
e057a9c89f bug #34134 [Messenger] fix retry of messages losing the routing key and properties (Tobion)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] fix retry of messages losing the routing key and properties

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| 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 #32994 <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        |

Messages sent for retry in rabbitmq lost the routing key and properties like the priority. Now we read those original properties and sent the retry message with the same properties (unless those properties have already been set manually before).

Commits
-------

75c674debc [Messenger] fix retry of messages losing the routing key and properties
2019-11-04 07:59:16 +01:00
Fabien Potencier
0af10ccd0d minor #34160 Adding some validations tags on validators.et.xlf (glodzienski)
This PR was merged into the 3.4 branch.

Discussion
----------

Adding some validations tags on validators.et.xlf

| Q             | A
| ------------- | ---
| Branch?       | 4.4 for features / 3.4 or 4.3 for bug fixes <!-- see below -->
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | https://github.com/symfony/symfony/issues/30160
| License       | MIT

I saw an issue in the **Issues Page** and i want to help to improve the repository, even with a simple modification

Commits
-------

16bd71b5b1 Adding some validations tags on validators.et.xlf
2019-11-03 18:41:53 +01:00
Fabien Potencier
78bdf1a307 minor #34153 [Validator] add missing translation for 94 (it) (garak)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] add missing translation for 94 (it)

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

Italian translation for validator is missing last item (id 94)

Commits
-------

1dc7ce1159 add missing translation for 94 (it)
2019-11-03 18:21:08 +01:00
Fabien Potencier
9162892fd4 bug #34181 [Stopwatch] Fixed bug in getDuration when counting multiple ongoing periods (TimoBakx)
This PR was merged into the 3.4 branch.

Discussion
----------

[Stopwatch] Fixed bug in getDuration when counting multiple ongoing periods

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

When running multiple periods in StopwatchEvent (start multiple times and not stop them all), the getDuration() method would return unexpected values.

This was because at every stop, the last entry in the `started` array was removed, while the `getDuration` method was still expecting all the started events to still be there.

Now, when calling `getDuration`, the duration of all the finished periods are added together with the unfinished counts.

Commits
-------

af00d8deab [Stopwatch] Fixed bug in getDuration when counting multiple ongoing periods
2019-11-03 18:17:59 +01:00
Fabien Potencier
142bdddece bug #34165 [PropertyInfo] Fixed type extraction for nullable collections of non-nullable elements (happyproff)
This PR was squashed before being merged into the 4.3 branch (closes #34165).

Discussion
----------

[PropertyInfo] Fixed type extraction for nullable collections of non-nullable elements

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

When an annotation is declared as `int[]|null`, it is handled like `(int|null)[]|null`. So array values are also nullable.

Now this behavior is fixed that `int[]|null` is either a collection of integers only or null.

How to reproduce:
```php
class Dummy
{
    /** @var int[]|null */
    public $nullableCollectionOfNonNullableElements;
}

/** @var Type[] $types */
$types = (new PhpDocExtractor())->getTypes(Dummy::class, 'nullableCollectionOfNonNullableElements');

$collectionType = $types[0];
assert($collectionType->isCollection() === true); // OK
assert($collectionType->isNullable() === true); // OK
assert($collectionType->getCollectionValueType()->getBuiltinType() === Type::BUILTIN_TYPE_INT); // OK
assert($collectionType->getCollectionValueType()->isNullable() === false); // FAILED
```

Commits
-------

5e394c40f0 [PropertyInfo] Fixed type extraction for nullable collections of non-nullable elements
2019-11-03 13:19:19 +01:00
Stanislav Gamayunov
5e394c40f0 [PropertyInfo] Fixed type extraction for nullable collections of non-nullable elements 2019-11-03 13:19:12 +01:00
Fabien Potencier
767b265681 bug #34179 [Stopwatch] Fixed a bug in StopwatchEvent::getStartTime (TimoBakx)
This PR was merged into the 3.4 branch.

Discussion
----------

[Stopwatch] Fixed a bug in StopwatchEvent::getStartTime

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

When using a `StopwatchEvent` with an `$origin` that's smaller than the first start time, calling `getStartTime()` before ending the event will give `0` instead of the correct number.

The proposed fix in #34088 fixes this.

Commits
-------

b2b7eab949 [Stopwatch] Fixed a bug in stopwatch event getStartTime
2019-11-03 13:11:53 +01:00
Eric Schildkamp
613717d71f [FrameworkBundle] [HttpKernel] fixed correct EOL and EOM month
* Added a hardcoded day 01 in order to output the proper month November
which is the correct EOL and EOM month.
* \DateTime::createFromFormat('mY') will output December for every month
where day 31 exists.
2019-11-03 13:06:33 +01:00
Fabien Potencier
14da17044b bug #34219 [Security] Add back ROLE_PREVIOUS_ADMIN to impersonated user (chalasr)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Security] Add back ROLE_PREVIOUS_ADMIN to impersonated user

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

Still useful as per https://symfony.com/doc/master/security/impersonating_user.html#knowing-when-impersonation-is-active

Commits
-------

64f4430cda [Security] Add back ROLE_PREVIOUS_ADMIN to impersonated user
2019-11-03 13:02:10 +01:00
Fabien Potencier
08a218c79f bug #34218 [Security] Fix SwitchUserToken wrongly deauthenticated (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Fix SwitchUserToken wrongly deauthenticated

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

Commits
-------

e47b31c43c [Security] Fix SwitchUserToken wrongly deauthenticated
2019-11-03 13:01:14 +01:00
Fabien Potencier
0c784d2879 feature #32061 Add new Form WeekType (dFayet)
This PR was merged into the 4.4 branch.

Discussion
----------

Add new Form WeekType

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #32029
| License       | MIT
| Doc PR        | <!--symfony/symfony-docs#...--> coming soon

----
#### Update

After the first try, I've updated the field to have more options, and be more "straight".
The field acts like the `DateTimeType` or `TimeType`,  various fields type (pure text, html5 type, select boxes), data validation, ....

For that I took the choice to update the `DateTimeToStringTransformer` and `DateTimeToArrayTransformer` to make them work with weeks format.

I was not sure if it was better to update them or create new ones, WDYT?

Before addind tests and docs, it would be nice to have your first thoughts/comments 😊

Do you need/want a small test repo?

Commits
-------

c4a2f026e0 Add new Form WeekType
2019-11-03 12:59:10 +01:00
Fabien Potencier
25baf75edb Fix CS 2019-11-03 12:51:47 +01:00
Fabien Potencier
71873fc770 feature #33854 [DI] Add ability to choose behavior of decorations on non existent decorated services (mtarld)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] Add ability to choose behavior of decorations on non existent decorated services

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | #33522
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/12442

# Handling decorations on non existent decorated services
Handle decorations on non existent decorated services by either throwing the service not found exception, silently ignoring services (decorator & decorated) all together or leave the decorated service to null (current behavior)

Something almost similar to how missing services as parameters are handles.

## Yaml configuration
```yaml
decorator:
    decorates: decorated
    decoration_on_invalid: ignore
```
Available values: `exception`, `ignore`, `null`. `exception` if nothing is specified.

## Xml configuration
```xml
<service id="decorator" decorates="decorated" decoration-on-invalid="ignore" />
```
Available values: `exception`, `ignore`, `null`. `exception` if nothing is specified.

## Behavior
- `exception`: Throws a `ServiceNotFoundException` telling that the decorator's dependency is missing
- `ignore`: Remove decorator definition. Decorator and decorated will not be available at all.
- `null`: Keep decorator but set decorated to null. Therefore, decorator `__construct` should be written with a nullable decorated dependency (`public function __contruct(?DecoratedInterface $decorated) {}`) and check should be done in other methods

Commits
-------

f167c77eaf Handle non existent decorated services
2019-11-03 12:49:07 +01:00
Fabien Potencier
22976d0f54 bug #34035 [Serializer] Fix property name usage for denormalization (antograssiot)
This PR was squashed before being merged into the 4.3 branch (closes #34035).

Discussion
----------

[Serializer] Fix property name usage for denormalization

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

Using the `@SerializedName()` and passing it an existing property name affects the deserialization even if `@Groups()` are not supposed to be involved.

## How to reproduce

Given the following class
```php

class Foo
{
    /**
     * @Group("list")
     */
    private $bar;

    public function setBar($bar)
    {
        $this->bar = $bar;
    }
    public function getBar()
    {
        return $this->bar;
    }
    /**
     * @Groups({"list:export"})
     * @SerializedName("bar")
     */
    public function getBarForExport()
    {
        return $this->bar.' Rocks';
    }
}
```

This allow us to change the content of the property based on the normalization context.

```php
$obj = new Foo();
$obj->setBar('Api Platform');

$data = $normalizer->normalize($obj, null, ['groups' => ["list"]]);
// $data => ['bar' => 'Api Platform'] as expected

$data = $normalizer->normalize($obj, null, ['groups' => ["list:export"]]);
// $data => ['bar' => 'Api Platform Rocks'] as expected

$obj = $normalizer->denormalize(['bar' => 'Api Platform'], Foo::class, null, ['groups' => ['list']]);
// $obj->getBar()  would return null instead of 'Api Platform' as expected.
```

Commits
-------

8ca4a3f345 [Serializer] Fix property name usage for denormalization
2019-11-03 12:04:07 +01:00
Anto
8ca4a3f345 [Serializer] Fix property name usage for denormalization 2019-11-03 12:04:02 +01:00
Oskar Stark
2ce086ab29
Name test accordingly to the tested class 2019-11-03 10:04:05 +01:00
HypeMC
51b20dd895 Fix MockFileSessionStorageTest::sessionDir being used after it's unset 2019-11-03 03:12:45 +01:00
Robin Chalas
e47b31c43c [Security] Fix SwitchUserToken wrongly deauthenticated 2019-11-02 08:21:17 +01:00
Robin Chalas
64f4430cda [Security] Add back ROLE_PREVIOUS_ADMIN to impersonated user 2019-11-02 08:18:50 +01:00
Christopher Hertel
c2c3e70e6b fixing telegram token 2019-11-01 17:59:41 +01:00
dFayet
c4a2f026e0 Add new Form WeekType 2019-11-01 15:48:13 +01:00
Christian Flothmann
be8cb4eef6 fix exception messages 2019-11-01 15:41:54 +01:00
Tobias Schultze
127f5da1fd [Messenger] remove legacy code in SendersLocator 2019-11-01 13:59:10 +01:00
Tobias Schultze
0ea2855cdf Merge branch '4.4' 2019-11-01 13:49:41 +01:00
Fabien Potencier
ce6332ce71 bumped Symfony version to 4.3.7 2019-11-01 11:04:19 +01:00
Fabien Potencier
b959f05d98 updated VERSION for 4.3.6 2019-11-01 11:00:03 +01:00
Fabien Potencier
36c4c66a60 bumped Symfony version to 3.4.34 2019-11-01 10:59:17 +01:00
Fabien Potencier
a3ae48695d updated VERSION for 3.4.33 2019-11-01 10:46:31 +01:00
Tobias Schultze
d7e0f98cd0 [Messenger] extract worker logic to listener and sent messages for retry
and failure directly to transport instead of redispatching on the bus
2019-10-31 15:47:36 +01:00
Tobias Schultze
cf10c02765 minor #34155 Revert SyncTransport simplification and fix properly (weaverryan)
This PR was squashed before being merged into the 4.4 branch (closes #34155).

Discussion
----------

Revert SyncTransport simplification and fix properly

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #34115 (and also related to #34066)
| License       | MIT
| Doc PR        | Not needed

In #34069, I made `SyncTransport` simpler by removing that transport class and making the whole things a config trick. I felt GREAT about that solution... until i realized two big problems:

1) It kills using env vars for `sync://` because we read the config values at build time - #34115 - that could probably be fixed by adding a factory, but then there is also the next problem

2) If someone routed a message to `[async, sync]` (weird, but allowed), my #34069 config solution basically maps this internally to `[async]`, which actually causes the message to *not* be handled immediately. Basically, my solution only worked if you route a message ONLY to one sync transport, but fails if you route to multiple transports.

So... this fixes things in a less-cool, but sensible way:

A) The first commit reverts #34069 exactly
B) The second commit solves the issue that we need to know if a message is being handled in a "worker" context or not, so middleware can decide if they should reset things before/after handling things. Previously we were using `ReceivedStamp` to know this. But because `SyncTransport` also "receives" the message and adds this stamp, it's not enough. To fix this, I added a new `ConsumedByWorkerStamp` that clearly means: "This message is being handled by a worker" (and so, you might want to "reset" some things before/after handling).

Thanks!

Commits
-------

01a9fefe77 Adding ConsumedByWorkerStamp as way to mark a message in a "worker context"
38f19a960c Revert "[Messenger] Removing "sync" transport and replacing it with much nicer config trick"
2019-10-31 15:10:54 +01:00
Yonel Ceruto
45f1a5ee06 Show generic message in non-debug mode 2019-10-31 09:58:15 -04:00
Nicolas Grekas
e388b739ed [HttpClient] Fix perf issue when doing thousands of requests with curl 2019-10-31 08:19:20 +01:00
Nicolas Grekas
aea43b27b0 minor #34166 [VarDumper] Do not dump the EventDispatcher (lyrixx)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] Do not dump the EventDispatcher

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

Commits
-------

31c402a003 [VarDumper] Do not dump the EventDispatcher
2019-10-30 22:27:22 +01:00
Antonio Pauletich
16c9bafee4
Fix URL generator instantiation 2019-10-30 20:24:37 +01:00
Nicolas Grekas
38bd52e9be feature #34133 [Cache] add DeflateMarshaller - remove phpredis compression (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] add DeflateMarshaller - remove phpredis compression

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

phpredis compression doesn't play well with lua scripting as used in #33939
Let's remove it and provide a `DeflateMarshaller` instead.

Ppl can use it via decoration:
```yaml
services:
    Symfony\Component\Cache\Marshaller\DeflateMarshaller:
        decorates: cache.default_marshaller
        arguments: ['@Symfony\Component\Cache\Marshaller\DeflateMarshaller.inner']
```

It's not enabled by default because that might break pools that are shared between different apps.

/cc @andrerom FYI

Commits
-------

452c863639 [Cache] add DeflateMarshaller - remove phpredis compression
2019-10-30 17:54:40 +01:00
Nicolas Grekas
8cf0698e85 bug #34163 [DI] fix regexp for anonymous services with no class set (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] fix regexp for anonymous services with no class set

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

Follows #33782

Commits
-------

a302d2050e [DI] fix regexp for anonymous services with no class set
2019-10-30 17:53:52 +01:00
Nicolas Grekas
ba6dd85eb9 Merge branch '4.4'
* 4.4:
  [Validator] fix merge
2019-10-30 14:48:35 +01:00
Nicolas Grekas
cc357ad70c [Validator] fix merge 2019-10-30 14:47:18 +01:00
Nicolas Grekas
4d868d4e48 [DomCrawler] fix merge 2019-10-30 14:28:36 +01:00
Nicolas Grekas
7e65dad828 Merge branch '4.4'
* 4.4:
  [4.3] Remove unused local variables
2019-10-30 14:25:47 +01:00
Nicolas Grekas
94beae00b1 Merge branch '4.3' into 4.4
* 4.3:
  [4.3] Remove unused local variables
2019-10-30 14:23:44 +01:00
Nicolas Grekas
e8b31ff608 minor #34176 [4.3] Remove unused local variables (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[4.3] Remove unused local variables

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

Follow up of https://github.com/symfony/symfony/pull/34105 on 4.3.

Commits
-------

58161b8eec [4.3] Remove unused local variables
2019-10-30 14:18:51 +01:00
Nicolas Grekas
00c0bd499f Merge branch '4.4'
* 4.4:
  [Lock][HttpFoundation] Hot fix
2019-10-30 14:15:30 +01:00
Nicolas Grekas
301ec496ea [Lock][HttpFoundation] Hot fix 2019-10-30 14:15:17 +01:00
Nicolas Grekas
c93bf69db3 Merge branch '4.4'
* 4.4:
  [Config] Disable default alphabet sorting in glob function due of unstable sort
  [HttpClient] always return the empty string when the response cannot have a body
  [TwigBundle][exception] Added missing css variable to highlight line in trace
  [Serializer] Improve messages for unexpected resources values
  [SecurityBundle] correct types for default arguments for firewall configs
2019-10-30 14:09:48 +01:00
Timo Bakx
b2b7eab949 [Stopwatch] Fixed a bug in stopwatch event getStartTime 2019-10-30 14:03:57 +01:00
Thomas Calvet
58161b8eec [4.3] Remove unused local variables 2019-10-30 13:58:49 +01:00
Nicolas Grekas
0b5b6fa79f Merge branch '4.3' into 4.4
* 4.3:
  [Config] Disable default alphabet sorting in glob function due of unstable sort
  [HttpClient] always return the empty string when the response cannot have a body
  [TwigBundle][exception] Added missing css variable to highlight line in trace
  [Serializer] Improve messages for unexpected resources values
  [SecurityBundle] correct types for default arguments for firewall configs
2019-10-30 13:55:29 +01:00
Nicolas Grekas
1aaf58b55a Merge branch '3.4' into 4.3
* 3.4:
  [Config] Disable default alphabet sorting in glob function due of unstable sort
  [Serializer] Improve messages for unexpected resources values
  [SecurityBundle] correct types for default arguments for firewall configs
2019-10-30 13:53:54 +01:00
Nicolas Grekas
27b0baa270 bug #33998 [Config] Disable default alphabet sorting in glob function due of unstable sort (hurricane-voronin)
This PR was squashed before being merged into the 3.4 branch.

Discussion
----------

[Config] Disable default alphabet sorting in glob function due of unstable sort

…table sort

| Q             | A
| ------------- | ---
| Branch?       | 3.4  <!-- 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 #33990  <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | no <!-- required for new features -->

`\Symfony\Component\Config\Resource\GlobResource::getIterator` loads files using `glob` not it the stable sorting, e.g several files: `doctrine.yml` and `doctrine_mongodb.yaml` in `config/packages` folder.
On requests these files come(randomly) in a different order, which leads to reinitialization of symfony kernel in `dev` environment. It's a little bit annoying and takes a lot of time in a common :(

<!--
Additionally (see https://symfony.com/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

3bed0247c0 [Config] Disable default alphabet sorting in glob function due of unstable sort
2019-10-30 13:46:47 +01:00
Denys Voronin
3bed0247c0 [Config] Disable default alphabet sorting in glob function due of unstable sort 2019-10-30 13:43:22 +01:00
Nicolas Grekas
f78e14332e [HttpClient] always return the empty string when the response cannot have a body 2019-10-30 12:53:18 +01:00
Fabien Potencier
5dc29c402f Merge branch '4.4'
* 4.4:
  [HttpFoundation][FrameworkBundle] allow configuring the session handler with a DSN
  [Validator] Add AutoMapping constraint to enable or disable auto-validation
  [DI] Fix "!tagged" related upgrade/changelog notes
2019-10-30 11:44:38 +01:00
Fabien Potencier
6bb7751fc1 feature #34177 [HttpFoundation][FrameworkBundle] allow configuring the session handler with a DSN (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation][FrameworkBundle] allow configuring the session handler with a DSN

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

```yaml
framework:
    session:
        handler_id: 'redis://localhost'
        handler_id: '%env(REDIS_URL)%'
        handler_id: '%env(DATABASE_URL)%'
        handler_id: 'file://%kernel.project_dir%/var/sessions'
```

etc.

the database connection is not shared with the ORM (don't mess with transactions.)
redis/memcached connections are shared between cache and session.
(as a reminder, cache and ORM share the db connection: we're ok with trashing the cache on a rollback)

Lock-related changes are a follow up of #34043.
(fabbot failure is false positive)

Commits
-------

de9c61f423 [HttpFoundation][FrameworkBundle] allow configuring the session handler with a DSN
2019-10-30 11:42:43 +01:00
Nicolas Grekas
de9c61f423 [HttpFoundation][FrameworkBundle] allow configuring the session handler with a DSN 2019-10-30 10:56:04 +01:00
Christian Flothmann
9e7ab8c003 feature #32107 [Validator] Add AutoMapping constraint to enable or disable auto-validation (dunglas)
This PR was squashed before being merged into the 4.4 branch (closes #32107).

Discussion
----------

[Validator] Add AutoMapping constraint to enable or disable auto-validation

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #32070, #32015   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo

As discussed in #32070 and #32015, it's sometimes mandatory to prevent some classes or properties to be auto mapped (auto-validated). This PR introduces a new constraint, `@AutoMapping` allowing to do exactly that. Examples:

Class:

```php
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 * @Assert\AutoMapping(false)
 */
class DoctrineLoaderNoAutoMappingEntity
{
    /**
     * @ORM\Id
     * @ORM\Column
     */
    public $id;

    /**
     * @ORM\Column(length=20, unique=true)
     */
    public $maxLength;
}
```

Property:

```php
namespace Symfony\Bridge\Doctrine\Tests\Fixtures;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * @ORM\Entity
 */
class DoctrineLoaderEntity extends DoctrineLoaderParentEntity
{
    /**
     * @ORM\Id
     * @ORM\Column
     */
    public $id;

    /**
     * @ORM\Column(length=10)
     * @Assert\AutoMapping(false)
     */
    public $noAutoMapping;
}
```

The rules are the following:

* If the constraint is present on a property, and set to true, auto-mapping is always on, regardless of the config, and of any class level annotation
* If the constraint is present on a property, and set to false, auto-mapping is always off, regardless of the config, and of any class level annotation
* If the constraint is present on a class, and set to true, auto-mapping is always on except if a the annotation has been added to a specific property, and regardless of the config
* If the constraint is present on a class, and set to false, auto-mapping is always off except if a the annotation has been added to a specific property, and regardless of the config

Commits
-------

f6519ce88b [Validator] Add AutoMapping constraint to enable or disable auto-validation
2019-10-30 08:50:31 +01:00
Kévin Dunglas
f6519ce88b [Validator] Add AutoMapping constraint to enable or disable auto-validation 2019-10-30 08:50:22 +01:00
Robin Chalas
81b9c3c682 [DI] Fix "!tagged" related upgrade/changelog notes 2019-10-29 21:21:43 +01:00
Timo Bakx
af00d8deab [Stopwatch] Fixed bug in getDuration when counting multiple ongoing periods 2019-10-29 21:16:34 +01:00
Nicolas Grekas
89901e6345 Merge branch '4.4'
* 4.4:
  Re-allow to use "tagged" in service definitions
  [HttpFoundation] Allow to not pass a parameter to Request::isMethodSafe()
  Add missing lock connection string in FrameworkExtension
  [DomCrawler] normalizeWhitespace should be true by default
  [DoctrineBridge] Auto-validation must work if no regex are passed
  Allows URL DSN in Lock and Cache
2019-10-29 15:23:29 +01:00
Nicolas Grekas
d08273236c feature #34170 Re-allow to use "tagged" in service definitions (dunglas)
This PR was merged into the 4.4 branch.

Discussion
----------

Re-allow to use "tagged" in service definitions

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

Re-allow to use `tagged` in 4.4 and 5.0. It makes it easier for bundles to support both Symfony 4.3- and Symfony 4.4+.

Needed to make API Platform compatible with Symfony 5 (api-platform/core#3009)

Commits
-------

7b7dc0df9a Re-allow to use "tagged" in service definitions
2019-10-29 15:17:53 +01:00
Kévin Dunglas
7b7dc0df9a
Re-allow to use "tagged" in service definitions 2019-10-29 15:11:25 +01:00
Kévin Dunglas
e819256ea0 [HttpFoundation] Allow to not pass a parameter to Request::isMethodSafe() 2019-10-29 14:51:13 +01:00
Grégoire Pineau
31c402a003 [VarDumper] Do not dump the EventDispatcher 2019-10-29 14:41:12 +01:00
Jérémy Derussé
2db24cf582
Add missing lock connection string in FrameworkExtension 2019-10-29 14:34:12 +01:00
Nicolas Grekas
e2c625e78b feature #34057 [Lock][Cache] Allows URL DSN in PDO adapters (jderusse)
This PR was merged into the 4.4 branch.

Discussion
----------

[Lock][Cache] Allows URL DSN in PDO adapters

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

This PR duplicate a feature from PdoSessionHandler that convert URL DSN ( ie. mysql://localhost/test) into PDO DSN (ie. mysql:host=localhost;dbname=test)

that would ease configuration by using the same well-known variable
```
framework:
  lock: '%env(DATABASE_URL)%'
```

note: I applied the same change on Cache component for consistency.

Commits
-------

474daf976e Allows URL DSN in Lock and Cache
2019-10-29 14:07:00 +01:00
Nicolas Grekas
a302d2050e [DI] fix regexp for anonymous services with no class set 2019-10-29 12:56:37 +01:00
Kévin Dunglas
54d46eef67
[DomCrawler] normalizeWhitespace should be true by default 2019-10-29 12:38:30 +01:00
Thomas Calvet
ad2ce276c7 [Serializer] Improve messages for unexpected resources values 2019-10-29 12:09:57 +01:00
Nicolas Grekas
452c863639 [Cache] add DeflateMarshaller - remove phpredis compression 2019-10-29 11:36:36 +01:00
Kévin Dunglas
42be5f8132
Merge branch '4.3' into 4.4
* 4.3:
  [DoctrineBridge] Auto-validation must work if no regex are passed
2019-10-29 11:04:46 +01:00
Kévin Dunglas
ee4b99f227
bug #33828 [DoctrineBridge] Auto-validation must work if no regex are passed (dunglas)
This PR was squashed before being merged into the 4.3 branch (closes #33828).

Discussion
----------

[DoctrineBridge] Auto-validation must work if no regex are passed

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

Backport of https://github.com/symfony/symfony/pull/32107/files#r295762928.
This behavior if faulty, if no regex are passed, autvalidation must be triggered, [as done in `PropertyInfoLoader`](https://github.com/symfony/symfony/blob/4.3/src/Symfony/Component/Validator/Mapping/Loader/PropertyInfoLoader.php#L50).

Commits
-------

5ed7d6c759 [DoctrineBridge] Auto-validation must work if no regex are passed
2019-10-29 11:03:42 +01:00
Kévin Dunglas
5ed7d6c759
[DoctrineBridge] Auto-validation must work if no regex are passed 2019-10-29 11:03:05 +01:00
Robin Chalas
3309da9de8 Merge branch '4.4'
* 4.4:
  [ErrorRenderer] Security fix: hide sensitive error messages
  [Security] Fix merge
2019-10-29 04:36:04 +01:00
Robin Chalas
662b35e30e Merge branch '4.3' into 4.4
* 4.3:
  remove outdated workflow test
  drop wrong test (fix merge)
2019-10-29 04:34:23 +01:00
Robin Chalas
9576bcecdb Merge branch '4.4'
* 4.4:
  [Security] Fix merge
  remove outdated workflow test
  drop wrong test (fix merge)
2019-10-29 03:20:27 +01:00
Robin Chalas
d36f0f3b6f Merge branch '4.3' into 4.4
* 4.3:
  remove outdated workflow test
  drop wrong test (fix merge)
2019-10-29 03:20:07 +01:00
Robin Chalas
b778c685ed [Security] Fix merge 2019-10-29 03:16:42 +01:00
Robin Chalas
f233259c68 remove outdated workflow test 2019-10-29 03:10:02 +01:00
Robin Chalas
6c2253415f drop wrong test (fix merge) 2019-10-29 02:54:26 +01:00
Leevi Graham
c9072c70ef Check value isset to avoid PHP notice 2019-10-29 12:23:29 +11:00
Glodzienski
16bd71b5b1
Adding some validations tags on validators.et.xlf 2019-10-28 21:40:18 -03:00
Yonel Ceruto
cc2858f7d0 bug #34158 [ErrorRenderer] Security fix: hide sensitive error messages (dunglas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorRenderer] Security fix: hide sensitive error messages

| 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       | n/a
| License       | MIT
| Doc PR        | n/a

This PR fixes a security issue. Exception messages must not be displayed except when debugging, because they can contain sensitive data including credentials.
For instance, PDO and Doctrine throw exception with message such as `The details are: SQLSTATE[HY000] [1045] Access denied for user 'root'@'db.example.com' (using password: NO)` revealing internal details about the infrastructure usful for an attacker.

Also, I still think that ErrorRenderer should be removed in favor of using the Serializer directly (see https://github.com/symfony/symfony/pull/33650#issuecomment-534441889). I'll try to open some PRs to do that in tomorrow.

Commits
-------

d7d7f22 [ErrorRenderer] Security fix: hide sensitive error messages
2019-10-28 19:43:36 -04:00
Kévin Dunglas
d7d7f22dbe [ErrorRenderer] Security fix: hide sensitive error messages 2019-10-28 19:37:55 -04:00
Robin Chalas
fd0ed42adb [Security] Fix merge 2019-10-28 23:18:08 +01:00
Nicolas Grekas
3483d9a9ee Merge branch '4.4'
* 4.4:
  Fix an error message to be more accurate
2019-10-28 22:57:31 +01:00
Nicolas Grekas
0f5a7b8b41 Merge branch '4.3' into 4.4
* 4.3:
  Fix an error message to be more accurate
2019-10-28 22:57:16 +01:00
Nicolas Grekas
7b3d5cd615 minor #34157 [OptionsResolver] Fix an error message to be more accurate (yceruto)
This PR was merged into the 4.3 branch.

Discussion
----------

[OptionsResolver] Fix an error message to be more accurate

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

Follow-up https://github.com/symfony/symfony/pull/30442 for 4.3

Commits
-------

1be68a752a Fix an error message to be more accurate
2019-10-28 22:53:11 +01:00
Nicolas Grekas
5a855408e1 Merge branch '4.4'
* 4.4:
  [OptionsResolve] Revert change in tests for a not-merged change in code
  [HttpClient] fix handling of 3xx with no Location header - ignore Content-Length when no body is expected
  [Workflow] Made the configuration more robust for the 'property' key
  [Security/Core] make NativePasswordEncoder use sodium to validate passwords when possible
  [FrameworkBundle] make SodiumVault report bad decryption key accurately
  cs fix
  [Security] Allow to set a fixed algorithm
  [Security/Core] make encodedLength computation more generic
  [Security/Core] add fast path when encoded password cannot match anything
  #30432 fix an error message
  fix paths to detect code owners
  [HttpClient] ignore the body of responses to HEAD requests
  [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4
  [SecurityBundle] Fix wrong assertion
  Remove unused local variables in tests
  [Yaml][Parser] Remove the getLastLineNumberBeforeDeprecation() internal unused method
  Make sure to collect child forms created on *_SET_DATA events
  [WebProfilerBundle] Improve display in Email panel for dark theme
  do not render errors for checkboxes twice
2019-10-28 22:51:41 +01:00
Yonel Ceruto
1be68a752a Fix an error message to be more accurate 2019-10-28 16:59:01 -04:00
Nicolas Grekas
05f7f4e147 Merge branch '4.3' into 4.4
* 4.3:
  [OptionsResolve] Revert change in tests for a not-merged change in code
  [HttpClient] fix handling of 3xx with no Location header - ignore Content-Length when no body is expected
  [Workflow] Made the configuration more robust for the 'property' key
  [Security/Core] make NativePasswordEncoder use sodium to validate passwords when possible
  #30432 fix an error message
  fix paths to detect code owners
  [HttpClient] ignore the body of responses to HEAD requests
  [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4
  [SecurityBundle] Fix wrong assertion
  Remove unused local variables in tests
  [Yaml][Parser] Remove the getLastLineNumberBeforeDeprecation() internal unused method
  Make sure to collect child forms created on *_SET_DATA events
  [WebProfilerBundle] Improve display in Email panel for dark theme
  do not render errors for checkboxes twice
2019-10-28 21:30:34 +01:00
Ryan Weaver
01a9fefe77 Adding ConsumedByWorkerStamp as way to mark a message in a "worker context" 2019-10-28 13:18:09 -04:00
Nicolas Grekas
15f08553be [OptionsResolve] Revert change in tests for a not-merged change in code 2019-10-28 18:16:45 +01:00
Nicolas Grekas
6d5c91bb47 Merge branch '3.4' into 4.3
* 3.4:
  #30432 fix an error message
  fix paths to detect code owners
  [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4
  Remove unused local variables in tests
  Make sure to collect child forms created on *_SET_DATA events
  do not render errors for checkboxes twice
2019-10-28 18:07:32 +01:00
Nicolas Grekas
fd5b8def49 bug #34154 [HttpClient] fix handling of 3xx with no Location header - ignore Content-Length when no body is expected (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix handling of 3xx with no Location header - ignore Content-Length when no body is expected

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

A `304` is the final response code.
This PR implements the same logic as curl.

Commits
-------

50a88c59f6 [HttpClient] fix handling of 3xx with no Location header - ignore Content-Length when no body is expected
2019-10-28 17:53:30 +01:00
Nicolas Grekas
50a88c59f6 [HttpClient] fix handling of 3xx with no Location header - ignore Content-Length when no body is expected 2019-10-28 16:45:56 +01:00
Massimiliano Arione
1dc7ce1159
add missing translation for 94 (it) 2019-10-28 16:39:28 +01:00
Ryan Weaver
38f19a960c Revert "[Messenger] Removing "sync" transport and replacing it with much nicer config trick"
This reverts commit 3d4e59a10b.
2019-10-28 11:14:08 -04:00
Nicolas Grekas
799a2eae2d [Security/Core] make NativePasswordEncoder use sodium to validate passwords when possible 2019-10-28 10:20:18 +01:00
Mathias Arlaud
f167c77eaf Handle non existent decorated services 2019-10-28 09:31:16 +01:00
Jérémy Derussé
474daf976e
Allows URL DSN in Lock and Cache 2019-10-27 15:23:49 +01:00
Nicolas Grekas
0a1de38a5b cs fix 2019-10-27 13:36:05 +01:00
Nicolas Grekas
b5a47df0b9 feature #34020 [Security] Allow to stick to a specific password hashing algorithm (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Allow to stick to a specific password hashing algorithm

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

Allows using `argon2i`, `argon2id` and `bcrypt`.

Commits
-------

6712d1e504 [Security] Allow to set a fixed algorithm
2019-10-27 13:33:51 +01:00
Robin Chalas
6712d1e504 [Security] Allow to set a fixed algorithm 2019-10-27 13:32:13 +01:00
Fabien Potencier
b6e203dfe7 [Notifier] Add the possibility to add actions on Slack messages 2019-10-27 12:56:24 +01:00
Nicolas Grekas
60a4d8dc7a [Security/Core] make encodedLength computation more generic 2019-10-27 11:16:45 +01:00
Robin Chalas
32b227d004 minor #34138 [Security/Core] add fast path when encoded password cannot match anything (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security/Core] add fast path when encoded password cannot match anything

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

Only `MessageDigestPasswordEncoder` and `Pbkdf2PasswordEncoder` need this fast path: the sodium and the native encoders already implement it natively.

When a migrating encoder is used, a failed password validation fallbacks to all encoders. This makes the process slower than needed currently.

Commits
-------

c57f8f7f93 [Security/Core] add fast path when encoded password cannot match anything
2019-10-27 11:11:28 +01:00
Nicolas Grekas
c57f8f7f93 [Security/Core] add fast path when encoded password cannot match anything 2019-10-27 10:41:22 +01:00
Robin Chalas
c384905b52 Merge branch '4.4'
* 4.4:
  [Messenger] Fix redis test
2019-10-27 08:03:38 +01:00
Robin Chalas
3fdaf970c3 [Messenger] Fix redis test 2019-10-27 07:53:30 +01:00
Fabien Potencier
8767ff8e7b [Notifier] Set missing defaults 2019-10-26 22:31:26 +02:00
Fabien Potencier
6525b5e490 Merge branch '4.4'
* 4.4:
  [VarDumper] fix infinite recursion
  Fix web debug toolbar z-index property
  Avoid nested exceptions if errors occur when generating file links
2019-10-26 21:52:39 +02:00
Fabien Potencier
b54997d1df bug #34126 [VarDumper] fix infinite recursion (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] fix infinite recursion

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

Commits
-------

56d9f47857 [VarDumper] fix infinite recursion
2019-10-26 21:52:16 +02:00
Tobias Schultze
75c674debc [Messenger] fix retry of messages losing the routing key and properties 2019-10-26 20:28:54 +02:00
Yonel Ceruto
fb70e0af8d minor #30442 [OptionsResolver] Fix an error message to be more accurate (dimabory)
This PR was merged into the 3.4 branch.

Discussion
----------

[OptionsResolver] Fix an error message to be more accurate

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #30432
| License       | MIT
| Doc PR        |

See #30432 for more details:
> **Symfony version(s) affected**: 3.4, maybe other versions too (not tested)
>
> **Description**
> Error message when allowedTypes is an array contains `[]` but should not:
> `The option "testme" with value array is expected to be of type "string[]", but one of the elements is of type "integer[]".`
> It should be:
> `The option "testme" with value array is expected to be of type "string[]", but one of the elements is of type "integer".`
>
> **How to reproduce**
>
> ```
> $resolver = (new OptionsResolver())
>     ->setDefault('testme', [])
>     ->setAllowedTypes('testme', ['string[]'])
>     ->resolve(['testme' => ['test', 12]]);
> ```

In addition I changed an error message to be more
accurate if provided more than one incorrect value:
> [...] is expected to be of type "integer[][]", but is of type "integer|boolean|string".

Commits
-------

7fa2fc2 #30432 fix an error message
2019-10-26 07:18:38 -04:00
Dmytro
7fa2fc2b96 #30432 fix an error message 2019-10-26 07:02:01 -04:00
Thomas Calvet
6cbee0944c [FrameworkBundle][Translation] Invalidate cached catalogues when the scanned directories change 2019-10-26 12:43:57 +02:00
Yonel Ceruto
2a5c75582e bug #33999 [Form] Make sure to collect child forms created on *_SET_DATA events (yceruto)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Make sure to collect child forms created on *_SET_DATA events

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

See reproducer provided by @WubbleWobble https://github.com/WubbleWobble/symfony-issue-29291.

Commits
-------

50efc1a Make sure to collect child forms created on *_SET_DATA events
2019-10-26 06:32:38 -04:00
Fabien Potencier
8eb17aa203 bug #34076 [HttpKernel] Avoid nested exceptions if errors occur when generating file links (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Avoid nested exceptions if errors occur when generating file links

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

Multiple exceptions are fired until the fallback error page is rendered without the FileLinkFormatter:
48282ce80f/src/Symfony/Component/HttpKernel/Debug/FileLinkFormatter.php (L79-L86)

**Before** (the reproducer is highlighted inside the picture or simply adds an undefined option to the `@Route()` annotation)
![error-page-before](https://user-images.githubusercontent.com/2028198/67356903-c8a17700-f529-11e9-9384-12a29e17b682.png)

**After** (I couldn't find a better solution to display this exception once)
![error-page-after](https://user-images.githubusercontent.com/2028198/67356941-db1bb080-f529-11e9-8808-d7f72dadc4d6.png)

Commits
-------

d91a5a067d Avoid nested exceptions if errors occur when generating file links
2019-10-26 10:25:48 +02:00
Nicolas Grekas
56d9f47857 [VarDumper] fix infinite recursion 2019-10-26 10:24:21 +02:00
Christian Flothmann
ccc5667df8 minor #34100 [Yaml][Parser] Remove the getLastLineNumberBeforeDeprecation() internal unused method (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[Yaml][Parser] Remove the getLastLineNumberBeforeDeprecation() internal unused method

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

This method is internal and unused. It was removed by a2ae6bf745 but was added back mistakenly by 1baac5a74f.

Commits
-------

49acc16424 [Yaml][Parser] Remove the getLastLineNumberBeforeDeprecation() internal unused method
2019-10-26 09:13:46 +02:00
Yonel Ceruto
f7a242d705 Fix web debug toolbar z-index property 2019-10-25 20:47:58 -04:00
Tobias Schultze
ed0fc66dfc Merge branch '4.4' 2019-10-25 15:46:39 +02:00
Tobias Schultze
0e3bae28ec remove experimental added in 4.3 as bugfix 2019-10-25 15:44:38 +02:00
Tobias Schultze
c950130fc2 Merge branch '4.3' into 4.4 2019-10-25 15:41:20 +02:00
Fabien Potencier
6c08ac599e bug #34116 [HttpClient] ignore the body of responses to HEAD requests (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] ignore the body of responses to HEAD requests

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

Commits
-------

0fc371e7df [HttpClient] ignore the body of responses to HEAD requests
2019-10-25 15:21:40 +02:00
Nicolas Grekas
0fc371e7df [HttpClient] ignore the body of responses to HEAD requests 2019-10-25 15:08:37 +02:00
Tobias Schultze
c953ba88d7 minor #34097 [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4 (alexpott)
This PR was squashed before being merged into the 3.4 branch (closes #34097).

Discussion
----------

[Validator] Ensure numeric subpaths do not cause errors on PHP 7.4

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Drupal is testing on PHP7.4 and hitting a problem with the line `if ('[' === $subPath[0]) {` because `$subPath` is not a string. We're already doing string casting in the method so we could do it once and be done. Note this is not a problem on the master branch / SF5 because of primitive typehinting.

Without this fix on PHP7.4 you see errors like...
```
1) Symfony\Component\Validator\Tests\Util\PropertyPathTest::testAppend with data set #5 ('0', 1, '0.1', 'Numeric subpaths do not cause...rrors.')
Trying to access array offset on value of type int
```

Commits
-------

6244a1ec47 [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4
2019-10-25 15:07:00 +02:00
Alex Pott
6244a1ec47 [Validator] Ensure numeric subpaths do not cause errors on PHP 7.4 2019-10-25 15:06:49 +02:00
Tobias Schultze
8bf8c50363 bug #32456 [Messenger] use database platform to convert correctly the DateTime (roukmoute)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] use database platform to convert correctly the DateTime

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/32427
| License       | MIT

In Doctrine Messenger the method `\Symfony\Component\Messenger\Transport\Doctrine\Connection::formatDateTime()` is used to format dateTime into this: `Y-m-d\TH:i:s`.
But this is not supported in all databases platform.

Here we use the database platform to convert correctly the dateTime.

Commits
-------

cfa11561d1 Format DateTime depending on database platform
2019-10-25 12:57:14 +02:00
Mathias STRASSER
cfa11561d1
Format DateTime depending on database platform 2019-10-25 10:13:54 +02:00
Tobias Schultze
4a6ec8554e [Messenger] remove nullable max retries 2019-10-24 23:51:16 +02:00
Tobias Schultze
d211904c8e [Messenger] prevent infinite redelivery loops and blocked queues
by republishing the redelivered messages as retries with a retry limit and potential delay
2019-10-24 18:35:41 +02:00
Thomas Calvet
c07cee8f61 Remove unused local variables in tests 2019-10-24 17:33:53 +02:00
Nicolas Grekas
c5024bdbd0 feature #34051 [HttpClient] allow option "buffer" to be a stream resource (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] allow option "buffer" to be a stream resource

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

Commits
-------

e87301603e [HttpClient] allow option "buffer" to be a stream resource
2019-10-24 15:27:54 +02:00
Fabien Potencier
a465e5fbf0 [Notifier] Defaults to NoNotifier when sending a notification without recipients 2019-10-24 14:02:09 +02:00
Tristan Bessoussa
332ff8811c [Routing][Config] Allow patterns of resources to be excluded from config loading 2019-10-24 13:56:35 +02:00
Thomas Calvet
49acc16424 [Yaml][Parser] Remove the getLastLineNumberBeforeDeprecation() internal unused method 2019-10-24 12:09:03 +02:00
Yonel Ceruto
50efc1a923 Make sure to collect child forms created on *_SET_DATA events 2019-10-23 15:46:41 -04:00
Tobias Schultze
b9f69441c5 bug #32341 [Messenger] Show exceptions after multiple retries (TimoBakx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Show exceptions after multiple retries

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32311
| License       | MIT
| Doc PR        | n/a

After retrying a failed message, the `RedeliveryStamp` looses it's exception information. This PR will remedy that.

Commits
-------

598bd92313 [Messenger] Show exceptions on after empty fails
2019-10-23 16:09:27 +02:00
Timo Bakx
598bd92313 [Messenger] Show exceptions on after empty fails 2019-10-23 15:04:40 +02:00
Nicolas Grekas
6ca62623d6 Merge branch '4.4'
* 4.4:
  [Validator] Set Length::$allowEmptyString to false when a NotBlank contraint is defined
  [FrameworkBundle] Dont reset the test container but the real one instead
  Import missing classes
  [SecurityBundle] test with doctrine-bundle 2
2019-10-23 14:16:20 +02:00
Tobias Schultze
3dbe924f47 Revert "[Messenger] Fix exception message of failed message is dropped on retry"
This reverts commit 8f9f44eb21.
2019-10-23 13:26:24 +02:00
Nicolas Grekas
840f7e7d88 [Validator] Set Length::$allowEmptyString to false when a NotBlank contraint is defined 2019-10-23 12:57:33 +02:00
Nicolas Grekas
bfd308ff4a bug #34078 [FrameworkBundle] Don't reset the test container but the real one instead (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] Don't reset the test container but the real one instead

| Q             | A
| ------------- | ---
| Branch?       | 4.4 for features / 3.4 or 4.3 for bug fixes <!-- see below -->
| Bug fix?      | yes/no
| New feature?  | yes/no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | yes/no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | -

After #31202 and #32056, the tearDown method keeps throwing deprecation notices about "Getting the container from a non-booted kernel". The reason is that resetting the test-container calls `$kernel->getContainer()` while the kernel has been shut down.

This fixes it and a few other glitches found meanwhile.

Commits
-------

8e16143256 [FrameworkBundle] Dont reset the test container but the real one instead
2019-10-23 11:00:45 +02:00
Nicolas Grekas
8e16143256 [FrameworkBundle] Dont reset the test container but the real one instead 2019-10-23 09:54:59 +02:00
Yonel Ceruto
d91a5a067d Avoid nested exceptions if errors occur when generating file links 2019-10-23 00:12:13 -04:00
Yonel Ceruto
e07a3d7bba Import missing classes 2019-10-22 22:46:01 -04:00
Nicolas Grekas
76776943cd Merge branch '4.4'
* 4.4:
  [Debug] remove return types that break FC badly
  [Mailer][MailchimpBridge] Don't send address names if empty string
  [ExpressionLanguage][Lexer] Exponential format for number
  [Mailer] Fix SES Message Id retrieval
  Add .gitignore to .gitattributes
2019-10-22 19:21:12 +02:00
Fabien Potencier
28c9f48f7e bug #34072 [Debug] remove return types that break FC badly (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Debug] remove return types that break FC badly

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

The return type on Debug's FlattenException blocks creating a child class that is compatible with both v4.4 and v5.0.
Removing it fixes the issue with no BC break.
Adding `final` on `setPrevious` will allow updating its type hint in v5.0.

Commits
-------

cb5ef6ec18 [Debug] remove return types that break FC badly
2019-10-22 19:09:30 +02:00
Nicolas Grekas
cb5ef6ec18 [Debug] remove return types that break FC badly 2019-10-22 18:54:09 +02:00
Fabien Potencier
f00390ffd7 minor #33963 Add .gitignore to .gitattributes (reedy)
This PR was merged into the 4.4 branch.

Discussion
----------

Add .gitignore to .gitattributes

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

Commits
-------

246c5fdf43 Add .gitignore to .gitattributes
2019-10-22 17:44:54 +02:00
Fabien Potencier
8c5403e2dc bug #34015 [Mailer] Fix typo (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Fix typo

| Q             | A
| ------------- | ---
| Branch?       | 4.4 for features / 3.4 or 4.3 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 #34006
| License       | MIT
| Doc PR        | n/a

The XML is different depending on the way we are sending email. So, it's `SendEmailResult` when using the API and `SendRawEmailResult` when using the HTTP class (we are then sending the raw email).

Commits
-------

4bd7cb0368 [Mailer] Fix SES Message Id retrieval
2019-10-22 17:36:06 +02:00
Fabien Potencier
4f9d449885 feature #34028 [ExpressionLanguage][Lexer] Exponential format for number (tigr1991)
This PR was merged into the 4.4 branch.

Discussion
----------

[ExpressionLanguage][Lexer] Exponential format for number

Exponential format has been added for numbers.
Ex: 1.99E+3 === 1990,
Ex: expression (1 + 1.99E+3) = 1991

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

Exponential format has been added for numbers.
Ex: 1.99E+3 === 1990,
Expressions:
0.1e+2 = 10
1e-2 = 0.01
(1 + 1.99E+3) = 1991
and etc...

Commits
-------

430ec32992 [ExpressionLanguage][Lexer] Exponential format for number
2019-10-22 17:29:53 +02:00
Nicolas Grekas
34f5655089 Merge branch '4.4'
* 4.4:
  [ErrorRenderer] FlattenException cannot be final
  Fixing issue where worker-only middleware were run in all contexts
  [Messenger] Removing "sync" transport and replacing it with much nicer config trick
  Use port 465 for SES SMTP transport
  [DI] made the `%env(base64:...)%` processor able to decode base64url
  [VarDumper] improve displaying cut closures
  Set ReturnType of LockFactory to LockInterface
  [EventDispatcher] handle lazy-callable invokable
2019-10-22 17:27:40 +02:00
Fabien Potencier
2931227cad bug #34034 [Mailer][MailchimpBridge] Don't send address names if empty string (ogizanagi)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer][MailchimpBridge] Don't send address names if empty string

| Q             | A
| ------------- | ---
| Branch?       | 4.4 <!-- 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       | https://github.com/symfony/symfony/pull/34029#issuecomment-543804450 <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

197d1236ee [Mailer][MailchimpBridge] Don't send address names if empty string
2019-10-22 17:26:22 +02:00
Fabien Potencier
effae8a643 bug #34067 Use port 465 for SES SMTP transport (rimas-kudelis)
This PR was merged into the 4.4 branch.

Discussion
----------

Use port 465 for SES SMTP transport

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

Commits
-------

8492e260cb Use port 465 for SES SMTP transport
2019-10-22 17:23:40 +02:00
Fabien Potencier
eaaabb6011 bug #34070 [ErrorRenderer] FlattenException cannot be final (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorRenderer] FlattenException cannot be final

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

Making it final forces tight coupling with the implementation as soon as one type-hints for the class.

That's a blocker on making e.g. `EasyAdminBundle` compatible with Symfony 5.

Commits
-------

b125835056 [ErrorRenderer] FlattenException cannot be final
2019-10-22 17:21:28 +02:00
Nicolas Grekas
b125835056 [ErrorRenderer] FlattenException cannot be final 2019-10-22 17:18:31 +02:00
Ryan Weaver
3d4e59a10b [Messenger] Removing "sync" transport and replacing it with much nicer config trick 2019-10-22 10:49:37 -04:00
Rimas Kudelis
8492e260cb Use port 465 for SES SMTP transport
Fixes #34064
2019-10-22 16:29:52 +03:00
Bogdan Scordaliu
c73b042044
bug symfony#28179 [DomCrawler] Skip disabled fields processing in Form 2019-10-22 11:34:21 +02:00
Nicolas Grekas
5da67f9126 minor #34052 [HttpClient] skip tests implemented in 4.4 (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] skip tests implemented in 4.4

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

Needed after #34051 and #34044

Commits
-------

ae86ab18fa [HttpClient] skip tests implemented in 4.4
2019-10-22 08:53:15 +02:00
Nicolas Grekas
ec8e34f05e minor #34050 [VarDumper] improve displaying cut closures (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] improve displaying cut closures

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

Minor but still an improvement so 4.4: this change makes closures replaced by `CutStub` be displayed with their signature instead of just the `Closure` label.

Commits
-------

2b0a11de02 [VarDumper] improve displaying cut closures
2019-10-22 08:52:31 +02:00
Nicolas Grekas
ebca10e252 minor #34036 [Lock] Set ReturnType of LockFactory to LockInterface (alexander-schranz)
This PR was merged into the 4.4 branch.

Discussion
----------

[Lock] Set ReturnType of LockFactory to LockInterface

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

LockFactory I think should return a LockInterface and not the Lock class.

/cc @chalasr

Commits
-------

ff1fa57ef2 Set ReturnType of LockFactory to LockInterface
2019-10-22 08:44:12 +02:00
Nicolas Grekas
c86271e750 minor #34027 [EventDispatcher] handle lazy-callable invokable (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[EventDispatcher] handle lazy-callable invokable

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

Extracted from #34013, for consistency mostly.

Commits
-------

9df4c7d32b [EventDispatcher] handle lazy-callable invokable
2019-10-22 08:42:51 +02:00
Nicolas Grekas
3d12e46692 [DI] made the %env(base64:...)% processor able to decode base64url 2019-10-22 08:40:11 +02:00
Nicolas Grekas
13e15e2112 bug #34017 [Messenger] Fix ignored options in redis transport (chalasr)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Fix ignored options in redis transport

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

Also fixes redis authentication failure handling (inline with invalid db index handling, borrowed from symfony/cache).
/cc @alexander-schranz

Commits
-------

c83ff94c37 [Messenger] Fix ignored options in redis transport
2019-10-22 08:39:15 +02:00
Nicolas Grekas
077f7be805 Merge branch '4.4'
* 4.4:
  [Console] Revert wrong change
  [HttpClient] Add a canceled state to the ResponseInterface
  Fix small typo in Exception message
  Restrict secrets management to sodium+filesystem
  Add secrets management
  Proof of concept for encrypted secrets
2019-10-22 08:33:15 +02:00
Nicolas Grekas
f5cef028f8 Merge branch '4.3' into 4.4
* 4.3:
  Fix small typo in Exception message
2019-10-22 08:26:21 +02:00
Nicolas Grekas
afbbea3d1b Merge branch '3.4' into 4.3
* 3.4:
  Fix small typo in Exception message
2019-10-22 08:25:19 +02:00
Nicolas Grekas
bbafd76c6c bug #34055 [Console] Revert wrong change (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Revert wrong change

| 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 #34012 <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | n/a

This partially reverts #34012 as it breaks uses cases like this:

```
echo "foo\nbar\n" | SHELL_INTERACTIVE=1 symfony console something
```

Commits
-------

f592322251 [Console] Revert wrong change
2019-10-22 08:21:53 +02:00
Fabien Potencier
f592322251 [Console] Revert wrong change 2019-10-22 08:15:10 +02:00
Alex Bacart
af0f5419bb [String] Fix of title() method 2019-10-21 18:12:52 +02:00
Nicolas Grekas
ae86ab18fa [HttpClient] skip tests implemented in 4.4 2019-10-21 18:09:12 +02:00
Nicolas Grekas
e87301603e [HttpClient] allow option "buffer" to be a stream resource 2019-10-21 18:05:25 +02:00
Nicolas Grekas
2b0a11de02 [VarDumper] improve displaying cut closures 2019-10-21 17:47:54 +02:00
Yanick Witschi
bbb8ed11ff [HttpClient] Add a canceled state to the ResponseInterface 2019-10-21 17:46:23 +02:00
Menno Holtkamp
7c2b974e26 Fix small typo in Exception message 2019-10-21 17:42:36 +02:00
Fabien Potencier
14dda4160e Merge branch '4.4'
* 4.4:
  [HttpKernel] fix wrong removal of the just generated container dir
  bug #34024 [Routing] fix route loading with wildcard, but dir or file is empty (gseidel)
  [Routing] fix route loading with wildcard, but dir or file is empty
  bump Form component compatibility versions
  execute all compatible tests across versions
  [Mailer][MailchimpBridge] Fix NamedAddress obsolete paths
2019-10-20 14:38:27 +02:00
Fabien Potencier
c50d0b6d1c Merge branch '4.3' into 4.4
* 4.3:
  [HttpKernel] fix wrong removal of the just generated container dir
  bug #34024 [Routing] fix route loading with wildcard, but dir or file is empty (gseidel)
  [Routing] fix route loading with wildcard, but dir or file is empty
2019-10-20 14:38:12 +02:00
Fabien Potencier
5ce78ccbe1 Merge branch '3.4' into 4.3
* 3.4:
  [HttpKernel] fix wrong removal of the just generated container dir
2019-10-20 14:37:59 +02:00
Fabien Potencier
b38bde9cb1 bug #34041 [HttpKernel] fix wrong removal of the just generated container dir (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] fix wrong removal of the just generated container dir

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

The patch applies to 3.4 but the fix really affects to 4.4 with the introduction of the new `.preload.php` file.

/cc @fabpot since you encountered this error quite often recently during `composer up/req` :)

Commits
-------

4ad09ebafb [HttpKernel] fix wrong removal of the just generated container dir
2019-10-20 14:36:59 +02:00
Nicolas Grekas
4ad09ebafb [HttpKernel] fix wrong removal of the just generated container dir 2019-10-20 12:02:53 +02:00
Nicolas Grekas
568f4b4094 Merge branch '3.4' into 4.3
* 3.4:
  bug #34024 [Routing] fix route loading with wildcard, but dir or file is empty (gseidel)
2019-10-19 15:08:51 +02:00
Nicolas Grekas
a54ecb0fae bug #34024 [Routing] fix route loading with wildcard, but dir or file is empty (gseidel)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] fix route loading with wildcard, but dir or file is empty

| Q             | A
| ------------- | ---
| Branch?       |  4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | no ticket i see so far
| License       | MIT

In my route config i have something like:

```yaml
empty_wildcard:
    resource: ../controller/empty_wildcard/*
    prefix: /empty_wildcard
```

But ``empty_wildcard`` is empty or has no route configured.

So i had this error:

``Call to a member function addPrefix() on null``

This PR take care if no route is configured, there will be no error.

Commits
-------

217058b475 [Routing] fix route loading with wildcard, but dir or file is empty
2019-10-19 15:07:56 +02:00
Nicolas Grekas
4bd16d884a bug #34024 [Routing] fix route loading with wildcard, but dir or file is empty (gseidel)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] fix route loading with wildcard, but dir or file is empty

| Q             | A
| ------------- | ---
| Branch?       |  4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | no ticket i see so far
| License       | MIT

In my route config i have something like:

```yaml
empty_wildcard:
    resource: ../controller/empty_wildcard/*
    prefix: /empty_wildcard
```

But ``empty_wildcard`` is empty or has no route configured.

So i had this error:

``Call to a member function addPrefix() on null``

This PR take care if no route is configured, there will be no error.

Commits
-------

217058b475 [Routing] fix route loading with wildcard, but dir or file is empty
2019-10-19 15:04:41 +02:00
Gerhard Seidel
217058b475 [Routing] fix route loading with wildcard, but dir or file is empty 2019-10-19 15:03:42 +02:00
Christian Flothmann
d91b87f483 bump Form component compatibility versions 2019-10-19 10:26:53 +02:00
Christian Flothmann
ff904f3ac0 Merge branch '4.3' into 4.4
* 4.3:
  execute all compatible tests across versions
2019-10-19 10:25:26 +02:00
Christian Flothmann
18cc561754 execute all compatible tests across versions 2019-10-19 10:14:32 +02:00
Alexander Schranz
ff1fa57ef2
Set ReturnType of LockFactory to LockInterface 2019-10-18 21:16:41 +02:00
Maxime Steinhausser
197d1236ee [Mailer][MailchimpBridge] Don't send address names if empty string 2019-10-18 18:16:47 +02:00
Jorge Vahldick
ca630e5351 Changing the multipart form-data behavior to use the form name as an array, which makes it recognizable as an array by PHP on the $_POST globals once it is coming from the HttpClient component 2019-10-18 16:40:54 +01:00
Maxime Steinhausser
f14d082fad [Mailer][MailchimpBridge] Fix NamedAddress obsolete paths 2019-10-18 16:57:15 +02:00
Nicolas Grekas
99098f8662 Merge branch '4.4'
* 4.4:
  [DI] add `LazyString` for lazy computation of string values injected into services
  [Dotenv] allow LF in single-quoted strings
  Replace STDIN by php://stdin
  [Yaml] Throw exception for tagged invalid inline elements
  [Mailer] Fix Mandrill Transport API payload with named addresses
  [HttpClient] improve StreamWrapper
2019-10-18 16:28:29 +02:00
Ivan
430ec32992 [ExpressionLanguage][Lexer] Exponential format for number
Exponential format has been added for numbers.
Ex: 1.99E+3 === 1990,
Ex: expression (1 + 1.99E+3) = 1991
2019-10-18 16:56:45 +03:00
Nicolas Grekas
ccb03650a2 [DI] add LazyString for lazy computation of string values injected into services 2019-10-18 14:17:42 +02:00
Nicolas Grekas
9df4c7d32b [EventDispatcher] handle lazy-callable invokable 2019-10-18 14:16:09 +02:00
Nicolas Grekas
f771faf925 Merge branch '4.3' into 4.4
* 4.3:
  [Dotenv] allow LF in single-quoted strings
  [Yaml] Throw exception for tagged invalid inline elements
  [Mailer] Fix Mandrill Transport API payload with named addresses
2019-10-18 13:24:32 +02:00
Nicolas Grekas
0b4c37a36c Merge branch '3.4' into 4.3
* 3.4:
  [Dotenv] allow LF in single-quoted strings
  [Yaml] Throw exception for tagged invalid inline elements
2019-10-18 13:23:15 +02:00
Simon Podlipsky
5540bc7607 Add toString() method for String 2019-10-18 13:18:56 +02:00
Fabien Potencier
a054d88830 bug #34023 [Dotenv] allow LF in single-quoted strings (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Dotenv] allow LF in single-quoted strings

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

in a shell:
```sh
FOO='bar
baz'
```

is legal to set a value to (in PHP):
```php
"bar\nbaz"
```

Commits
-------

4d79116a0d [Dotenv] allow LF in single-quoted strings
2019-10-18 13:17:48 +02:00
Nicolas Grekas
4d79116a0d [Dotenv] allow LF in single-quoted strings 2019-10-18 12:00:34 +02:00
Christian Flothmann
52f8fc839c bug #33818 [Yaml] Throw exception for tagged invalid inline elements (gharlan)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] Throw exception for tagged invalid inline elements

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

At the moment the result for `!foo 'don't do somthin' like that'` is a `TaggedValue` with value "don".

Commits
-------

bed479c561 [Yaml] Throw exception for tagged invalid inline elements
2019-10-18 11:15:32 +02:00
Robin Chalas
c83ff94c37 [Messenger] Fix ignored options in redis transport 2019-10-17 20:40:26 +02:00
Fabien Potencier
4bd7cb0368 [Mailer] Fix SES Message Id retrieval 2019-10-17 16:20:58 +02:00
Robin Chalas
b9ba0c5e86 minor #34012 Replace STDIN by php://stdin (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Replace STDIN by php://stdin

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

`STDIN` is SAPI-dependent.

Commits
-------

365d02be77 Replace STDIN by php://stdin
2019-10-17 15:41:25 +02:00
Nicolas Grekas
365d02be77 Replace STDIN by php://stdin 2019-10-17 14:23:42 +02:00
Gregor Harlan
bed479c561
[Yaml] Throw exception for tagged invalid inline elements 2019-10-16 00:10:41 +02:00
Michaël Perrin
6dbac13a07 [Mailer] Fix Mandrill Transport API payload with named addresses 2019-10-15 15:11:00 -05:00
Nicolas Grekas
ea52d1cea2 [HttpClient] improve StreamWrapper 2019-10-15 17:38:24 +02:00
Christian Flothmann
ffa5db74c1 fix comparisons with null values at property paths 2019-10-15 16:50:58 +02:00
Nicolas Grekas
27a2d8a3d7 [ErrorRenderer] conflict with symfony/debug 2019-10-15 16:12:06 +02:00
Nicolas Grekas
54499ef963 Merge branch '4.4'
* 4.4:
  [HttpKernel] fix leftover
2019-10-15 15:40:07 +02:00
Nicolas Grekas
cbc4efc345 [HttpKernel] fix leftover 2019-10-15 15:39:57 +02:00
Nicolas Grekas
a06057584d Merge branch '4.4'
* 4.4:
  Remove legacy changelog lines
2019-10-15 15:33:17 +02:00
Nicolas Grekas
fdb9181d67 Remove legacy changelog lines 2019-10-15 15:33:13 +02:00
Nicolas Grekas
d5184284a5 Merge branch '4.4'
* 4.4:
  extend legacy exception for backwards compatibility
  [HttpClient] workaround curl_multi_select() issue
  [CI] fix building local packages
  Add show-deprecations option to lint:twig command
  [HttpClient] try using php-http/discovery when nyholm/psr7 is not installed
  [FrameworkBundle] Improve the sorting of tagged services
  [HttpClient] add HttpClient::createForBaseUri()
  Increase limits for flakey appveyor tests
2019-10-15 15:30:26 +02:00
Christian Flothmann
71a0b9b30b extend legacy exception for backwards compatibility 2019-10-15 15:25:17 +02:00
Nicolas Grekas
3723d03663 Merge branch '4.3' into 4.4
* 4.3:
  [HttpClient] workaround curl_multi_select() issue
  [CI] fix building local packages
  Increase limits for flakey appveyor tests
2019-10-15 14:38:35 +02:00
Nicolas Grekas
e635491c96 [HttpClient] workaround curl_multi_select() issue 2019-10-15 14:30:03 +02:00
Nicolas Grekas
46e94d9425 feature #33973 [HttpClient] add HttpClient::createForBaseUri() (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] add HttpClient::createForBaseUri()

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

I've seen ppl use `HttpClient::create()` with default `base_uri` & `auth_bearer`. That's a security risk as the bearer would be sent to any hosts that the client requests.

Instead, ppl should use `ScopingHttpClient`.

The new method should help to discover and use it.

Commits
-------

1aa9a118d6 [HttpClient] add HttpClient::createForBaseUri()
2019-10-14 16:15:04 +02:00
Nicolas Grekas
3134b5b88a minor #33932 [String] Added test for replaceMatches (honarkhah)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] Added test for replaceMatches

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

Added test for String:replaceMatches

Commits
-------

1cbbddd4a9 [String] Added test for replaceMatches
2019-10-14 15:25:00 +02:00
Gregor Harlan
f8d2faa0b8 [String] bytesAt() and codePointsAt() 2019-10-14 15:19:41 +02:00
Nicolas Grekas
6b3bbe4cc2 minor #33969 Increase limits for flakey appveyor tests (ostrolucky)
This PR was merged into the 4.3 branch.

Discussion
----------

Increase limits for flakey appveyor tests

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

See https://ci.appveyor.com/project/fabpot/symfony/builds/28063471 and https://ci.appveyor.com/project/fabpot/symfony/builds/27945625

Commits
-------

8a04886f26 Increase limits for flakey appveyor tests
2019-10-14 15:09:55 +02:00
Nicolas Grekas
9d9d095962 bug #33970 [String] wrap(): test and fix (gharlan)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] wrap(): test and fix

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | symfony/symfony-docs/pull/12440

Commits
-------

015b81a2f5 [String] wrap(): test and fix
2019-10-14 15:09:00 +02:00
Nicolas Grekas
b6d46900f4 minor #33971 [String] optimize equalsTo/startsWith/endsWith (gharlan)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] optimize equalsTo/startsWith/endsWith

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

`ByteString::startsWith`: https://3v4l.org/7TkbQ
`UnicodeString::startsWith`: https://3v4l.org/gd91p
`UnicodeString::endsWith`: https://3v4l.org/Nhhv4

Commits
-------

59c215cea6 [String] optimize equalsTo/startsWith/endsWith
2019-10-14 15:08:28 +02:00
Nicolas Grekas
85c106558d feature #33980 [HttpClient] try using php-http/discovery when nyholm/psr7 is not installed (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] try using php-http/discovery when nyholm/psr7 is not installed

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

In case one has `php-http/discovery`, we can leverage it...

Commits
-------

6e0cb581a1 [HttpClient] try using php-http/discovery when nyholm/psr7 is not installed
2019-10-14 15:04:42 +02:00
Christian Flothmann
006c09a4da Merge branch '4.4'
* 4.4:
  fix PHP 5.6 compatibility
  [Cache] fixed TagAwareAdapter returning invalid cache
  Add plus character `+` to legal mime subtype
  Make Symfony\Contracts\Service\Test\ServiceLocatorTest abstract
  bug #33942 [DI] Add extra type check to php dumper
  [Dotenv] search variable values in ENV first then env file
  [PropertyInfo] Respect property name case when guessing from public method name
  [VarDumper] fix resetting the "bold" state in CliDumper
  Missing argument in method_exists
  SCA: added missing break in a loop
2019-10-14 14:37:23 +02:00
Christian Flothmann
ae808b0a74 Merge branch '4.3' into 4.4
* 4.3:
  fix PHP 5.6 compatibility
  [Cache] fixed TagAwareAdapter returning invalid cache
  Add plus character `+` to legal mime subtype
  Make Symfony\Contracts\Service\Test\ServiceLocatorTest abstract
  bug #33942 [DI] Add extra type check to php dumper
  [Dotenv] search variable values in ENV first then env file
  [PropertyInfo] Respect property name case when guessing from public method name
  [VarDumper] fix resetting the "bold" state in CliDumper
  Missing argument in method_exists
  SCA: added missing break in a loop
2019-10-14 14:27:06 +02:00
Christian Flothmann
eb5e01e063 Merge branch '3.4' into 4.3
* 3.4:
  fix PHP 5.6 compatibility
  [Cache] fixed TagAwareAdapter returning invalid cache
  [PropertyInfo] Respect property name case when guessing from public method name
2019-10-14 14:12:55 +02:00
Nicolas Grekas
ae7803d543 Merge branch '4.4'
* 4.4:
  [Serializer] fix typo
  Add context options to handle BOM
  [Mailer] Fix Message ID for Postmark SMTP
  [HttpClient] resolve promise chains on HttplugClient::wait()
  Add Message-Id to SentMessage when sending an email
  [Cache] fix 2RTT + race condition in AbstractTagAwareAdapter::deleteItems()
  [Mailer] added ReplyTo option for PostmarkApiTransport
2019-10-14 13:46:27 +02:00
Nicolas Grekas
a876748d93 [Serializer] fix typo 2019-10-14 13:43:44 +02:00
Gregor Harlan
59c215cea6
[String] optimize equalsTo/startsWith/endsWith 2019-10-14 13:33:56 +02:00
Nicolas Grekas
6e0cb581a1 [HttpClient] try using php-http/discovery when nyholm/psr7 is not installed 2019-10-14 12:53:45 +02:00
Fabien Potencier
805449d1f4 feature #33967 [Mailer] Add Message-Id to SentMessage when sending an email (fabpot)
This PR was squashed before being merged into the 4.4 branch (closes #33967).

Discussion
----------

[Mailer] Add Message-Id to SentMessage when sending an email

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

This adds `SentMessage::getMessageId()` to retrieve the message id as generated internally OR by the provider sending the email.

Commits
-------

d97d1f9bb4 [Mailer] Fix Message ID for Postmark SMTP
b42c269760 Add Message-Id to SentMessage when sending an email
2019-10-13 21:48:43 +02:00
Fabien Potencier
004ee73665 feature #33896 [Serializer][CSV] Add context options to handle BOM (malarzm)
This PR was merged into the 4.4 branch.

Discussion
----------

[Serializer][CSV] Add context options to handle BOM

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #33684
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/12461

This allows BOM handling in en/decoded CSV files. To keep current behaviour intact both skipping BOM at the beginning of the CSV and outputting BOM are an opt-in feature.

Personally I'd propose to make `SKIP_INPUT_BOM` default to `false` in 5.0 so the BOM is transparent and people that for some reasons expect BOM characters to be present in the parsed text explicitly opt-out of trimming it.

Commits
-------

3eb36684d8 Add context options to handle BOM
2019-10-13 21:13:17 +02:00
Christian Flothmann
5c82d301a7 fix PHP 5.6 compatibility 2019-10-13 20:43:12 +02:00
Nicolas Grekas
1aa9a118d6 [HttpClient] add HttpClient::createForBaseUri() 2019-10-13 19:52:56 +02:00
Gregor Harlan
015b81a2f5
[String] wrap(): test and fix 2019-10-13 16:51:42 +02:00
Nicolas Grekas
8230a1543e Make it really work on real apps 2019-10-13 15:20:26 +02:00
Gabriel Ostrolucký
8a04886f26
Increase limits for flakey appveyor tests 2019-10-13 14:02:04 +02:00
Maciej Malarz
3eb36684d8 Add context options to handle BOM 2019-10-13 10:45:12 +02:00
Fabien Potencier
0065f7579b bug #33948 [PropertyInfo] Respect property name case when guessing from public method name (antograssiot)
This PR was merged into the 3.4 branch.

Discussion
----------

[PropertyInfo] Respect property name case when guessing from public method name

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

Using camelCase, with an attribute `$aFooBar`, naming the getter/setter `getAFooBar()`/`setAFooBar()`,  returns the property name as AFooBar instead of aFooBar.

# Before
Property name `'AFooBar'`

# After
Property name `'aFooBar'` as expected

Commits
-------

843bb76f8a [PropertyInfo] Respect property name case when guessing from public method name
2019-10-13 10:38:57 +02:00
Fabien Potencier
d97d1f9bb4 [Mailer] Fix Message ID for Postmark SMTP 2019-10-13 09:31:33 +02:00
Guilhem Niot
4b3e9d4c96 Fix comments, improve the feature 2019-10-12 12:35:35 +02:00
Julien Maulny
a6292b917b [DI] Add compiler pass to check arguments type hint 2019-10-12 11:48:25 +02:00
Nicolas Grekas
211c651d2a bug #33944 [HttpClient] resolve promise chains on HttplugClient::wait() (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] resolve promise chains on HttplugClient::wait()

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

Follow up of #33743

Right now, keeping a reference to promise objects returned by `HttplugClient::sendAsyncRequest()`, then calling their `wait()` method is the only way to actually resolve the promises. That's why when these promises are destructed, we cancel the corresponding HTTP request.

But thanks to the `HttplugClient::wait()` method, we have a hook to tick the event loop managed by the Symfony client.

I added a test case to run into this situation.

~It fails currently. I'd like asking @joelwurtz, @dbu and/or maybe @Nyholm if you could have a look and finish this PR? I'm not that familiar with promises and you might get faster and better to the goal. Anyone else is welcome also of course. Thank you for having a look :) PR welcome on my fork or as a separate one on this repos.~

Commits
-------

ea0be07a33 [HttpClient] resolve promise chains on HttplugClient::wait()
2019-10-12 11:46:32 +02:00
Nicolas Grekas
0e84d3d8c2 bug #33959 [Cache] fix 2RTT + race condition in AbstractTagAwareAdapter::deleteItems() (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] fix 2RTT + race condition in AbstractTagAwareAdapter::deleteItems()

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

A final improvement to `AbstractTagAwareAdapter::deleteItems()`: this PR makes `deleteItems()` operate in 1RTT instead of 2.

Commits
-------

0613c227ec [Cache] fix 2RTT + race condition in AbstractTagAwareAdapter::deleteItems()
2019-10-12 11:45:08 +02:00
Nicolas Grekas
1201085f72 bug #33962 [Cache] fixed TagAwareAdapter returning invalid cache (v-m-i)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] fixed TagAwareAdapter returning invalid cache

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

This PR fixes `TagAwareAdapter` returning `CacheItem` when item-tags pair is missing tag key in pool. Currently `TagAwareAdapter` returns `CacheItem` with empty tags and `isHit` set to `true`. With this PR it returns `CacheItem` with `isHit` set to `false` as we can't know if item is valid or invalid when it's missing tag entry so we treat it as cache miss.

Commits
-------

946f0a1e11 [Cache] fixed TagAwareAdapter returning invalid cache
2019-10-12 11:36:31 +02:00
Vedran Mihočinec
946f0a1e11 [Cache] fixed TagAwareAdapter returning invalid cache 2019-10-12 11:36:03 +02:00
Nicolas Grekas
831b00ff89 bug #33958 [DI] Add extra type check to php dumper (gquemener)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] Add extra type check to php dumper

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

This PR adds a missing type check in the PHP Dumper. The bug has been detected while working on the https://github.com/prooph/service-bus-symfony-bundle and I haven't been able to reproduce it within a minimalist testcase.

I would like to add a unit test to cover it once I have figured out the exact context in which the bug occurs.

Any help would be greatly appreciated to do so, especially from "senior" contributors of the DependencyInjection component, many thanks in advance!

You will find more information about this bug in the linked ticket above.

Commits
-------

b17ebdf081 bug #33942 [DI] Add extra type check to php dumper
2019-10-12 11:12:58 +02:00
Nicolas Grekas
8d8a10c699 Merge branch '3.4' into 4.3
* 3.4:
  Add plus character `+` to legal mime subtype
  [Dotenv] search variable values in ENV first then env file
  [VarDumper] fix resetting the "bold" state in CliDumper
  SCA: added missing break in a loop
2019-10-12 11:11:50 +02:00
Ilia Lazarev
56895f12b9 Add plus character + to legal mime subtype
For example, the following mime type (used for epub) is not recognized given the current regexp: `application/epub+zip`
2019-10-12 10:55:17 +02:00
Nicolas Grekas
ea0be07a33 [HttpClient] resolve promise chains on HttplugClient::wait() 2019-10-12 10:50:39 +02:00
Fabien Potencier
b42c269760 Add Message-Id to SentMessage when sending an email 2019-10-12 10:43:49 +02:00
Fabien Potencier
a84ec3a636 feature #33883 [Mailer] added ReplyTo option for PostmarkApiTransport (pierregaste)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] added ReplyTo option for PostmarkApiTransport

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       |
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Supports "ReplyTo" option with Postmark transport

Commits
-------

d49a7387de [Mailer] added ReplyTo option for PostmarkApiTransport
2019-10-12 08:51:40 +02:00
Reedy
246c5fdf43 Add .gitignore to .gitattributes 2019-10-12 01:35:04 +01:00
Nicolas Grekas
0613c227ec [Cache] fix 2RTT + race condition in AbstractTagAwareAdapter::deleteItems() 2019-10-11 20:45:35 +02:00
Gildas Quéméner
b17ebdf081
bug #33942 [DI] Add extra type check to php dumper 2019-10-11 18:58:45 +02:00
Tobias Schultze
a306d99297 Merge branch '4.4' 2019-10-11 16:48:48 +02:00
Tobias Schultze
38b9a27976 feature #33053 [ErrorHandler] Rework fatal errors (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Rework fatal errors

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/32605
| License       | MIT
| Doc PR        | -

Built on top of https://github.com/symfony/symfony/pull/33038 so review only the second commit : d5c3f7ed48

The goals of this PR is to replace current "fatal error handlers" with "error enhancers" since all our current fatal error handlers works on \Error since PHP7.

That means we won't use the FatalErrorException anymore, so we will be able to remove it (once we don't need it in the rest of the codebase).

The final goal btw is to handle \Throwable everywhere in the code so we can remove FatalThrowableError & FatalErrorException classes.

Commits
-------

aaa0cdf523 [ErrorHandler] Rework fatal error handlers
2019-10-11 16:10:55 +02:00
soufianZantar
3018041782 [Dotenv] search variable values in ENV first then env file 2019-10-11 15:36:17 +02:00
Nicolas Grekas
28f95361c6 feature #33939 [Cache] add TagAwareMarshaller to optimize data storage when using AbstractTagAwareAdapter (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] add TagAwareMarshaller to optimize data storage when using AbstractTagAwareAdapter

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

This is the final touch in my series of PR that fixes the linked issue.

Remarkably, the solutions I implemented for this issue are completely different than the one I described there. Fortunately, the issues themselves were correctly identified.

Plannification of implementation is gambling :)

/cc @andrerom

Commits
-------

5a4a30c6ef [Cache] add TagAwareMarshaller to optimize data storage when using AbstractTagAwareAdapter
2019-10-11 15:35:39 +02:00
Nicolas Grekas
90ca602c4f minor #33914 [String] add $lastGlue argument to join() methods (nicolas-grekas)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] add $lastGlue argument to join() methods

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

An idea that came when reviewing https://github.com/symfony/symfony-docs/pull/12440

Commits
-------

714d6290df [String] add $lastGlue argument to join() methods
2019-10-11 15:34:40 +02:00
Nicolas Grekas
49ad46e283 bug #33943 [VarDumper] fix resetting the "bold" state in CliDumper (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] fix resetting the "bold" state in CliDumper

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

Commits
-------

21645a5b96 [VarDumper] fix resetting the "bold" state in CliDumper
2019-10-11 15:34:05 +02:00
Nicolas Grekas
5a4a30c6ef [Cache] add TagAwareMarshaller to optimize data storage when using AbstractTagAwareAdapter 2019-10-11 14:17:27 +02:00
Anto
843bb76f8a
[PropertyInfo] Respect property name case when guessing from public method name 2019-10-11 06:14:16 +02:00
Fabien Potencier
1c81349b42 feature #33941 Keeping backward compatibility with legacy FlattenException usage (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

Keeping backward compatibility with legacy FlattenException usage

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

Commits
-------

928363c408 Keeping backward compatibility with legacy FlattenException usage
2019-10-11 06:10:30 +02:00
Fabien Potencier
b1ea2cd7a6 bug #33910 [Mime] added image/svg MIME support (0xB4LINT)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mime] added image/svg MIME support

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

Added `image/svg` MIME type to `svg` extension.
More @#33909.

Commits
-------

015eb6625c added image/svg MIME support
2019-10-10 21:26:50 +02:00
Nicolas Grekas
21645a5b96 [VarDumper] fix resetting the "bold" state in CliDumper 2019-10-10 13:03:19 +02:00
Nicolas Grekas
6e7f3257ce [HttpClient] fix merge 2019-10-10 10:55:24 +02:00
detinkin
d2a8e94c79 Missing argument in method_exists 2019-10-10 10:41:55 +02:00
Nicolas Grekas
f93b3a3653 Merge branch '4.3' into 4.4
* 4.3:
  [Cache] ignore unserialization failures in AbstractTagAwareAdapter::doDelete()
  [HttpClient] send `Accept: */*` by default, fix removing it when needed
2019-10-10 09:38:51 +02:00
Nicolas Grekas
76f44df8ff bug #33937 [Cache] ignore unserialization failures in AbstractTagAwareAdapter::doDelete() (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] ignore unserialization failures in AbstractTagAwareAdapter::doDelete()

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

Making things more robust, part of #33924

Commits
-------

a1f334c1b7 [Cache] ignore unserialization failures in AbstractTagAwareAdapter::doDelete()
2019-10-10 09:36:50 +02:00
Yonel Ceruto
928363c408 Keeping backward compatibility with legacy FlattenException usage 2019-10-09 19:29:06 -04:00
Vladimir Reznichenko
6af04bbac6 SCA: added missing break in a loop 2019-10-09 21:00:06 +02:00
Nicolas Grekas
a1f334c1b7 [Cache] ignore unserialization failures in AbstractTagAwareAdapter::doDelete() 2019-10-09 20:33:00 +02:00
Nicolas Grekas
aff4e56fc5 [HttpClient] send Accept: */* by default, fix removing it when needed 2019-10-09 18:19:03 +02:00
Nicolas Grekas
68c6e72cd5 Merge branch '4.4'
* 4.4: (26 commits)
  cs fix
  [Validator] sync NO and NB translations
  [Cache] improve perf of pruning for fs-based adapters
  [Cache] cs fix
  [Cache] clean tags folder on invalidation
  [Cache] remove implicit dependency on symfony/filesystem
  Allow to set cookie_samesite to 'none'
  [Dotenv] support setting default env var values
  [VarDumper] fix array key error for class SymfonyCaster
  [Cache] Improve RedisTagAwareAdapter invalidation logic & requirements
  Adds missing translations for no nb
  [HttpKernel] fix $dotenvVars in data collector
  Add the missing translations for the Swedish ("sv") locale
  Prevent ProgressBar redraw when message is same
  [DI] enable improved syntax for defining method calls in Yaml
  bumped Symfony version to 4.3.6
  updated VERSION for 4.3.5
  updated CHANGELOG for 4.3.5
  bumped Symfony version to 3.4.33
  updated VERSION for 3.4.32
  ...
2019-10-09 16:45:46 +02:00
Nicolas Grekas
c216f7f268 cs fix 2019-10-09 16:35:36 +02:00
Nicolas Grekas
93aa54ed57 Merge branch '4.3' into 4.4
* 4.3:
  [Validator] sync NO and NB translations
2019-10-09 16:34:05 +02:00
Nicolas Grekas
1292d8da7c Merge branch '3.4' into 4.3
* 3.4:
  [Validator] sync NO and NB translations
2019-10-09 16:33:56 +02:00
Nicolas Grekas
31fcf93253 [Validator] sync NO and NB translations 2019-10-09 16:33:48 +02:00
Nicolas Grekas
0302b1d8b0 [Cache] improve perf of pruning for fs-based adapters 2019-10-09 16:21:42 +02:00
Nicolas Grekas
1010910bab Merge branch '4.3' into 4.4
* 4.3:
  [Cache] cs fix
2019-10-09 15:27:43 +02:00
Nicolas Grekas
20fd92571e [Cache] cs fix 2019-10-09 15:27:34 +02:00
Nicolas Grekas
f52d900d00 Merge branch '4.3' into 4.4
* 4.3:
  [Cache] clean tags folder on invalidation
  [Cache] remove implicit dependency on symfony/filesystem
  Allow to set cookie_samesite to 'none'
  [VarDumper] fix array key error for class SymfonyCaster
  Adds missing translations for no nb
  [HttpKernel] fix $dotenvVars in data collector
  Add the missing translations for the Swedish ("sv") locale
  bumped Symfony version to 4.3.6
  updated VERSION for 4.3.5
  updated CHANGELOG for 4.3.5
  bumped Symfony version to 3.4.33
  updated VERSION for 3.4.32
  update CONTRIBUTORS for 3.4.32
  updated CHANGELOG for 3.4.32
  [Messenger] DoctrineTransport: ensure auto setup is only done once
  [Form][DateTimeImmutableToDateTimeTransformer] Preserve microseconds and use \DateTime::createFromImmutable() when available
  [Crawler] document $default as string|null
2019-10-09 15:24:13 +02:00
Nicolas Grekas
fd50d687cc Merge branch '3.4' into 4.3
* 3.4:
  Adds missing translations for no nb
  Add the missing translations for the Swedish ("sv") locale
  bumped Symfony version to 3.4.33
  updated VERSION for 3.4.32
  update CONTRIBUTORS for 3.4.32
  updated CHANGELOG for 3.4.32
2019-10-09 15:22:34 +02:00
Nicolas Grekas
6f58438f7c bug #33922 [Cache] remove implicit dependency on symfony/filesystem (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] remove implicit dependency on symfony/filesystem

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

/cc @andrerom for review

Commits
-------

85f27f270e [Cache] remove implicit dependency on symfony/filesystem
2019-10-09 15:16:32 +02:00
Nicolas Grekas
49dfa8ac85 bug #33930 [Cache] clean tags folder on invalidation (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] clean tags folder on invalidation

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

/cc @andrerom for review :)

Commits
-------

b377e41a2c [Cache] clean tags folder on invalidation
2019-10-09 15:15:31 +02:00
mohammadreza honarkhah
1cbbddd4a9 [String] Added test for replaceMatches 2019-10-09 15:04:21 +02:00
Nicolas Grekas
b377e41a2c [Cache] clean tags folder on invalidation 2019-10-09 14:56:36 +02:00
Nicolas Grekas
85f27f270e [Cache] remove implicit dependency on symfony/filesystem 2019-10-09 12:18:12 +02:00
Christian Flothmann
2dd41e7f24 [Dotenv] support setting default env var values 2019-10-09 09:19:40 +02:00
Nicolas Grekas
0094884b17 feature #33851 [EventDispatcher] Allow to omit the event name when registering listeners (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[EventDispatcher] Allow to omit the event name when registering listeners

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | #33453 (kind of)
| License       | MIT
| Doc PR        | TODO

After #30801 and #33485, this is another attempt at taking advantage of FQCN events for simplifying the registration of event listeners by inferring the event name from the parameter type declaration of the listener. This is my last attempt, I promise. 🙈

This time, I'd like to make the `event` attribute of the `kernel.event_listener` tag optional. This would allow us to build listeners like the following one without adding any attributes to the `kernel.event_listener` tag.

```php
namespace App\EventListener;

final class MyRequestListener
{
    public function __invoke(RequestEvent $event): void
    {
        // do something
    }
}
```

This in turn allows us to register a whole namespace of such listeners without having to configure each listener individually:

```YAML
services:
    App\EventListener\:
        resource: ../src/EventListener/*
        tags: [kernel.event_listener]
```

Commits
-------

6f32584c76 [EventDispatcher] Allow to omit the event name when registering listeners.
2019-10-09 09:04:55 +02:00
zcodes
1f20f35f74 [VarDumper] fix array key error for class SymfonyCaster 2019-10-09 08:53:52 +02:00
Nicolas Grekas
714d6290df [String] add $lastGlue argument to join() methods 2019-10-08 17:49:00 +02:00
Bálint Szekeres
015eb6625c added image/svg MIME support 2019-10-08 14:15:27 +02:00
Nicolas Grekas
0d4914149d bug #33885 [Form][DateTimeImmutableToDateTimeTransformer] Preserve microseconds and use \DateTime::createFromImmutable() when available (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[Form][DateTimeImmutableToDateTimeTransformer] Preserve microseconds and use \DateTime::createFromImmutable() when available

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

For PHP >= 7.3, we should use [\DateTime::createFromImmutable()](https://www.php.net/manual/en/datetime.createfromimmutable.php) directly.

This patch also preserves the `\DateTime` microseconds when the conversion is done with `\DateTime::createFromFormat()`.

Commits
-------

dfa23034c3 [Form][DateTimeImmutableToDateTimeTransformer] Preserve microseconds and use \DateTime::createFromImmutable() when available
2019-10-08 13:04:26 +02:00
Javier Eguiluz
1648c0e12d [String] Renamed a method argument 2019-10-08 13:01:52 +02:00
Nicolas Grekas
fbf55c2057 feature #33461 [Cache] Improve RedisTagAwareAdapter invalidation logic & requirements (andrerom)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Improve RedisTagAwareAdapter invalidation logic & requirements

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes, _and improvment_
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT
| Doc PR        |

Changes logic of invalidation in RedisTagAwareAdapter in order to:
- Delete the  tag key on invalidation => _avoiding possible left behind empty tag keys that Redis is not allowed to evict, gradually consuming more and more memory_

Positive side effects of no longer using sPOP:
- Lowered requirements to Redis 2.8, and no specific version constraint for phpredis
- Lift limitation of 2 billion keys per tag _(Now only limited by Redis Set datatype: 4 billion)_

Commits
-------

3d38c58b42 [Cache] Improve RedisTagAwareAdapter invalidation logic & requirements
2019-10-08 12:16:35 +02:00
André R
3d38c58b42 [Cache] Improve RedisTagAwareAdapter invalidation logic & requirements 2019-10-08 12:08:50 +02:00
Harald Tollefsen
5baa3ea8d4 Adds missing translations for no nb 2019-10-08 11:13:14 +02:00
bogdan
ca3fb258bf [HttpKernel] fix $dotenvVars in data collector 2019-10-08 04:19:00 +03:00
Ogbemudia Terry Osayawe
0db883888c Add the missing translations for the Swedish ("sv") locale 2019-10-07 21:31:56 +02:00
Robin Chalas
e3b513b5a1 minor #33884 Prevent ProgressBar redraw when message is same (fmasa)
This PR was squashed before being merged into the 4.4 branch (closes #33884).

Discussion
----------

Prevent ProgressBar redraw when message is same

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

This PR prevents ProgressBar from performing unnecessary redrawes if new output is same as current one. This is mostly useful when working with multiple progress bars. Same behavior can enforced by carefully setting redraw frequency, but I don't see any downsides for smarter redrawing by default.

This can be moved to `if ($this->overwrite)` if necessary, so it's applied only in case overwriting is enabled.

Commits
-------

78b515f049 Prevent ProgressBar redraw when message is same
2019-10-07 18:46:30 +02:00
František Maša
78b515f049 Prevent ProgressBar redraw when message is same 2019-10-07 18:46:23 +02:00
Nicolas Grekas
cdc7446051 [DI] enable improved syntax for defining method calls in Yaml 2019-10-07 18:41:11 +02:00
Fabien Potencier
a4f90e8258 bumped Symfony version to 4.3.6 2019-10-07 17:19:44 +02:00
Fabien Potencier
a87f8f983a updated VERSION for 4.3.5 2019-10-07 17:06:41 +02:00
Fabien Potencier
dce0c183b4 bug #33742 [Crawler] document $default as string|null (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Crawler] document $default as string|null

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

This has been introduced in 4.3

Commits
-------

e96add4787 [Crawler] document $default as string|null
2019-10-07 16:56:32 +02:00
Fabien Potencier
e3624e7086 bumped Symfony version to 3.4.33 2019-10-07 16:51:28 +02:00
Fabien Potencier
83b90c2e00 updated VERSION for 3.4.32 2019-10-07 16:41:56 +02:00
Fabien Potencier
38b3dc898e bug #32308 [Messenger] DoctrineTransport: ensure auto setup is only done once (bendavies)
This PR was squashed before being merged into the 4.3 branch (closes #32308).

Discussion
----------

[Messenger] DoctrineTransport: ensure auto setup is only done once

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? |no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Setup is done for every invocation of `get`, `find`, and `findAll`.

For `get`, this causes message consumption to be very slow, as slow as 1 message per second on my moderately sized schema, because a schema diff is done in `setup` every `get`.

I'm not sure what the desired behaviour is here, but it seems like we should try performing a query, fail once, `setup`, and retry. This will the same approach taken by the PDO Cache.

However, we still need auto setup in `get`, as `get` starts a transaction, so the auto setup in `executeQuery` won't be called.

Further more, the same problem seems to exist for the AMPQ Transport, but the performance impact should be less there, but i have not tried.

Commits
-------

02414027e1 [Messenger] DoctrineTransport: ensure auto setup is only done once
2019-10-07 16:35:38 +02:00
Ben Davies
02414027e1 [Messenger] DoctrineTransport: ensure auto setup is only done once 2019-10-07 16:35:32 +02:00
Alexander M. Turek
6f32584c76 [EventDispatcher] Allow to omit the event name when registering listeners. 2019-10-07 15:29:43 +02:00
Thomas Calvet
dfa23034c3 [Form][DateTimeImmutableToDateTimeTransformer] Preserve microseconds and use \DateTime::createFromImmutable() when available 2019-10-07 15:06:40 +02:00
Nicolas Grekas
4e5c6ba0d3 Merge branch '4.4'
* 4.4:
  [travis] Fix build-packages script
  Add types to constructors and private/final/internal methods (Batch III)
  [HttpClient] Async HTTPlug client
  [Messenger] Allow to configure the db index on Redis transport
  [HttpClient] bugfix exploding values of headers
  [VarDumper] Made all casters final
  [VarDumper] Added a support for casting Ramsey/Uuid
  Remove useless testCanCheckIfTerminalIsInteractive test case
  [Validator] Add the missing translations for the Thai (\"th\") locale
  [Routing] gracefully handle docref_root ini setting
  [Validator] Fix ValidValidator group cascading usage
2019-10-07 14:45:39 +02:00
Nicolas Grekas
bf406da78f Merge branch '4.3' into 4.4
* 4.3:
  [travis] Fix build-packages script
  [HttpClient] bugfix exploding values of headers
  Remove useless testCanCheckIfTerminalIsInteractive test case
  [Validator] Add the missing translations for the Thai (\"th\") locale
  [Routing] gracefully handle docref_root ini setting
  [Validator] Fix ValidValidator group cascading usage
2019-10-07 14:37:47 +02:00
Nicolas Grekas
05ab86378c Merge branch '3.4' into 4.3
* 3.4:
  [travis] Fix build-packages script
  Remove useless testCanCheckIfTerminalIsInteractive test case
  [Validator] Add the missing translations for the Thai (\"th\") locale
  [Validator] Fix ValidValidator group cascading usage
2019-10-07 14:36:49 +02:00
Nicolas Grekas
f6d207cd13 minor #33878 [Console] Replace posix_isatty with cross-platform, always available stream_isatty (ostrolucky)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Console] Replace posix_isatty with cross-platform, always available stream_isatty

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

stream_isatty is always available since PHP 7.2, which is the minimal version required for Symfony 5.0, so we can remove usages of old, not cross-platform compatible `posix_isatty`

DeprecationErrorHandler left out, since AFAIK it's still meant to be compatible with PHP 5.5

Commits
-------

c9b8b046a7 Replace posix_isatty with cross-platform, always available stream_isatty
2019-10-07 13:54:24 +02:00
Nicolas Grekas
62216ea677 minor #33770 Add types to constructors and private/final/internal methods (Batch III) (derrabus)
This PR was squashed before being merged into the 4.4 branch (closes #33770).

Discussion
----------

Add types to constructors and private/final/internal methods (Batch III)

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

Followup to #33709, this time with:
* Validator
* VarDumper
* Workflow
* Yaml
* all bridges
* all bundles

That should be the final batch. 😃

Commits
-------

6493902287 Add types to constructors and private/final/internal methods (Batch III)
2019-10-07 13:33:36 +02:00
Alexander M. Turek
6493902287 Add types to constructors and private/final/internal methods (Batch III) 2019-10-07 13:33:25 +02:00
Nicolas Grekas
199881477e feature #33743 [HttpClient] Async HTTPlug client (Nyholm)
This PR was squashed before being merged into the 4.4 branch (closes #33743).

Discussion
----------

[HttpClient] Async HTTPlug client

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fix #33710, Fix #32142
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/12389

This PR removes `HttplugClient`'s dependency on `Psr18Client`. It will also add an `HttplugPromise` to make sure we sure we respect the Httplug's `HttpAsyncClient` interface.

It implements `HttpAsyncClient::sendAsyncRequest()` and provides two extensions:
- `HttplugPromise::cancel()` allows cancelling a promise (and the underlying response)
- `HttplugClient::wait()` allows to tick the promise pool, with configurable timeouts.

Commits
-------

4fd593f869 [HttpClient] Async HTTPlug client
2019-10-07 13:22:04 +02:00
Nyholm
4fd593f869 [HttpClient] Async HTTPlug client 2019-10-07 13:21:57 +02:00
Nicolas Grekas
2dba6e7f83 minor #33816 [String] renamed core classes to Byte/CodePoint/UnicodeString (nicolas-grekas)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] renamed core classes to Byte/CodePoint/UnicodeString

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

In #33553 there have been discussions about the naming of the classes - eg. "what's a grapheme", "why `Utf8String`", "lowercase on binary is weird", etc.

What about these names? Would they get your votes *vs* the current ones?
- `BinaryString` -> `ByteString`
- `Utf8String` -> `CodePointString`
- `GraphemeString` -> `UnicodeString`

Commits
-------

63c105d406 [String] renamed core classes to Byte/CodePoint/UnicodeString
2019-10-07 13:18:18 +02:00
Nicolas Grekas
ce7c0b4590 feature #33856 [Messenger] Allow to configure the db index on Redis transport (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Messenger] Allow to configure the db index on Redis transport

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

Quite useful for testing.

Commits
-------

115a9bbeda [Messenger] Allow to configure the db index on Redis transport
2019-10-07 13:15:42 +02:00
Robin Chalas
115a9bbeda [Messenger] Allow to configure the db index on Redis transport 2019-10-07 13:15:32 +02:00
Gabriel Ostrolucký
c9b8b046a7
Replace posix_isatty with cross-platform, always available stream_isatty 2019-10-07 13:10:17 +02:00
Pierre Gasté
d49a7387de [Mailer] added ReplyTo option for PostmarkApiTransport 2019-10-07 13:09:42 +02:00
Nicolas Grekas
bee005687a bug #33871 [HttpClient] bugfix exploding values of headers (michaljusiega)
This PR was squashed before being merged into the 4.3 branch (closes #33871).

Discussion
----------

[HttpClient] bugfix exploding values of headers

| Q             | A
| ------------- | ---
| Branch?       | 4.3 for bug fixes
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

I tried to use CachingHttpClient yesterday and I received an error.

```
explode() expects parameter 2 to be string, array given
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpClient\HttpClientTrait.php:200
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpClient\HttpClientTrait.php:131
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpClient\HttpClientTrait.php:45
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpClient\CurlHttpClient.php:105
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpKernel\HttpClientKernel.php:54
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpKernel\HttpCache\SubRequestHandler.php:85
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpKernel\HttpCache\HttpCache.php:477
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpKernel\HttpCache\HttpCache.php:450
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpKernel\HttpCache\HttpCache.php:347
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpKernel\HttpCache\HttpCache.php:222
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpClient\CachingHttpClient.php:96
 C:\PROJEKTY\PHPStorm\symfony\src\Symfony\Component\HttpClient\Tests\CachingHttpClientTest.php:34

```
This PR fix this.

Commits
-------

5cd8895c67 [HttpClient] bugfix exploding values of headers
2019-10-07 12:52:41 +02:00
Michał Jusięga
5cd8895c67 [HttpClient] bugfix exploding values of headers 2019-10-07 12:52:05 +02:00
Grégoire Pineau
3044a91838 [VarDumper] Made all casters final 2019-10-07 11:43:45 +02:00
Nicolas Grekas
b43f25555f feature #33881 [VarDumper] Added a support for casting Ramsey/Uuid (lyrixx)
This PR was squashed before being merged into the 4.4 branch (closes #33881).

Discussion
----------

[VarDumper] Added a support for casting Ramsey/Uuid

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

I worked on a project using ramsey/uuid and I noticed a dumped uuid does
not contain the uuid. So here we go :)

(Note: don't get me wrong, I still do not recommend this lib)

---

Before / After:
![Before / After](https://user-images.githubusercontent.com/408368/66298080-49892d80-e8f1-11e9-969f-95ae5169adb1.png)

Commits
-------

99247bbd47 [VarDumper] Added a support for casting Ramsey/Uuid
2019-10-07 11:31:57 +02:00
Grégoire Pineau
99247bbd47 [VarDumper] Added a support for casting Ramsey/Uuid 2019-10-07 11:31:51 +02:00
Christian Flothmann
7432601b8e bug #33834 [Validator] Fix ValidValidator group cascading usage (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Fix ValidValidator group cascading usage

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

`$this->context->getGroup()` returns `string` or `null`.

`ContextualValidatorInterface::validate()` 3rd argument accepts an array but it must not contain `null` (its contract doesn't allow it). If it does, it will fail in `RecursiveContextualValidator::validateInGroup()` for example because of the `string` scalar type on the `$group` argument. (on 4.4)

Note that in our "common" usage of the `Valid` constraint, the group in its validator will never be `null` because this constraint has a special treatment. However, if this validator is reused in a custom way, it can fail.

Commits
-------

72684b001c [Validator] Fix ValidValidator group cascading usage
2019-10-07 11:27:57 +02:00
Nicolas Grekas
e3e502ef6f Merge branch '4.4'
* 4.4: (27 commits)
  [Validator] add notice in UPGRADE file for new Range constraint option
  [CssSelector] Support *:only-of-type pseudo class selector
  [Intl] Update the ICU data to 65.1 (4.4 branch)
  [Intl] Update the ICU data to 65.1 (4.3 branch)
  Replace deprecated calls in tests
  [Intl] Update the ICU data to 65.1
  Delete 5_Security_issue.md
  [DI] Whitelist error_renderer.renderer tag  in UnusedTagsPass
  [DI] Whitelist validator.auto_mapper in UnusedTagsPass
  Update CHANGELOG.md
  [HttpClient] Fixed #33832 NO_PROXY option ignored in NativeHttpClient::request() method
  [EventDispatcher] A compiler pass for aliased userland events.
  [Cache] give 100ms before starting the expiration countdown
  [Cache] fix logger usage in CacheTrait::doGet()
  [VarDumper] fix dumping uninitialized SplFileInfo
  Added missing translations.
  [Form] Added CountryType option for using alpha3 country codes
  Fixed invalid changelog 4.0.0 for VarDumper
  [Workflow] Fixed BC break on WorkflowInterface
  Fix wrong expression language value
  ...
2019-10-07 11:06:09 +02:00
Nicolas Grekas
4364850371 minor #33866 [Intl] Update the ICU data to 65.1 (4.4 branch) (jakzal)
This PR was merged into the 4.4 branch.

Discussion
----------

[Intl] Update the ICU data to 65.1 (4.4 branch)

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

Commits
-------

5b2da724d7 [Intl] Update the ICU data to 65.1 (4.4 branch)
2019-10-07 10:53:37 +02:00
Gabriel Ostrolucký
a84e4e021a
Remove useless testCanCheckIfTerminalIsInteractive test case 2019-10-06 21:52:09 +02:00
Nicolas Grekas
b92d944e6c bug #33863 [Routing] gracefully handle docref_root ini setting (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] gracefully handle docref_root ini setting

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

Commits
-------

4d5530f8a4 [Routing] gracefully handle docref_root ini setting
2019-10-05 13:36:02 +02:00
Nicolas Grekas
8375c6be4b feature #33687 Notifier Component (fabpot)
This PR was merged into the 5.0-dev branch.

Discussion
----------

Notifier Component

| Q             | A
| ------------- | ---
| Branch?       | 5.0
| 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        | not yet

Initial PR for the Notifier component. Tests missing for now.

Commits
-------

7f97a3f11f [Notifier] added the component
2019-10-05 13:34:45 +02:00
Fabien Potencier
7f97a3f11f [Notifier] added the component 2019-10-05 12:48:03 +02:00
Fabien Potencier
14ccaf503e minor #33844 [Validator] Add the missing translations for the Thai ("th") locale (Atthaphon Urairat)
This PR was squashed before being merged into the 3.4 branch (closes #33844).

Discussion
----------

[Validator] Add the missing translations for the Thai ("th") locale

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

I have added the missing translations for the Thai.
Also fixed a typo on trans-unit id=54.

Commits
-------

2315be85d8 [Validator] Add the missing translations for the Thai (\"th\") locale
2019-10-05 09:00:03 +02:00
Atthaphon Urairat
2315be85d8 [Validator] Add the missing translations for the Thai (\"th\") locale 2019-10-05 08:59:57 +02:00
Jakub Zalas
eae2ebc0d7
[CssSelector] Support *:only-of-type pseudo class selector 2019-10-05 08:26:35 +02:00
Jakub Zalas
5b2da724d7
[Intl] Update the ICU data to 65.1 (4.4 branch) 2019-10-05 00:14:06 +02:00
Nicolas Grekas
2044ba8e97 Merge branch '4.3' into 4.4
* 4.3:
  [Intl] Update the ICU data to 65.1 (4.3 branch)
  Replace deprecated calls in tests
  [Intl] Update the ICU data to 65.1
  Delete 5_Security_issue.md
  [DI] Whitelist validator.auto_mapper in UnusedTagsPass
  [HttpClient] Fixed #33832 NO_PROXY option ignored in NativeHttpClient::request() method
  [Cache] give 100ms before starting the expiration countdown
  [Cache] fix logger usage in CacheTrait::doGet()
  [VarDumper] fix dumping uninitialized SplFileInfo
  Added missing translations.
  Fixed invalid changelog 4.0.0 for VarDumper
  Fixed invalid VarDumper upgrade doc.
  [HttpFoundation] Check if data passed to SessionBagProxy::initialize is an array
  Don't let falsey usernames slip through
2019-10-04 23:43:27 +02:00
Jakub Zalas
011ddfc502
Remove a test brought back with a merge
re #33790
2019-10-04 23:27:17 +02:00
Jakub Zalas
1410f849a5
[Intl] Update the ICU data to 65.1 (4.3 branch) 2019-10-04 23:18:34 +02:00
Nicolas Grekas
f2056e88ba minor #33864 Replace deprecated calls in tests (jakzal)
This PR was merged into the 4.3 branch.

Discussion
----------

Replace deprecated calls in tests

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

Commits
-------

5aee2f140b Replace deprecated calls in tests
2019-10-04 23:15:56 +02:00
Jakub Zalas
5aee2f140b
Replace deprecated calls in tests 2019-10-04 23:11:33 +02:00
Nicolas Grekas
4d5530f8a4 [Routing] gracefully handle docref_root ini setting 2019-10-04 22:57:10 +02:00
Nicolas Grekas
6016070132 bug #33846 [Cache] give 100ms before starting the expiration countdown (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] give 100ms before starting the expiration countdown

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #31573, Fix #33837
| License       | MIT
| Doc PR        | -

Because the expiration count-down starts immediately after calling `CachItem::expiresAfter(N)`, it's impossible to actually cache items for more than `N-1` seconds.

This PR adds a 0.1s grace period so that backends that have a second-level resolution can store the items for `N` seconds, provided the time between calling `CachItem::expiresAfter(N)` and saving the value to the backend is lower than 0.1s.

This PR also fixes the calculation of the computation time in `ContractsTrait`.

Commits
-------

ba63e181fd [Cache] give 100ms before starting the expiration countdown
2019-10-04 22:48:32 +02:00
Nicolas Grekas
1124809895 bug #33853 [HttpClient] fix "no_proxy" option ignored in NativeHttpClient (Harry-Dunne)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix "no_proxy" option ignored in NativeHttpClient

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

Allow overriding of no_proxy environment variable by passing no_proxy option in NativeHttpClient::request() method.

Commits
-------

e4fb58d1b8 [HttpClient] Fixed #33832 NO_PROXY option ignored in NativeHttpClient::request() method
2019-10-04 22:46:01 +02:00
Nicolas Grekas
1d0a0774ab Merge branch '3.4' into 4.3
* 3.4:
  [Intl] Update the ICU data to 65.1
  [VarDumper] fix dumping uninitialized SplFileInfo
  Added missing translations.
  Fixed invalid VarDumper upgrade doc.
  [HttpFoundation] Check if data passed to SessionBagProxy::initialize is an array
  Don't let falsey usernames slip through
2019-10-04 21:48:13 +02:00
Nicolas Grekas
14d0e27bf0 minor #33852 [Intl] Update the ICU data to 65.1 (jakzal)
This PR was merged into the 3.4 branch.

Discussion
----------

[Intl] Update the ICU data to 65.1

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

Commits
-------

5cc9811fa9 [Intl] Update the ICU data to 65.1
2019-10-04 21:42:13 +02:00
Jakub Zalas
5cc9811fa9
[Intl] Update the ICU data to 65.1 2019-10-04 20:48:33 +02:00
Nicolas Grekas
5c4f2a972a bug #33841 [VarDumper] fix dumping uninitialized SplFileInfo (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] fix dumping uninitialized SplFileInfo

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

Commits
-------

b0f42333a5 [VarDumper] fix dumping uninitialized SplFileInfo
2019-10-04 20:45:27 +02:00
Roland Franssen
332128f972
Update CHANGELOG.md 2019-10-04 19:10:58 +02:00
Eric Grimois
e4fb58d1b8 [HttpClient] Fixed #33832 NO_PROXY option ignored in NativeHttpClient::request() method 2019-10-04 17:43:55 +02:00
Alexander M. Turek
34efe40371 [EventDispatcher] A compiler pass for aliased userland events. 2019-10-04 13:01:02 +02:00
Nicolas Grekas
ba63e181fd [Cache] give 100ms before starting the expiration countdown 2019-10-04 12:57:53 +02:00
Nicolas Grekas
63c105d406 [String] renamed core classes to Byte/CodePoint/UnicodeString 2019-10-04 09:55:49 +02:00
Nicolas Grekas
215595be5a [FrameworkBundle] encourage installing intl when String is available 2019-10-04 09:49:39 +02:00
Nicolas Grekas
b0f42333a5 [VarDumper] fix dumping uninitialized SplFileInfo 2019-10-04 09:44:32 +02:00
Tarmo Leppänen
865b9ffb09 Added missing translations. 2019-10-04 10:06:17 +03:00
Fabien Potencier
496346c88e bug #33831 [Validator] Fix wrong expression language value (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] Fix wrong expression language value

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

766162c4c7/src/Symfony/Component/Validator/Constraints/ExpressionValidator.php (L28)

```php
(new ExpressionValidator($propertyAccessor))->validate($object, $constraint);
```
Based on the previous method signature (4.3 above), that code would result in an exception in 4.4:
```
Call to undefined method Symfony\Component\PropertyAccess\PropertyAccessor::evaluate()
```
Spotted by @fancyweb in https://github.com/symfony/symfony/pull/33829#discussion_r330995572

Fixed here and updated test case to avoid regression.

Commits
-------

4288f1c9f9 Fix wrong expression language value
2019-10-03 22:18:18 +02:00
Fabien Potencier
2ccecbedac feature #33791 [Form] Added CountryType option for using alpha3 country codes (creiner)
This PR was squashed before being merged into the 4.4 branch (closes #33791).

Discussion
----------

[Form] Added CountryType option for using alpha3 country codes

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

In the linked issue #20313 was a proposal to add an alpha3 option to the country type.
Here it is..
Hopefully I've made no mistake, so when the code is fine, I will create a documentation PR.. :-)

Commits
-------

d07f5a33db [Form] Added CountryType option for using alpha3 country codes
2019-10-03 22:14:23 +02:00
creiner
d07f5a33db [Form] Added CountryType option for using alpha3 country codes 2019-10-03 22:14:18 +02:00
Agata
169a2b310f
Fixed invalid changelog 4.0.0 for VarDumper
I changed CHANGELOG.md to reflect actual changes in the code. The third argument is called $filter, not $context. This mistake was propageted to UPGRADE-4.0.md. I fixed that in https://github.com/symfony/symfony/pull/33821
2019-10-03 20:55:51 +02:00
Grégoire Pineau
e95fa0113e Merge remote-tracking branch 'origin/4.3' into 4.4
* origin/4.3:
  [Workflow] Fixed BC break on WorkflowInterface
2019-10-03 18:33:25 +02:00
Grégoire Pineau
1eb10b996a [Workflow] Fixed BC break on WorkflowInterface 2019-10-03 18:20:08 +02:00
Thomas Calvet
72684b001c [Validator] Fix ValidValidator group cascading usage 2019-10-03 17:45:25 +02:00
Fabien Potencier
76e5ea85b4 minor #33809 [HttpKernel] Inherit Throwable in HttpExceptionInterface (nesk)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] Inherit Throwable in HttpExceptionInterface

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| **BC BREAKS?**| **YES**
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

When using a static analysis tools, it is not possible to do this:

```php
if ($exception instanceof HttpExceptionInterface) {
    $exception->getStatusCode();
    $exception->getHeaders();
    $exception->getMessage(); //  Will fail here
}
```

This is due to `getMessage()` not being a method declared in `HttpExceptionInterface`. Since Symfony now requires PHP 7.1+ to run, it is safe to inherit from the `Throwable` interface (added in PHP 7.0).

### About backward compatibility

Adding new methods to `HttpExceptionInterface` [breaks BC](https://symfony.com/doc/current/contributing/code/bc.html#changing-interfaces), however this interface shouldn't be used on a class other than an exception, so this shouldn't affect much code.

### About tests

I'm not sure this really needs tests, but maybe I'm wrong? Tell me what to test if you think this is required.

Commits
-------

2ac3fbf232 Inherit Throwable in HttpExceptionInterface
2019-10-03 15:58:24 +02:00
Yonel Ceruto
4288f1c9f9 Fix wrong expression language value 2019-10-03 09:23:52 -04:00
Robin Chalas
8622c8c95e bug #33799 [Security]: Don't let falsy usernames slip through impersonation (j4nr6n)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security]: Don't let falsy usernames slip through impersonation

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

When you try to impersonate users with a falsy username, `SwitchUserListener::handle()` would `return;` and impersonation would fail.

I'm using a third party OAuth provider that allows users to change their usernames with no guaranteed protection against re-use. To overcome that issue, I implemented `UserLoaderInterface::loadUserByUsername()` and query by a `providerId`.

After loading development fixtures, One user has `0` as it's `providerId`.

Commits
-------

64aecab0a7 Don't let falsey usernames slip through
2019-10-03 14:19:04 +02:00
Tobias Schultze
b2d6c10ba7 minor #33709 Add types to constructors and private/final/internal methods (Batch II) (derrabus)
This PR was squashed before being merged into the 4.4 branch (closes #33709).

Discussion
----------

Add types to constructors and private/final/internal methods (Batch II)

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

Followup to #33519, this time with:
* Form
* HttpClient
* HttpKernel
* intl
* Ldap
* Ldap
* Lock
* Messenger
* Processor
* PropertyInfo
* Routing
* Security
* Serializer
* Stopwatch
* Translation

Commits
-------

9378eb4858 Add types to constructors and private/final/internal methods (Batch II)
2019-10-03 13:24:15 +02:00
Alexander M. Turek
9378eb4858 Add types to constructors and private/final/internal methods (Batch II) 2019-10-03 13:24:03 +02:00
Johann Pardanaud
2ac3fbf232 Inherit Throwable in HttpExceptionInterface 2019-10-03 10:14:32 +02:00
Ryan Linnit
28e30b132b
Fixing 'TypeError' in LdapUser::getSalt()
Return value of Symfony\Component\Ldap\Security\LdapUser::getSalt() must be of the type string or null, none returned
2019-10-02 20:38:58 +01:00
Nicolas Grekas
67fe198a8e feature #33628 [DependencyInjection] added Ability to define a priority method for tagged service (lyrixx)
This PR was merged into the 4.4 branch.

Discussion
----------

[DependencyInjection] added Ability to define a priority method for tagged service

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

Commits
-------

c1917c2999 [DependencyInjection] added Ability to define a priority method for tagged service
2019-10-02 21:24:21 +02:00
Jan Schädlich
b3a3b0c235 [Console] Throw a TypeError for non-int return values on calling Command::execute() 2019-10-02 19:22:19 +02:00
Nicolas Grekas
95ebca5213 Merge branch '4.4'
* 4.4:
  fix typo
2019-10-02 19:19:42 +02:00
Nicolas Grekas
3b1655165e fix typo 2019-10-02 19:19:36 +02:00
Titouan Galopin
056d8ceed9 [String] Introduce a locale-aware Slugger in the String component with FrameworkBundle wiring 2019-10-02 18:31:43 +02:00
bogdan
38782bceff [HttpFoundation] Check if data passed to SessionBagProxy::initialize is an array 2019-10-02 18:15:21 +02:00
Nicolas Grekas
4a547c5663 bug #33815 [Workflow] Fixed default marking store value of Workflow (lyrixx)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Workflow] Fixed default marking store value of Workflow

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

Commits
-------

a2330b7a90 [Workflow] Fixed default marking store value of Workflow
2019-10-02 18:13:01 +02:00
Nicolas Grekas
7db04f1248 Merge branch '4.4'
* 4.4:
  fix merge
2019-10-02 18:10:14 +02:00
Grégoire Pineau
a2330b7a90 [Workflow] Fixed default marking store value of Workflow 2019-10-02 17:57:26 +02:00
Grégoire Pineau
c1917c2999 [DependencyInjection] added Ability to define a priority method for tagged service 2019-10-02 17:30:24 +02:00
Nicolas Grekas
d7e5dd120b Merge branch '4.3' into 4.4
* 4.3:
  fix merge
2019-10-02 17:04:54 +02:00
Nicolas Grekas
766162c4c7 fix merge 2019-10-02 17:03:35 +02:00
Nicolas Grekas
3ee9dbd17b Merge branch '4.4'
* 4.4: (24 commits)
  [Console] Command::execute() should always return int - deprecate returning null
  [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand
  [AnnotationCacheWarmer] add RedirectController to annotation cache
  [WebProfilerBundle] Try to display the most useful panel by default
  Add note about deprecating the XmlEncoder::TYPE_CASE_ATTRIBUTES constant in the upgrade guide
  fix merge
  [DI] add tests loading calls with returns-clone
  [DI] dont mandate a class on inline services with a factory
  Fixed Redis Sentinel usage when only one Sentinel specified
  [EventDispatcher] Added tests for aliased events.
  Sync Twig templateExists behaviors
  Fix the :only-of-type pseudo class selector
  Deprecate the XmlEncoder::TYPE_CASE_ATTRIBUTES constant
  [Mailer] Tweak some code
  [Serializer] Add CsvEncoder tests for PHP 7.4
  Copy phpunit.xsd to a predictable path
  [WebserverBundle] Remove duplicated deprecation message
  remove duplicated test
  [Security/Http] fix parsing X509 emailAddress
  [FrameworkBundle] conflict with VarDumper < 4.4
  ...
2019-10-02 17:00:37 +02:00
Jan Schädlich
98c4f6a06c [Console] Command::execute() should always return int - deprecate returning null
- added deprecation message for non-int return value in Command::execute()
- fixed all core commands to return proper int values
- added proper return type-hint to Command::execute() method in all core Commands
2019-10-02 16:44:58 +02:00
Nicolas Grekas
3354bacc02 Merge branch '4.3' into 4.4
* 4.3:
  [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand
  [AnnotationCacheWarmer] add RedirectController to annotation cache
  [DI] add tests loading calls with returns-clone
  [EventDispatcher] Added tests for aliased events.
  [DI] Add CSV env var processor tests
2019-10-02 16:41:32 +02:00
Nicolas Grekas
bf62544a0c Merge branch '3.4' into 4.3
* 3.4:
  [FrameworkBundle] Fix wrong returned status code in ConfigDebugCommand
  [AnnotationCacheWarmer] add RedirectController to annotation cache
2019-10-02 16:38:26 +02:00
Justin Reherman
64aecab0a7
Don't let falsey usernames slip through 2019-10-02 10:20:10 -04:00
Nicolas Grekas
1fea53330d bug #33744 [DI] Add CSV env var processor tests / support PHP 7.4 (ro0NL)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] Add CSV env var processor tests / support PHP 7.4

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Similar as #32051

Commits
-------

82f341864c [DI] Add CSV env var processor tests
2019-10-02 14:58:58 +02:00
Nicolas Grekas
69928be76e minor #33795 [EventDispatcher] Added tests for aliased events (derrabus)
This PR was merged into the 4.3 branch.

Discussion
----------

[EventDispatcher] Added tests for aliased events

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

While working on #33793 I discovered that I could remove the event alias feature of `RegisterListenersPass` without breaking the component's tests. This PR adds the missing tests.

Commits
-------

8e8a6ed99b [EventDispatcher] Added tests for aliased events.
2019-10-02 14:57:27 +02:00
Nicolas Grekas
badb656f62 minor #33801 [DI] add tests loading calls with returns-clone (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] add tests loading calls with returns-clone

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

Commits
-------

9a48def0c0 [DI] add tests loading calls with returns-clone
2019-10-02 14:55:34 +02:00
Nicolas Grekas
00792fc778 minor #33788 [Serializer] Remove XmlEncoder::TYPE_CASE_ATTRIBUTES constant (pierredup)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Serializer] Remove XmlEncoder::TYPE_CASE_ATTRIBUTES constant

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | not really
| Deprecations? | yes (well, sort of)
| Tickets       | N/A
| License       | MIT
| Doc PR        | N/A

There is a small typo in the `XmlEncoder` constant. This can only be fixed in the master branch for Symfony 5 as it is a breaking change. I'm not sure if it's possible to deprecate the usage of the old constant name in 4.4? As the constant just resolves to a string, there is no way of determining if someone used the constant or not (a quick search on Github, I can't find any direct usages of the constant outside of this class)

Commits
-------

001d0f1693 Remove XmlEncoder::TYPE_CASE_ATTRIBUTES constant
2019-10-02 14:42:21 +02:00
Nicolas Grekas
a176d1a928 bug #33807 [String] fix toAscii() (nicolas-grekas)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] fix toAscii()

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

Commits
-------

46a23f87d9 [String] fix toAscii()
2019-10-02 14:13:38 +02:00
Nicolas Grekas
46a23f87d9 [String] fix toAscii() 2019-10-02 14:01:44 +02:00
Nicolas Grekas
e3aed1055d minor #33782 [DI] dont mandate a class on inline services with a factory (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] dont mandate a class on inline services with a factory

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

This check is too strict, useless and boring for inline services :)

Commits
-------

a2665d17cd [DI] dont mandate a class on inline services with a factory
2019-10-02 11:23:07 +02:00
Pierre du Plessis
001d0f1693
Remove XmlEncoder::TYPE_CASE_ATTRIBUTES constant 2019-10-02 11:18:51 +02:00
Nicolas Grekas
41e452a906 Merge branch '4.3' into 4.4
* 4.3:
  fix merge
2019-10-02 11:13:07 +02:00
Nicolas Grekas
e490db8834 fix merge 2019-10-02 11:05:24 +02:00
Nicolas Grekas
d4f3b685df Merge branch '4.3' into 4.4
* 4.3:
  Sync Twig templateExists behaviors
  Fix the :only-of-type pseudo class selector
  [Serializer] Add CsvEncoder tests for PHP 7.4
  Copy phpunit.xsd to a predictable path
  [Security/Http] fix parsing X509 emailAddress
  [Serializer] fix denormalization of string-arrays with only one element #33731
  [Cache] fix known tag versions ttl check
2019-10-02 10:48:21 +02:00
Nicolas Grekas
b628210df7 Merge branch '3.4' into 4.3
* 3.4:
  Sync Twig templateExists behaviors
  Fix the :only-of-type pseudo class selector
  [Serializer] Add CsvEncoder tests for PHP 7.4
  Copy phpunit.xsd to a predictable path
  [Security/Http] fix parsing X509 emailAddress
  [Serializer] fix denormalization of string-arrays with only one element #33731
  [Cache] fix known tag versions ttl check
2019-10-02 10:36:26 +02:00
Fabien Potencier
7020f2602b bug #33797 [Cache] Fixed Redis Sentinel usage when only one Sentinel specified (Rohaq)
This PR was merged into the 4.4 branch.

Discussion
----------

[Cache] Fixed Redis Sentinel usage when only one Sentinel specified

Added check for $params['redis_sentinel'] to line 274, as by converting the array of hosts to a single host configuration (as you might in a test environment), this causes the class to initialise incorrectly.

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

As from Issue #33796
In a Redis Sentinel setup, if only a single Redis Sentinel, or multiple Sentinels with the same host/port are specified (as we're currently doing in a test environment), then the call to `setSentinelTimeout` in `RedisTrait.php` throws an exception, as the wrong interface appears to be initialised as a result.

Adding a check for the `redis_sentinel` parameter, as was done with a check for the `redis_cluster` parameter, avoids this, and the Redis Client is initialised correctly.

Commits
-------

13233fcd8e Fixed Redis Sentinel usage when only one Sentinel specified
2019-10-02 10:31:34 +02:00
Fabien Potencier
526fd9fc44 feature #33701 [HttpKernel] wrap compilation of the container in an opportunistic lock (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] wrap compilation of the container in an opportunistic lock

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

https://github.com/symfony/symfony/pull/32764#issuecomment-516924305

This PR adds a lock around the compilation of the container. When two or more concurrent requests want to compile the container, the first one runs the computation and the others wait for its completion. If for any reasons the lock doesn't work, compilation happens as usual.

The effect is visible when developing locally:

Here is what all concurrent requests consume now:
![image](https://user-images.githubusercontent.com/243674/65603626-4e231d00-dfa6-11e9-8b6c-62dbd5eb30fe.png)

And here is what they will consume with this PR (they wait but reuse the just compiled container):
![image](https://user-images.githubusercontent.com/243674/65603733-7f9be880-dfa6-11e9-930b-ce793c3e280c.png)

Commits
-------

0b5b3ed7f9 [HttpKernel] wrap compilation of the container in an opportunistic lock
2019-10-02 10:09:14 +02:00
Nicolas Grekas
9a48def0c0 [DI] add tests loading calls with returns-clone 2019-10-02 10:03:02 +02:00
Nicolas Grekas
a2665d17cd [DI] dont mandate a class on inline services with a factory 2019-10-02 09:19:13 +02:00
Gregor Harlan
80b4f81ebf
[String] fix beforeLast/afterLast 2019-10-01 20:07:29 +02:00
Richard Hodgson
13233fcd8e
Fixed Redis Sentinel usage when only one Sentinel specified
Added check for $params['redis_sentinel'] to line 274, as by converting the array of hosts to a single host configuration (as you might in a test environment), this causes the class to initialise incorrectly.
2019-10-01 18:57:36 +01:00
Alexander M. Turek
8e8a6ed99b [EventDispatcher] Added tests for aliased events. 2019-10-01 18:40:32 +02:00
Fabien Potencier
5b7848c8ff feature #33789 [Serializer] Deprecate the XmlEncoder::TYPE_CASE_ATTRIBUTES constant (pierredup)
This PR was merged into the 4.4 branch.

Discussion
----------

[Serializer] Deprecate the XmlEncoder::TYPE_CASE_ATTRIBUTES constant

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

Deprecate the `XmlEncoder::TYPE_CASE_ATTRIBUTES` constant in favour of `XmlEncoder::TYPE_CAST_ATTRIBUTES`

Commits
-------

9f51cf4a77 Deprecate the XmlEncoder::TYPE_CASE_ATTRIBUTES constant
2019-10-01 18:26:56 +02:00
Thomas Calvet
d7682fee6c Sync Twig templateExists behaviors 2019-10-01 17:13:36 +02:00
Fabien Potencier
d2b66ff592 bug #33777 Fix the :only-of-type pseudo class selector (jakzal)
This PR was squashed before being merged into the 3.4 branch (closes #33777).

Discussion
----------

Fix the :only-of-type pseudo class selector

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

Commits
-------

c2a9bf08f1 Fix the :only-of-type pseudo class selector
2019-10-01 13:57:42 +02:00
Jakub Zalas
c2a9bf08f1 Fix the :only-of-type pseudo class selector 2019-10-01 13:57:37 +02:00
Pierre du Plessis
9f51cf4a77
Deprecate the XmlEncoder::TYPE_CASE_ATTRIBUTES constant 2019-10-01 12:51:09 +02:00
Fabien Potencier
ab094c02eb [Mailer] Tweak some code 2019-10-01 12:10:05 +02:00
Fabien Potencier
871e8e9158 bug #32051 [Serializer] Add CsvEncoder tests for PHP 7.4 (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #32051).

Discussion
----------

[Serializer] Add CsvEncoder tests for PHP 7.4

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? |no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Some CSV encoder tests to show the broken behavior of a trailing slash. Spotted in #31867, not sure what to do with it :)

Commits
-------

760354d533 [Serializer] Add CsvEncoder tests for PHP 7.4
2019-10-01 01:11:46 +02:00
Roland Franssen
760354d533 [Serializer] Add CsvEncoder tests for PHP 7.4 2019-10-01 01:11:32 +02:00
Fabien Potencier
a824e08314 bug #33759 [Security/Http] fix parsing X509 emailAddress (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security/Http] fix parsing X509 emailAddress

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

Commits
-------

fceb86bde6 [Security/Http] fix parsing X509 emailAddress
2019-10-01 01:01:20 +02:00
Nicolas Grekas
a2cd56c12f bug #33733 [Serializer] fix denormalization of string-arrays with only one element (mkrauser)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] fix denormalization of string-arrays with only one element

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

This PR does almost the same as ac70edf8cd, just not only for arrays of objects.

Commits
-------

8814751b96 [Serializer] fix denormalization of string-arrays with only one element #33731
2019-09-30 16:55:04 +02:00
Christian Flothmann
4c1b66c6de remove duplicated test 2019-09-30 16:33:22 +02:00
Christian Flothmann
6623ec2131 remove abbreviation support for hidden commands 2019-09-30 16:19:32 +02:00
Christian Flothmann
81ae635100 drop support for retrieving container from non-booted kernels 2019-09-30 15:58:09 +02:00
Nicolas Grekas
fceb86bde6 [Security/Http] fix parsing X509 emailAddress 2019-09-30 14:24:32 +02:00
Thomas Calvet
aaa0cdf523 [ErrorHandler] Rework fatal error handlers 2019-09-30 14:01:42 +02:00
Nicolas Grekas
b15ae9c5e0 Merge branch '4.4'
* 4.4:
  [4.4] Fix some leftovers
  [VarDumper] Output the location of calls to dump()
2019-09-30 12:48:47 +02:00
Matthias Krauser
8814751b96 [Serializer] fix denormalization of string-arrays with only one element #33731 2019-09-30 12:45:58 +02:00
Nicolas Grekas
b416c12d29 [4.4] Fix some leftovers 2019-09-30 11:07:05 +02:00
Swen van Zanten
205abf3435
[Cache] fix known tag versions ttl check 2019-09-29 23:19:44 +02:00
Nicolas Grekas
8649f43009 minor #33746 [String] improve AbstractUnicodeString::ascii() fallback logic (nicolas-grekas)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] improve AbstractUnicodeString::ascii() fallback logic

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

`any-latin/bgn` is a better default when available, and accepting `\Transliterator` instances allows the consumer code to decide how they are instantiated.

Commits
-------

59069626fd [String] improve AbstractUnicodeString::ascii() fallback logic
2019-09-29 21:33:53 +02:00
Nicolas Grekas
e96add4787 [Crawler] document $default as string|null 2019-09-28 23:25:05 +02:00
Nicolas Grekas
5440d671ca feature #31446 [VarDumper] Output the location of calls to dump() (ktherage)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] Output the location of calls to dump()

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | not tested yet
| Fixed tickets | #30830
| License       | MIT
| Doc PR        |

see #30830

Commits
-------

f0a59d3eab [VarDumper] Output the location of calls to dump()
2019-09-28 18:21:11 +02:00
THERAGE Kévin
f0a59d3eab [VarDumper] Output the location of calls to dump() 2019-09-28 18:20:13 +02:00
Nicolas Grekas
10be999069 Merge branch '4.4'
* 4.4:
  sync phpunit script with master
  [HttpFoundation] allow additinal characters in not raw cookies
  [Console] Deprecate abbreviating hidden command names using  Application->find()
  Do not include hidden commands in suggested alternatives
  [Messenger] Improve error message when routing to an invalid transport (closes #31613)
  [DependencyInjection] Fix wrong exception when service is synthetic
  [Security] add "anonymous: lazy" mode to firewalls
2019-09-28 18:14:00 +02:00
Nicolas Grekas
55843f2de6 Merge branch '4.3' into 4.4
* 4.3:
  sync phpunit script with master
  [HttpFoundation] allow additinal characters in not raw cookies
2019-09-28 18:13:05 +02:00
Nicolas Grekas
241e2f7fb7 Merge branch '3.4' into 4.3
* 3.4:
  [HttpFoundation] allow additinal characters in not raw cookies
2019-09-28 17:12:15 +02:00
marie
4db1402770 [HttpFoundation] allow additinal characters in not raw cookies 2019-09-28 17:09:56 +02:00
M. Vondano
f3406338e6 [Console] Deprecate abbreviating hidden command names using Application->find() 2019-09-28 17:00:54 +02:00
Nicolas Grekas
399e0fb06f Merge branch '4.3' into 4.4
* 4.3:
  Do not include hidden commands in suggested alternatives
  [DependencyInjection] Fix wrong exception when service is synthetic
2019-09-28 16:56:00 +02:00
Nicolas Grekas
8033fc5a1d Merge branch '3.4' into 4.3
* 3.4:
  Do not include hidden commands in suggested alternatives
  [DependencyInjection] Fix wrong exception when service is synthetic
2019-09-28 16:55:46 +02:00
M. Vondano
8a9d173c36 Do not include hidden commands in suggested alternatives 2019-09-28 16:39:43 +02:00
Nicolas Grekas
59069626fd [String] improve AbstractUnicodeString::ascii() fallback logic 2019-09-28 15:42:02 +02:00
Roland Franssen
82f341864c [DI] Add CSV env var processor tests 2019-09-28 11:59:10 +02:00
Robin Chalas
6fef3fb83c feature #33676 [Security] add "anonymous: lazy" mode to firewalls (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] add "anonymous: lazy" mode to firewalls

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| Deprecations? | no
| Tickets       | Fixes #26769 et al.
| License       | MIT
| Doc PR        | -

Contains #33663 until it is merged.

This PR allows defining a firewall as such:
```yaml
security:
    firewalls:
        main:
            anonymous: lazy
```

This means that the corresponding area should not start the session / load the user unless the application actively gets access to it. On pages that don't fetch the user at all, this means the session is not started, which means the corresponding token neither is. Lazily, when the user is accessed, e.g. via a call to `is_granted()`, the user is loaded, starting the session if needed.

See #27817 for previous explanations on the topic also.

Note that thanks to the logic in #33633, this PR doesn't have the drawback spotted in #27817: here, the profiler works as expected.

Recipe update pending at https://github.com/symfony/recipes/pull/649

Commits
-------

5cd1d7b4cc [Security] add "anonymous: lazy" mode to firewalls
2019-09-28 01:05:16 +02:00
Nicolas Grekas
335632152e Merge branch '4.4'
* 4.4:
  cs fix bis
  cs fix
  [DomCrawler] add a value() method, normalize whitespaces
2019-09-27 19:13:30 +02:00
Nicolas Grekas
f5d3d5fe17 cs fix bis 2019-09-27 19:11:11 +02:00
Nicolas Grekas
7a3a664ea0 cs fix 2019-09-27 19:09:14 +02:00
Amrouche Hamza
1746718553 [DomCrawler] add a value() method, normalize whitespaces 2019-09-27 19:06:53 +02:00
Nicolas Grekas
293a22a433 bug #33625 [DependencyInjection] Fix wrong exception when service is synthetic (k0d3r1s)
This PR was squashed before being merged into the 3.4 branch (closes #33625).

Discussion
----------

[DependencyInjection] Fix wrong exception when service is synthetic

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

This fixes wrongfully thrown exception when service is defined as synthetic and some arguments are binded in _defaults

Commits
-------

152dec95bc [DependencyInjection] Fix wrong exception when service is synthetic
2019-09-27 17:48:09 +02:00
k0d3r1s
152dec95bc [DependencyInjection] Fix wrong exception when service is synthetic 2019-09-27 17:47:48 +02:00
Nicolas Grekas
7daf7df2ff Merge branch '4.4'
* 4.4:
  fix merge (bis)
  fix merge
2019-09-27 16:40:47 +02:00
Nicolas Grekas
50da16bb6e Merge branch '4.3' into 4.4
* 4.3:
  fix merge (bis)
  fix merge
2019-09-27 16:40:26 +02:00
Nicolas Grekas
fbfdebc487 fix merge (bis) 2019-09-27 16:39:13 +02:00
Nicolas Grekas
d4d81be289 fix merge 2019-09-27 16:37:39 +02:00
Nicolas Grekas
4a9926aa68 Merge branch '4.4'
* 4.4:
  [Form][Validator][Intl] Fix tests
  [Messenger] return empty envelopes when RetryableException occurs
  [Intl] Excludes locale from language codes (split localized language names)
  [FrameworkBundle] WebTestCase KernelBrowser::getContainer null return type
  [Intl] Fix compile type errors
  [Validator] Accept underscores in the URL validator as the URL will resolve correctly
  [Translation] Collect original locale in case of fallback translation
  Add types to constructors and private/final/internal methods (Batch I)
  [HttpFoundation] optimize normalization of headers
  Replace REMOTE_ADDR in trusted proxies with the current REMOTE_ADDR
  [ErrorHandler] Forward \Throwable
  Fix toolbar load when GET params are present in "_wdt" route
2019-09-27 16:25:24 +02:00
Nicolas Grekas
4acef47abb Merge branch '4.3' into 4.4
* 4.3:
  [Form][Validator][Intl] Fix tests
  [Messenger] return empty envelopes when RetryableException occurs
  [Validator] Accept underscores in the URL validator as the URL will resolve correctly
  [Translation] Collect original locale in case of fallback translation
  Fix toolbar load when GET params are present in "_wdt" route
2019-09-27 16:21:43 +02:00
Nicolas Grekas
7bb421bd45 Merge branch '3.4' into 4.3
* 3.4:
  [Form][Validator][Intl] Fix tests
  [Validator] Accept underscores in the URL validator as the URL will resolve correctly
  [Translation] Collect original locale in case of fallback translation
  Fix toolbar load when GET params are present in "_wdt" route
2019-09-27 16:21:32 +02:00
Roland Franssen
e648a91259 [Form][Validator][Intl] Fix tests 2019-09-27 16:00:26 +02:00
Tobias Schultze
abf11d8ba8 bug #32979 [Messenger] return empty envelopes when RetryableException occurs (surikman)
This PR was squashed before being merged into the 4.3 branch (closes #32979).

Discussion
----------

[Messenger] return empty envelopes when RetryableException occurs

| Q             | A
| ------------- | ---
| Branch?       |  3.4 or 4.3 for bug fixes <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| License       | MIT
| ~~Doc PR~~ | ~~symfony/symfony-docs#12109~~

<!--
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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Problem occurs when you are using more than 1 worker with Doctrine Transport.

`Symfony\Component\Messenger\Transport\Doctrine\Connection::get` does a query `SELECT ... FOR UPDATE` and this locking query could lock table and workers stops. But using locks can result in dead locks or lock timeouts. Doctrine renders these SQL errors as RetryableExceptions. These exceptions are often normal if you are in a high concurrency environment. They can happen very often and your application should handle them properly.

Commits
-------

9add32a9ca [Messenger] return empty envelopes when RetryableException occurs
2019-09-27 13:21:51 +02:00
SuRiKmAn
9add32a9ca [Messenger] return empty envelopes when RetryableException occurs 2019-09-27 13:21:34 +02:00
Fabien Potencier
161975d17e feature #33148 [Intl] Excludes locale from language codes (split localized language names) (ro0NL)
This PR was merged into the 4.4 branch.

Discussion
----------

[Intl] Excludes locale from language codes (split localized language names)

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #33146
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

(includes #33140)

Commits
-------

1a9f517903 [Intl] Excludes locale from language codes (split localized language names)
2019-09-27 12:16:57 +02:00
Fabien Potencier
979be2958d feature #31202 [FrameworkBundle] WebTestCase KernelBrowser::getContainer null return type (Simperfit)
This PR was merged into the 4.4 branch.

Discussion
----------

[FrameworkBundle] WebTestCase KernelBrowser::getContainer null return type

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | yes <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #25920  <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        |  <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest 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 the master branch.
-->

As @stof suggested in the #25920 I started deprecating the behaviour of returning null when the container is non booted / null.

If this is not wanted we should close both the PR and the issue ;).

Commits
-------

e169e1a4d5 [FrameworkBundle] WebTestCase KernelBrowser::getContainer null return type
2019-09-27 12:15:03 +02:00
Roland Franssen
1a9f517903 [Intl] Excludes locale from language codes (split localized language names) 2019-09-27 12:13:42 +02:00
Amrouche Hamza
e169e1a4d5 [FrameworkBundle] WebTestCase KernelBrowser::getContainer null return type 2019-09-27 12:05:31 +02:00
Roland Franssen
96fae635be [Intl] Fix compile type errors 2019-09-27 11:54:15 +02:00
Fabien Potencier
ad89564ebf bug #32522 [Validator] Accept underscores in the URL validator, as the URL will load (battye)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Accept underscores in the URL validator, as the URL will load

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32506
| License       | MIT
| Doc PR        | -

As @javiereguiluz mentioned, regardless of convention a URL with an underscore in it will load perfectly fine - so in that respect it must be valid.

Commits
-------

c9c7a1118c [Validator] Accept underscores in the URL validator as the URL will resolve correctly
2019-09-27 09:08:14 +02:00
battye
c9c7a1118c [Validator] Accept underscores in the URL validator as the URL will resolve correctly 2019-09-27 08:53:48 +02:00
Fabien Potencier
b8294398cc feature #33038 [ErrorHandler] Forward \Throwable (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Forward \Throwable

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/32605
| License       | MIT
| Doc PR        | -

The goal of this PR is that `ErrorHandler::handleException()` handles `\Throwable` directly and forwards it  without altering it.

Commits
-------

62483ed305 [ErrorHandler] Forward \Throwable
2019-09-27 08:24:06 +02:00
Fabien Potencier
650f179c2f bug #32925 [Translation] Collect original locale in case of fallback translation (digilist)
This PR was squashed before being merged into the 3.4 branch (closes #32925).

Discussion
----------

[Translation] Collect original locale in case of fallback translation

Before, it collected the fallback locale that was used to translate a key. But this information is confusing, as it does not reveal which translation key is missing in the requested language.

So I'd like to propose to track the "requested" locale instead, so that the Symfony profiler gives me the information in which locale the key is missing instead of which locale was used as a fallback.

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes?
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

In principle, this change is a BC break, but imho also a bug. It's really confusing when the Profiler tells you that it uses a translation fallback for an ID and locale that is actually translated. Took some debugging so recognize that this fallback came from another locale. If you think it's better to target 5.0, I'll update the PR.

Commits
-------

5564e149cb [Translation] Collect original locale in case of fallback translation
2019-09-27 07:57:25 +02:00
Markus Fasselt
5564e149cb [Translation] Collect original locale in case of fallback translation 2019-09-27 07:57:18 +02:00
Fabien Potencier
b1f6d0dbce minor #33519 Add types to constructors and private/final/internal methods (Batch I) (derrabus)
This PR was squashed before being merged into the 4.4 branch (closes #33519).

Discussion
----------

Add types to constructors and private/final/internal methods (Batch I)

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32179, #33228
| License       | MIT
| Doc PR        | N/A

As promised, now a larger batch with the following components:
* Asset
* BrowserKit
* Config
* Console
* ~~CssSelector~~
* Debug
* ~~DomCrawler~~
* DotEnv
* ErrorHandler
* ErrorRenderer
* ExpressionLanguage
* ~~Filesystem~~
* ~~Finder~~

Commits
-------

4039b95d22 Add types to constructors and private/final/internal methods (Batch I)
2019-09-27 07:43:13 +02:00
Alexander M. Turek
4039b95d22 Add types to constructors and private/final/internal methods (Batch I) 2019-09-27 07:43:04 +02:00
Fabien Potencier
66f8f68e13 feature #33574 [Http][DI] Replace REMOTE_ADDR in trusted proxies with the current REMOTE_ADDR (mcfedr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Http][DI] Replace REMOTE_ADDR in trusted proxies with the current REMOTE_ADDR

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

Currently handling trusted ips when deploying behind some CDNs/Load balancers such as ELB is difficult because they dont have a constant IP address, its possible to overcome this as is suggested by the docs - https://symfony.com/doc/current/deployment/proxies.html#but-what-if-the-ip-of-my-reverse-proxy-changes-constantly - by settings trusted proxies to `$request->server->get('REMOTE_ADDR')` - but this has to be done in code, and so becomes dangerous if you code is deployed in different environments.

This change would allow the developer to stick to providing the envvar `TRUSTED_PROXIES`, and in the environment behind a ELB set the value to the literal string `REMOTE_ADDR`, and have it replaced at run time. This way in environments that are not using ELB his app is kept safe.

I think doing this replacement in `Request:: setTrustedProxies` is the best place because it means this feature isn't exposed to other parts of the code that might call `Request::getTrustedProxies`.

Commits
-------

643c9ff257 Replace REMOTE_ADDR in trusted proxies with the current REMOTE_ADDR
2019-09-27 07:42:32 +02:00
Fabien Potencier
7a3bfac209 minor #33725 [HttpFoundation] optimize normalization of headers (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] optimize normalization of headers

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

I was experimenting with using maps to bypass calls to normalization functions, but that didn't lead to any significant perf improvement.

I still found this, the new call is twice as fast :)

Commits
-------

9c676d37a0 [HttpFoundation] optimize normalization of headers
2019-09-27 07:33:30 +02:00
Nicolas Grekas
8f1c4f1f86 Merge branch '4.4'
* 4.4: (28 commits)
  [FrameworkBundle] Fix framework bundle lock configuration not working as expected
  [Validator] Add the missing translations for the Azerbaijani locale
  [HttpClient] workaround bad Content-Length sent by old libcurl
  [Cache] dont override native Memcached options
  Fix CS
  Fix exceptions (PDOException) error code type
  [ErrorHandler] fix return-type patching logic
  [Messenger] Added support for `from_transport` attribute on `messenger.message_handler` tag
  [ErrorHandler] don't throw deprecations for return-types by default
  ensure legacy event dispatcher compatibility
  ensure legacy event dispatcher compatibility
  Fix return type of Process::restart().
  [Cache] fail gracefully when locking is not supported
  [HttpKernel] compress files generated by the profiler
  tweak deprecation messages and changelog
  fix version in @deprecated annotation
  Use VarCloner data instead of legacy array for query params
  [Security] use LegacyEventDispatcherProxy
  [HttpClient] fix undefined index access
  [HttpClient] fix race condition when reading response with informational status
  ...
2019-09-27 00:15:24 +02:00
Nicolas Grekas
fc78e200db Merge branch '4.3' into 4.4
* 4.3:
  [FrameworkBundle] Fix framework bundle lock configuration not working as expected
  [Validator] Add the missing translations for the Azerbaijani locale
  [HttpClient] workaround bad Content-Length sent by old libcurl
  [Cache] dont override native Memcached options
  Fix CS
  Fix exceptions (PDOException) error code type
  Fix return type of Process::restart().
  [Cache] fail gracefully when locking is not supported
  [HttpClient] fix race condition when reading response with informational status
  Names for buttons should start with lowercase
2019-09-27 00:09:58 +02:00
Nicolas Grekas
dff71cef48 bug #33691 [HttpClient] fix race condition when reading response with informational status (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix race condition when reading response with informational status

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

Spotted by some transiently failing jobs on Travis.

Commits
-------

450c3c4998 [HttpClient] fix race condition when reading response with informational status
2019-09-26 23:20:52 +02:00
Nicolas Grekas
c8dbd1ad75 bug #33727 [HttpClient] workaround bad Content-Length sent by old libcurl (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] workaround bad Content-Length sent by old libcurl

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

Issue described in https://curl.haxx.se/mail/lib-2014-01/0106.html, happens with curl 7.29 at least.

Commits
-------

b8d2496979 [HttpClient] workaround bad Content-Length sent by old libcurl
2019-09-26 23:18:02 +02:00
Nicolas Grekas
0d05f3e765 Merge branch '3.4' into 4.3
* 3.4:
  [FrameworkBundle] Fix framework bundle lock configuration not working as expected
  [Validator] Add the missing translations for the Azerbaijani locale
  [Cache] dont override native Memcached options
  Fix return type of Process::restart().
2019-09-26 23:17:10 +02:00
Nicolas Grekas
ad66a160b1 bug #33719 [Cache] dont override native Memcached options (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] dont override native Memcached options

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

Commits
-------

894a78e812 [Cache] dont override native Memcached options
2019-09-26 22:41:00 +02:00
Farhad Safarov
dde0256e63 [Validator] Add the missing translations for the Azerbaijani locale 2019-09-26 23:00:18 +03:00
Nicolas Grekas
b8d2496979 [HttpClient] workaround bad Content-Length sent by old libcurl 2019-09-26 21:42:07 +02:00
Nicolas Grekas
9c676d37a0 [HttpFoundation] optimize normalization of headers 2019-09-26 19:33:29 +02:00
Jérôme Vasseur
3a5fd486de Fix isGranted with object attribute 2019-09-26 15:32:08 +02:00
Nicolas Grekas
0b5b3ed7f9 [HttpKernel] wrap compilation of the container in an opportunistic lock 2019-09-26 13:25:44 +02:00
Nicolas Grekas
894a78e812 [Cache] dont override native Memcached options 2019-09-26 13:13:54 +02:00
Fabien Potencier
5d154fb304 feature #33553 [String] a new component for object-oriented strings management with an abstract unit system (nicolas-grekas, hhamon, gharlan)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[String] a new component for object-oriented strings management with an abstract unit system

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

This is a reboot of #22184 (thanks @hhamon for working on it) and a generalization of my previous work on the topic ([patchwork/utf8](https://github.com/tchwork/utf8)). Unlike existing libraries (including `patchwork/utf8`), this component provides a unified API for the 3 unit systems of strings: bytes, code points and grapheme clusters.

The unified API is defined by the `AbstractString` class. It has 2 direct child classes: `BinaryString` and `AbstractUnicodeString`, itself extended by `Utf8String` and `GraphemeString`.

All objects are immutable and provide clear edge-case semantics, using exceptions and/or (nullable) types!

Two helper functions are provided to create such strings:
```php
new GraphemeString('foo') == u('foo'); // when dealing with Unicode, prefer grapheme units
new BinaryString('foo') == b('foo');
```

`GraphemeString` is the most linguistic-friendly variant of them, which means it's the one ppl should use most of the time *when dealing with written text*.

Future ideas:
 - improve tests
 - add more docblocks (only where they'd add value!)
 - consider adding more methods in the string API (`is*()?`, `*Encode()`?, etc.)
 - first class Emoji support
 - merge the Inflector component into this one
 - use `width()` to improve `truncate()` and `wordwrap()`
 - move method `slug()` to a dedicated locale-aware service class
 - propose your ideas (send PRs after merge)

Out of (current) scope:
 - what [intl](https://php.net/intl) provides (collations, transliterations, confusables, segmentation, etc)

Here is the unified API I'm proposing in this PR, borrowed from looking at many existing libraries, but also Java, Python, JavaScript and Go.

```php
function __construct(string $string = '');
static function unwrap(array $values): array
static function wrap(array $values): array
function after($needle, bool $includeNeedle = false, int $offset = 0): self;
function afterLast($needle, bool $includeNeedle = false, int $offset = 0): self;
function append(string ...$suffix): self;
function before($needle, bool $includeNeedle = false, int $offset = 0): self;
function beforeLast($needle, bool $includeNeedle = false, int $offset = 0): self;
function camel(): self;
function chunk(int $length = 1): array;
function collapseWhitespace(): self
function endsWith($suffix): bool;
function ensureEnd(string $suffix): self;
function ensureStart(string $prefix): self;
function equalsTo($string): bool;
function folded(): self;
function ignoreCase(): self;
function indexOf($needle, int $offset = 0): ?int;
function indexOfLast($needle, int $offset = 0): ?int;
function isEmpty(): bool;
function join(array $strings): self;
function jsonSerialize(): string;
function length(): int;
function lower(): self;
function match(string $pattern, int $flags = 0, int $offset = 0): array;
function padBoth(int $length, string $padStr = ' '): self;
function padEnd(int $length, string $padStr = ' '): self;
function padStart(int $length, string $padStr = ' '): self;
function prepend(string ...$prefix): self;
function repeat(int $multiplier): self;
function replace(string $from, string $to): self;
function replaceMatches(string $fromPattern, $to): self;
function slice(int $start = 0, int $length = null): self;
function snake(): self;
function splice(string $replacement, int $start = 0, int $length = null): self;
function split(string $delimiter, int $limit = null, int $flags = null): array;
function startsWith($prefix): bool;
function title(bool $allWords = false): self;
function toBinary(string $toEncoding = null): BinaryString;
function toGrapheme(): GraphemeString;
function toUtf8(): Utf8String;
function trim(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): self;
function trimEnd(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): self;
function trimStart(string $chars = " \t\n\r\0\x0B\x0C\u{A0}\u{FEFF}"): self;
function truncate(int $length, string $ellipsis = ''): self;
function upper(): self;
function width(bool $ignoreAnsiDecoration = true): int;
function wordwrap(int $width = 75, string $break = "\n", bool $cut = false): self;
function __clone();
function __toString(): string;
```

`AbstractUnicodeString` adds these:
```php
static function fromCodePoints(int ...$codes): self;
function ascii(array $rules = []): self;
function codePoint(int $index = 0): ?int;
function folded(bool $compat = true): parent;
function normalize(int $form = self::NFC): self;
function slug(string $separator = '-'): self;
```

and `BinaryString`:
```php
static function fromRandom(int $length = 16): self;
function byteCode(int $index = 0): ?int;
function isUtf8(): bool;
function toUtf8(string $fromEncoding = null): Utf8String;
function toGrapheme(string $fromEncoding = null): GraphemeString;
```

Case insensitive operations are done with the `ignoreCase()` method.
e.g. `b('abc')->ignoreCase()->indexOf('B')` will return `1`.

For reference, CLDR transliterations (used in the `ascii()` method) are defined here:
https://github.com/unicode-org/cldr/tree/master/common/transforms

Commits
-------

dd8745aced [String] add more tests
82a00956bc [String] add tests
012e92a772 [String] a new component for object-oriented strings management with an abstract unit system
2019-09-26 10:14:27 +02:00
Fabien Potencier
0222ea5df9 bug #33703 [Cache] fail gracefully when locking is not supported (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Cache] fail gracefully when locking is not supported

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

Commits
-------

93485190f9 [Cache] fail gracefully when locking is not supported
2019-09-26 10:04:46 +02:00
Fabien Potencier
d52515ab1b Fix CS 2019-09-26 09:59:37 +02:00
fruty
9efa025a2a Fix exceptions (PDOException) error code type 2019-09-26 09:58:46 +02:00
Nicolas Grekas
b56a4b4f3a minor #33711 [ErrorHandler] fix return-type patching logic (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] fix return-type patching logic

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

My bad.

Commits
-------

302a921976 [ErrorHandler] fix return-type patching logic
2019-09-25 22:41:38 +02:00
Nicolas Grekas
302a921976 [ErrorHandler] fix return-type patching logic 2019-09-25 22:29:01 +02:00
Fabien Potencier
d04fdee000 bug #32335 [Form] Names for buttons should start with lowercase (mcfedr)
This PR was merged into the 4.3 branch.

Discussion
----------

[Form] Names for buttons should start with lowercase

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | N/A

This fix changes the messages related to the changes in https://github.com/symfony/symfony/pull/28969 - the message used to state that names should start with a letter, a digit ... - so I got a confusing message:

```
Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated since Symfony 4.3 and will throw an exception in 5.0 ("Search" given).'
```

Which made me find the message, look at the regex that was used, and work out that actually it should start with a lowercase letter, and hence this PR - where I assume there is a reason that the name must start with lowercase letters.

Commits
-------

f65524e4e0 Names for buttons should start with lowercase
2019-09-25 21:19:30 +02:00
Fabien Potencier
b0c2112fb7 feature #33113 [Messenger][DX] Display real handler if handler is wrapped (DavidBadura)
This PR was merged into the 4.4 branch.

Discussion
----------

[Messenger][DX] Display real handler if handler is wrapped

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        | none

Execute:

```
bin/console debug:messenger
```

Before:

<img width="718" alt="Bildschirmfoto 2019-08-11 um 15 35 10" src="https://user-images.githubusercontent.com/470138/62834539-5faaa280-bc4e-11e9-99d6-a7e98822108c.png">

After:

<img width="673" alt="Bildschirmfoto 2019-08-11 um 15 34 27" src="https://user-images.githubusercontent.com/470138/62834540-646f5680-bc4e-11e9-9aa7-c5fb5219204c.png">

Commits
-------

e6ce9b560c display real handler if handler is wrapped
2019-09-25 21:12:09 +02:00
Fabien Potencier
db5cf1a83e bug #33350 [DI] scope singly-implemented interfaces detection by file (daniel-iwaniec, nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] scope singly-implemented interfaces detection by file

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT

[DependencyInjection] fixed handling singly implemented interfaces when importing multiple resources

for example:
```yaml
App\Adapter\:
    resource: '../src/Adapter/*'
App\Port\:
    resource: '../src/Port/*'
```

this configuration wont create service for interface (in other words singly implemented interface wont be autowired) and this chage fixes it

**Also** this will prevent false positives - for example if I had one implementation in \App\Port namespace and another in \App\Adapter then interface service would still be registered

but that could potentially break exisitng code not aware of this bug

Commits
-------

c1f39709ff [DI] add FileLoader::registerAliasesForSinglyImplementedInterfaces()
bec38900d8 [DI] scope singly-implemented interfaces detection by file
2019-09-25 21:03:45 +02:00
Fabien Potencier
4cf7ec1ecf feature #33658 [Yaml] fix parsing inline YAML spanning multiple lines (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Yaml] fix parsing inline YAML spanning multiple lines

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

Commits
-------

85a5c31e05 fix parsing inline YAML spanning multiple lines
2019-09-25 20:53:23 +02:00
Fabien Potencier
b1802085ec bug #33674 [ErrorHandler] Show fallback error page when default error controller is disabled (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Show fallback error page when default error controller is disabled

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

This would avoid a blank page on errors when we've disabled the default error controller. e.g:
```yaml
framework:
    error_controller: null
```
So, we will show you the default HTML error page.

Commits
-------

8eea11cc26 Show fallback error page when framework.error_controller is null
2019-09-25 20:52:25 +02:00
Fabien Potencier
745248f329 minor #33708 [ErrorHandler] don't throw deprecations for return-types by default (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] don't throw deprecations for return-types by default

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

As discussed a few times already,  in 4.4, `DebugClassLoader` shouldn't trigger deprecations when return types are missing. We'll enable them back in 5.1.

Commits
-------

2cb419edf4 [ErrorHandler] don't throw deprecations for return-types by default
2019-09-25 20:45:24 +02:00
Fabien Potencier
89d7931fdf feature #33698 [HttpKernel] compress files generated by the profiler (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] compress files generated by the profiler

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

I've recently seen several reports of fastly growing profiler storages. Let's compress them when possible.

Locally for the skeleton homepage, a single profile goes from 150k to 15k. Level 3 is producing significant compression ratio while being measurably faster than level 6 (the default), that's why I'm using it.

Commits
-------

08f9470556 [HttpKernel] compress files generated by the profiler
2019-09-25 20:41:47 +02:00
Fabien Potencier
e2e73eff1d feature #33317 [Messenger] Added support for from_transport attribute on messenger.message_handler tag (ruudk)
This PR was squashed before being merged into the 4.4 branch (closes #33317).

Discussion
----------

[Messenger] Added support for `from_transport` attribute on `messenger.message_handler` tag

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33306
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/12231

Right now, it's only possible to have dynamic `from_transport` when using `MessageSubscriberInterface`. Things like `priority` and `bus` can already be added as attributes on the  messenger.message_handler` tag.

With this PR it now also supports `from_transport`.

Commits
-------

c965e4e844 [Messenger] Added support for `from_transport` attribute on `messenger.message_handler` tag
2019-09-25 20:39:14 +02:00
Ruud Kamphuis
c965e4e844 [Messenger] Added support for from_transport attribute on messenger.message_handler tag 2019-09-25 20:39:09 +02:00
Nicolas Grekas
2cb419edf4 [ErrorHandler] don't throw deprecations for return-types by default 2019-09-25 19:39:21 +02:00
Fabien Potencier
a0bbae7514 Merge branch '4.3' into 4.4
* 4.3:
  ensure legacy event dispatcher compatibility
2019-09-25 17:04:11 +02:00
Nicolas Grekas
5cd1d7b4cc [Security] add "anonymous: lazy" mode to firewalls 2019-09-25 16:50:19 +02:00
Christian Flothmann
860688ff2e ensure legacy event dispatcher compatibility 2019-09-25 16:41:08 +02:00
Christian Flothmann
1595d307cf Merge branch '4.3' into 4.4
* 4.3:
  fix version in @deprecated annotation
  [Security] use LegacyEventDispatcherProxy
  Add missing row_attr option to FormType
2019-09-25 16:40:34 +02:00
Gregor Harlan
dd8745aced [String] add more tests 2019-09-25 16:38:21 +02:00
Hugo Hamon
82a00956bc [String] add tests 2019-09-25 16:38:21 +02:00
Nicolas Grekas
012e92a772 [String] a new component for object-oriented strings management with an abstract unit system 2019-09-25 16:38:20 +02:00
Christian Flothmann
4fcc1bc6fa ensure legacy event dispatcher compatibility 2019-09-25 16:27:22 +02:00
Alexander M. Turek
7d7380d9e7 Fix return type of Process::restart(). 2019-09-25 16:09:38 +02:00
Nicolas Grekas
93485190f9 [Cache] fail gracefully when locking is not supported 2019-09-25 15:53:41 +02:00
Christian Flothmann
4e0f034e11 remove tests for legacy behavior 2019-09-25 15:28:34 +02:00
Christian Flothmann
479d8ee2a3 bug #33688 Add missing row_attr option to FormType (mcsky)
This PR was merged into the 4.3 branch.

Discussion
----------

Add missing row_attr option to FormType

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix: #33682 - related issue #33573
| License       | MIT

The #33573 modified Symfony's form themes. But the [FormType](https://github.com/symfony/form/blob/master/Extension/Core/Type/FormType.php) don't allow the option `row_attr` so the OptionResolver throw an exception that the option is unknown.

This PR basically add the option and give it to the form view (like `label_attr` do)

Commits
-------

d711ea2b54 Add missing row_attr option to FormType
2019-09-25 12:11:53 +02:00
Christian Flothmann
042f5b5a9d bug #33692 [HttpClient] fix undefined index access (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] fix undefined index access

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

When the request fails.

Commits
-------

7fce184d25 [HttpClient] fix undefined index access
2019-09-25 12:04:37 +02:00
Christian Flothmann
a53732f28d bug #33693 [Security] use LegacyEventDispatcherProxy (dmaicher)
This PR was merged into the 4.3 branch.

Discussion
----------

[Security] use LegacyEventDispatcherProxy

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

I ran into an issue on one of my apps that has its own event dispatcher class using the old dispatch method signature

```php
public function dispatch($eventName, Event $event = null)
```

This leads to

```
TypeError: Argument 2 passed to X\Tests\Base\TestEventDispatcher::dispatch() must be an instance of Symfony\Component\EventDispatcher\Event or null, string given, called in /var/www/x/symfony/vendor/symfony/security/Http/Firewall/ContextListener.php on line 230

/var/www/x/symfony/tests/Base/TestEventDispatcher.php:20
/var/www/x/symfony/vendor/symfony/security/Http/Firewall/ContextListener.php:230
/var/www/x/symfony/vendor/symfony/security/Http/Firewall/ContextListener.php:111
```

since the event here is dispatched using the new signature:

https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/Security/Http/Firewall/ContextListener.php#L259

Commits
-------

7067e48165 [Security] use LegacyEventDispatcherProxy
2019-09-25 11:50:36 +02:00
Nicolas Grekas
08f9470556 [HttpKernel] compress files generated by the profiler 2019-09-25 10:55:08 +02:00
Christian Flothmann
2b6ce01a98 remove deprecated code paths 2019-09-25 10:10:24 +02:00
Christian Flothmann
eceb0e595c tweak deprecation messages and changelog 2019-09-25 10:01:37 +02:00
Christian Flothmann
e01614527f fix version in @deprecated annotation 2019-09-25 09:46:23 +02:00
David Maicher
7067e48165 [Security] use LegacyEventDispatcherProxy 2019-09-24 20:49:43 +02:00
Nicolas Grekas
7fce184d25 [HttpClient] fix undefined index access 2019-09-24 20:17:30 +02:00
Nicolas Grekas
450c3c4998 [HttpClient] fix race condition when reading response with informational status 2019-09-24 20:09:31 +02:00
Nicolas Grekas
906aad95e6 Merge branch '4.4'
* 4.4:
  [Routing] fix bad fix
2019-09-24 18:23:35 +02:00
Nicolas Grekas
373469b53f Merge branch '4.3' into 4.4
* 4.3:
  [Routing] fix bad fix
2019-09-24 18:23:28 +02:00
Nicolas Grekas
3ab7d57659 Merge branch '3.4' into 4.3
* 3.4:
  [Routing] fix bad fix
2019-09-24 18:23:04 +02:00
Nicolas Grekas
04fe347df9 [Routing] fix bad fix 2019-09-24 18:22:08 +02:00
Nicolas Grekas
2d877b1804 Merge branch '4.4'
* 4.4:
  [Security/Http] fix typo in deprecation message
  [Security] Deprecate isGranted()/decide() on more than one attribute
  Fixed a minor typo in the UPGRADE to 5.0 guide
  Various tweaks 3.4
  Various tweaks 4.3
  [Security] Make stateful firewalls turn responses private only when needed
  [PhpUnit] Fix usleep mock return value
  Revert \"feature #33507 [WebProfiler] Deprecated intercept_redirects in 4.4 (dorumd)\"
  [TwigBundle] typo
  [TwigBundle] fix test case
  [Lock] use Predis\ClientInterface instead of Predis\Client
  Allow Twig 3
  Minor tweaks
  Fix version typo in deprecation notice
  [Form][SubmitType] Add "validate" option
  hint to the --parse-tags when parsing tags fails
  Make legacy "wrong" RFC2047 encoding apply only to one header
2019-09-24 18:05:28 +02:00
Nicolas Grekas
51a2cb6e3c Merge branch '4.3' into 4.4
* 4.3:
  [Security/Http] fix typo in deprecation message
  Various tweaks 3.4
  Various tweaks 4.3
  [PhpUnit] Fix usleep mock return value
  [Lock] use Predis\ClientInterface instead of Predis\Client
  Fix version typo in deprecation notice
  Make legacy "wrong" RFC2047 encoding apply only to one header
2019-09-24 17:57:39 +02:00
Nicolas Grekas
1ccc970469 minor #33690 [Security/Http] fix typo in deprecation message (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Security/Http] fix typo in deprecation message

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

spotted by @stof in #33676

Commits
-------

e70057aed4 [Security/Http] fix typo in deprecation message
2019-09-24 17:54:42 +02:00
Nicolas Grekas
7031e83a8f Merge branch '3.4' into 4.3
* 3.4:
  Various tweaks 3.4
  [PhpUnit] Fix usleep mock return value
  [Lock] use Predis\ClientInterface instead of Predis\Client
2019-09-24 17:54:14 +02:00
Nicolas Grekas
e70057aed4 [Security/Http] fix typo in deprecation message 2019-09-24 17:43:44 +02:00
Kevin Grenier
d711ea2b54 Add missing row_attr option to FormType 2019-09-24 17:38:26 +02:00
Fabien Potencier
3c7172d81e feature #33584 [Security] Deprecate isGranted()/decide() on more than one attribute (wouterj)
This PR was squashed before being merged into the 4.4 branch (closes #33584).

Discussion
----------

[Security] Deprecate isGranted()/decide() on more than one attribute

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

While I expect it not be used much, it is currently possible to call `isGranted()` on more than one attribute:

```php
if ($this->authorizationChecker->isGranted(['ROLE_USER', 'ROLE_ADMIN'])) {
    // ...
}
```

Supporting this includes a couple of problems/questions:

- It is not clear whether this is `OR` or `AND`;
- In fact, this is left over to the voter to decide upon. So it can vary for each voter and writers of new voters need to consider this (otherwise, you get issues like https://github.com/LeaseWeb/LswSecureControllerBundle/issues/4 );
- It promotes to vote over roles instead of actions.

I think we can do better. In the past, we've created all tooling for this to be self-explaining and easier:

```php
// ExpressionLanguage component (also includes other functions, like `is_granted('EDIT')`)
if ($this->authorizationChecker->isGranted("has_role('ROLE_USER') or has_role('ROLE_ADMIN')")) {
    // ...
}

// calling it multiple times in PHP (may reduce performance)
if ($this->authorizationChecker->isGranted('ROLE_USER')
    || $this->authorizationChecker->isGranted('ROLE_ADMIN')
) {
    // ...
}

// or by using Role Hierarchy, if a user really wants to vote on roles
```

This PR deprecates passing more than one attribute to `isGranted()` and `decide()` to remove this confusing bit in Security usage.

Backwards compatiblity help
---

I need some help in how to approach changing the `VoterInterface::vote(TokenInterface $token, $subject, array $attributes)` method in a backwards compatible way. Removing `array` breaks all Voters, so does changing it to `string` and removed the parameter all together.

Commits
-------

c64b0beffb [Security] Deprecate isGranted()/decide() on more than one attribute
2019-09-24 17:21:06 +02:00
Wouter J
c64b0beffb [Security] Deprecate isGranted()/decide() on more than one attribute 2019-09-24 17:21:01 +02:00
Fabien Potencier
e84bd65e91 feature #33663 [Security] Make stateful firewalls turn responses private only when needed (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Security] Make stateful firewalls turn responses private only when needed

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #26769 *et al.*
| License       | MIT
| Doc PR        | -

Replaces #28089

By taking over session usage tracking and replacing it with token usage tracking, we can prevent responses that don't actually use the token from turning responses private without changing anything to the lifecycle of security listeners. This makes the behavior much more seamless, allowing to still log the user with the monolog processor, and display it in the profiler toolbar.

This works by using two separate token storage services:
- `security.token_storage` now tracks access to the token and increments the session usage tracker when needed. This is the service that is injected in userland.
- `security.untracked_token_storage` is a raw token storage that just stores the token and is disconnected from the session. This service is injected in places where reading the session doesn't impact the generated output in any way (as e.g. in Monolog processors, etc.)

Commits
-------

20df3a125c [Security] Make stateful firewalls turn responses private only when needed
2019-09-24 17:09:00 +02:00
Fabien Potencier
47cb83a6ec Various tweaks 3.4 2019-09-24 07:29:29 +02:00
Fabien Potencier
7596f99a12 Various tweaks 4.3 2019-09-24 07:27:42 +02:00
Nicolas Grekas
20df3a125c [Security] Make stateful firewalls turn responses private only when needed 2019-09-23 21:34:59 +02:00
Yonel Ceruto
8eea11cc26 Show fallback error page when framework.error_controller is null 2019-09-23 12:22:17 -04:00
Christian Flothmann
b00b633665 feature #33609 [Form][SubmitType] Add "validate" option (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[Form][SubmitType] Add "validate" option

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

The second part of the ticket requires more work but is kind of unrelated.

Commits
-------

a2bc06d811 [Form][SubmitType] Add "validate" option
2019-09-23 17:54:07 +02:00
Fabien Potencier
acca7ad939 minor #33641 Make legacy "wrong" RFC2047 encoding apply only to one header (terjebraten-certua)
This PR was merged into the 4.3 branch.

Discussion
----------

Make legacy "wrong" RFC2047 encoding apply only to one header

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| License       | MIT

It says in a comment in the code that "We have to go against RFC 2183/2231 in some areas for interoperability". But I would like that to be the exception and not the rule. As the code was, all parameterized headers except from "Content-Disposition" was not encoded according to RFC 2231.

This change is to make it so that the exception (to not follow the RFC) is for the header "Content-Type" only, and all other parameterized headers will follow the rule of RFC 2231.

The code kind of worked before, because in emails we generally only have two parameterized headers; "Content-Disposition" and "Content-Type". But I think it is a good thing that if another  parameterized header would happen to be added, by default it should follow the rule of the RFC and not by default be an exception.

Commits
-------

3817a8b036 Make legacy "wrong" RFC2047 encoding apply only to one header
2019-09-23 16:42:16 +02:00
Fabien Potencier
8eaa5a86f4 minor #33649 Allow Twig 3 (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Allow Twig 3

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

Needs https://github.com/twigphp/Twig/pull/3156
And https://github.com/twigphp/Twig/pull/3158

Commits
-------

09f4eb5cd8 Allow Twig 3
2019-09-23 16:39:44 +02:00
Fabien Potencier
ca108747e3 minor #33651 [Yaml] hint to the --parse-tags when parsing tags fails (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Yaml] hint to the --parse-tags when parsing tags fails

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

Commits
-------

012111524b hint to the --parse-tags when parsing tags fails
2019-09-23 16:33:39 +02:00
Farhad Safarov
5c01f0a7e5 [Lock] use Predis\ClientInterface instead of Predis\Client 2019-09-23 16:31:27 +02:00
Nicolas Grekas
09f4eb5cd8 Allow Twig 3 2019-09-23 16:04:59 +02:00
Yonel Ceruto
84843780de Minor tweaks 2019-09-23 09:09:39 -04:00
Teoh Han Hui
bd13271016
Fix version typo in deprecation notice 2019-09-23 11:00:33 +02:00
Thomas Calvet
a2bc06d811 [Form][SubmitType] Add "validate" option 2019-09-23 10:33:29 +02:00
Christian Flothmann
85a5c31e05 fix parsing inline YAML spanning multiple lines 2019-09-21 11:59:49 +02:00
Nicolas Grekas
94f5aee793 Merge branch '4.4'
* 4.4:
  [Cache] skip igbinary on PHP 7.4.0
2019-09-20 16:41:56 +02:00
Nicolas Grekas
27a400281c Merge branch '4.3' into 4.4
* 4.3:
  [Cache] skip igbinary on PHP 7.4.0
2019-09-20 16:40:59 +02:00
Nicolas Grekas
2c0c131142 [Cache] skip igbinary on PHP 7.4.0 2019-09-20 16:26:56 +02:00
Christian Flothmann
012111524b hint to the --parse-tags when parsing tags fails 2019-09-20 16:23:06 +02:00
Nicolas Grekas
b6fc90ced7 Merge branch '4.4'
* 4.4:
  cleanup
  fix tests
2019-09-20 13:25:39 +02:00
Christian Flothmann
cfd6d645ef fix tests 2019-09-20 12:40:48 +02:00
Nicolas Grekas
b4e2ba2c04 fix merge 2019-09-20 12:11:58 +02:00
Nicolas Grekas
b320c44b4e Merge branch '4.4'
* 4.4:
  [HttpKernel] fix merge
  fix tests
  [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted
2019-09-20 11:29:01 +02:00
Nicolas Grekas
bbf2ae576e Merge branch '4.3' into 4.4
* 4.3:
  [HttpKernel] fix merge
  fix tests
  [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted
2019-09-20 11:28:18 +02:00
Nicolas Grekas
e323097dac [HttpKernel] fix merge 2019-09-20 11:25:35 +02:00
Nicolas Grekas
1575e27c31 bug #33643 [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted

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

Spotted while discussing the client with @Seldaek
The current behavior is transient: depending on the speed of the network/server, the exception can be thrown, or not.

This forces one do deal with 3/4/5xx when the first chunk is yielded.

Commits
-------

3c93764f10 [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted
2019-09-20 09:51:43 +02:00
Nicolas Grekas
f550ca983e Merge branch '3.4' into 4.3
* 3.4:
  fix tests
2019-09-20 09:50:55 +02:00
Christian Flothmann
04f79c5536 fix tests 2019-09-20 09:04:12 +02:00
Nicolas Grekas
3c93764f10 [HttpClient] fix throwing HTTP exceptions when the 1st chunk is emitted 2019-09-19 20:56:12 +02:00
Nicolas Grekas
47f1934899 Merge branch '4.4'
* 4.4:
  [Process] fix typo in tests
2019-09-19 19:12:13 +02:00
Nicolas Grekas
86ffecb556 Merge branch '4.3' into 4.4
* 4.3:
  [Process] fix typo in tests
2019-09-19 19:12:09 +02:00
Nicolas Grekas
a23c3ef42a Merge branch '3.4' into 4.3
* 3.4:
  [Process] fix typo in tests
2019-09-19 19:12:04 +02:00
Nicolas Grekas
20ab3b75fd [Process] fix typo in tests 2019-09-19 19:10:56 +02:00
Terje Bråten
3817a8b036 Make legacy "wrong" RFC2047 encoding apply only to one header 2019-09-19 18:00:15 +01:00
Nicolas Grekas
4442a3f2ac Merge branch '4.4'
* 4.4:
  Re-enable previously failing PHP 7.4 test cases
  [PhpUnitBridge] fix uninitialized variable
  [ErrorRenderer] fix Cannot use object of type ErrorException as array exception #33631
  [Twig] Add missing check
  Revert "bug #33618 fix tests depending on other components' tests (xabbuh)"
  install from source to include components tests
  Fix undefined constant and other minor issues
  [Twig] Add NotificationEmail
  ensure compatibility with type resolver 0.5
  Call AssertEquals with proper parameters
  [DependencyInjection] Allow binding iterable and tagged services
  [Twig] Fix Twig config extra keys
  fix tests depending on other components' tests
  Fix lint commands frozen on empty stdin
2019-09-19 18:03:37 +02:00
Nicolas Grekas
4c69a26d82 Merge branch '4.3' into 4.4
* 4.3:
  Re-enable previously failing PHP 7.4 test cases
  [PhpUnitBridge] fix uninitialized variable
  Revert "bug #33618 fix tests depending on other components' tests (xabbuh)"
  install from source to include components tests
2019-09-19 17:56:27 +02:00
Nicolas Grekas
627833b5e6 Merge branch '3.4' into 4.3
* 3.4:
  Re-enable previously failing PHP 7.4 test cases
  Revert "bug #33618 fix tests depending on other components' tests (xabbuh)"
  install from source to include components tests
2019-09-19 17:51:53 +02:00
Nicolas Grekas
9e4e191535 Re-enable previously failing PHP 7.4 test cases 2019-09-19 17:32:51 +02:00
Fabien Potencier
b5ff9966fe bug #33632 [ErrorRenderer] fix Cannot use object of type ErrorException as array exception #33631 (k0d3r1s)
This PR was squashed before being merged into the 4.4 branch (closes #33632).

Discussion
----------

[ErrorRenderer] fix Cannot use object of type ErrorException as array exception #33631

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

This fixes exception thrown when trying to render ErrorException as an array

Commits
-------

063dc78b49 [ErrorRenderer] fix Cannot use object of type ErrorException as array exception #33631
2019-09-19 16:05:18 +02:00
k0d3r1s
063dc78b49 [ErrorRenderer] fix Cannot use object of type ErrorException as array exception #33631 2019-09-19 16:05:07 +02:00
Christian Flothmann
5aa4328b08 Revert "bug #33618 fix tests depending on other components' tests (xabbuh)"
This reverts commit 47fb0900fb, reversing
changes made to 6fad4f1215.
2019-09-19 09:17:54 +02:00
Christian Flothmann
672a544e8e Merge branch '4.3' into 4.4
* 4.3:
  ensure compatibility with type resolver 0.5
  Call AssertEquals with proper parameters
  [Twig] Fix Twig config extra keys
  fix tests depending on other components' tests
2019-09-18 20:25:57 +02:00
Christian Flothmann
9d882e8ce2 Merge branch '3.4' into 4.3
* 3.4:
  ensure compatibility with type resolver 0.5
  Call AssertEquals with proper parameters
  [Twig] Fix Twig config extra keys
  fix tests depending on other components' tests
2019-09-18 18:13:55 +02:00
Fabien Potencier
47fb0900fb bug #33618 fix tests depending on other components' tests (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

fix tests depending on other components' tests

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

Commits
-------

cd2f3a6056 fix tests depending on other components' tests
2019-09-18 16:58:24 +02:00
Fabien Potencier
6fad4f1215 bug #33626 [PropertyInfo] ensure compatibility with type resolver 0.5 (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[PropertyInfo] ensure compatibility with type resolver 0.5

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

same as #33588 but for the `3.4` branch

Commits
-------

2d708b3e60 ensure compatibility with type resolver 0.5
2019-09-18 16:55:47 +02:00
Fred Cox
643c9ff257 Replace REMOTE_ADDR in trusted proxies with the current REMOTE_ADDR 2019-09-18 17:03:24 +03:00
Christian Flothmann
2d708b3e60 ensure compatibility with type resolver 0.5 2019-09-18 15:36:31 +02:00
Nicolas Grekas
41a450b727 minor #33523 Fix lint commands frozen on empty stdin (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix lint commands frozen on empty stdin

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Running e.g. `lint:yaml -` with no piped content makes the command hangs currently, this makes it fail instead. Also fixes the command help which we forgot to update

Commits
-------

b60e0c1454 Fix lint commands frozen on empty stdin
2019-09-18 14:09:11 +02:00
mmokhi
6a8ab6cb73 Call AssertEquals with proper parameters
Since `$response->getContent()` returns string and our first parameter is already string as well, in some cases (with different precisions) it may "compare strings" as "strings" and this is not what the test wants.
By changing the first parameter to actual number we force `AssertEquals` to compare them numerically rather than literally by string content.
2019-09-18 13:43:43 +02:00
Grégoire Pineau
2055a558fe [DependencyInjection] Allow binding iterable and tagged services 2019-09-18 13:00:14 +02:00
Christian Flothmann
cd2f3a6056 fix tests depending on other components' tests 2019-09-17 17:53:02 +02:00
Fabien Potencier
bc5590a95a Merge branch '4.4'
* 4.4:
  [Console] Fix tests
  Fix wrong namespace
2019-09-17 17:04:37 +02:00
Fabien Potencier
1efae63e64 bug #33617 [Console] Fix tests (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Fix tests

| 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       | n/a
| License       | MIT
| Doc PR        | n/a
<!--
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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

abe11a3024 [Console] Fix tests
2019-09-17 17:01:44 +02:00
Fabien Potencier
abe11a3024 [Console] Fix tests 2019-09-17 16:59:18 +02:00
Fabien Potencier
0b1946e5fe Fix wrong namespace 2019-09-17 16:46:41 +02:00
Fabien Potencier
396b7c32db Merge branch '4.4'
* 4.4:
  New tweaks to the Welcome Page
  fix tests
2019-09-17 13:21:26 +02:00
Fabien Potencier
8ccacab443 minor #33614 New tweaks to the Welcome Page (javiereguiluz)
This PR was merged into the 4.4 branch.

Discussion
----------

New tweaks to the Welcome Page

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

Sorry for the noise! This is hopefully the last pull request related to the Welcome Page design tweaks. This one tweaks some margins, makes it look better on ultra-wide screens and prevents some unwanted horizontal/vertical scrollbars on some browsers.

Commits
-------

2737a00233 New tweaks to the Welcome Page
2019-09-17 13:14:50 +02:00
Fabien Potencier
5d5881a9b4 Merge branch '4.4'
* 4.4:
  [Twig] Remove dead code
  Minor updates in the new Welcome page
  Add gitignore file for Symfony 4.3
  Add gitignore file for Symfony 3.4
  [Inflector] Add .gitignore file
  [Messenger] Fix exception message of failed message is dropped on retry
  Add default value for Accept header
  [HttpClient] Add .gitignore file
  [Finder] Adjust regex to correctly match comments in gitignore contents
  [Security] Removed unused argument in Test
  [Console] Get dimensions from stty on windows if possible
  [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee'
2019-09-17 13:12:43 +02:00
Fabien Potencier
3c78fde548 Merge branch '4.3' into 4.4
* 4.3:
  [Twig] Remove dead code
  Add gitignore file for Symfony 4.3
  Add gitignore file for Symfony 3.4
  [Inflector] Add .gitignore file
  [Messenger] Fix exception message of failed message is dropped on retry
  Add default value for Accept header
  [HttpClient] Add .gitignore file
  [Finder] Adjust regex to correctly match comments in gitignore contents
  [Security] Removed unused argument in Test
  [Console] Get dimensions from stty on windows if possible
  [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee'
2019-09-17 13:12:18 +02:00
Fabien Potencier
9072ba8b58 Merge branch '3.4' into 4.3
* 3.4:
  [Twig] Remove dead code
  Add gitignore file for Symfony 3.4
  [Inflector] Add .gitignore file
  [Security] Removed unused argument in Test
  [Console] Get dimensions from stty on windows if possible
  [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee'
2019-09-17 13:12:06 +02:00
Javier Eguiluz
2737a00233 New tweaks to the Welcome Page 2019-09-17 13:07:57 +02:00
Javier Eguiluz
4517319e53 Minor updates in the new Welcome page 2019-09-17 12:22:46 +02:00
Fabien Potencier
fa7d74a3a6 minor #33611 Add gitignore file for Symfony 4.3 (ValentineBoineau)
This PR was squashed before being merged into the 4.3 branch (closes #33611).

Discussion
----------

Add gitignore file for Symfony 4.3

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

Commits
-------

856b9a8a6e Add gitignore file for Symfony 4.3
2019-09-17 11:54:11 +02:00
Valentine Boineau
856b9a8a6e Add gitignore file for Symfony 4.3 2019-09-17 11:54:03 +02:00
Valentine Boineau
16a422b8be Add gitignore file for Symfony 3.4 2019-09-17 11:52:54 +02:00
Fabien Potencier
2ae76f9723 bug #33600 [Messenger] Fix exception message of failed message is dropped on retry (tienvx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Fix exception message of failed message is dropped on retry

| Q             | A
| ------------- | ---
| Branch?       | 4.3 <!-- 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 #32719
| License       | MIT
| Doc PR        | NA <!-- 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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

8f9f44eb21 [Messenger] Fix exception message of failed message is dropped on retry
2019-09-17 11:16:58 +02:00
Valentine Boineau
fdd7ef593e [Inflector] Add .gitignore file 2019-09-17 10:36:34 +02:00
tien.xuan.vo
8f9f44eb21 [Messenger] Fix exception message of failed message is dropped on retry 2019-09-17 14:04:59 +07:00
geoffrey
48eebfc77b Add default value for Accept header 2019-09-16 21:57:32 +02:00
Valentine Boineau
a2868f12a6 [HttpClient] Add .gitignore file 2019-09-16 14:30:38 +02:00
Fabien Potencier
ad6dc2ec06 bug #33340 [Finder] Adjust regex to correctly match comments in gitignore contents (Jeroeny)
This PR was squashed before being merged into the 4.3 branch (closes #33340).

Discussion
----------

[Finder] Adjust regex to correctly match comments in gitignore contents

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32985
| License       | MIT

Description from issue:

When using `ignoreVCSIgnored`  as argument with the Symfony Finder, it will construct a regex equivalent of the gitignore pattern. However it seems that when a comment line (prefixed with `#`) is present in the `.gitignore`, the regex used to remove comment lines matches every line and thus returns `$gitignoreFileContent` as empty.

Commits
-------

e56fc7cb58 [Finder] Adjust regex to correctly match comments in gitignore contents
2019-09-16 13:29:48 +02:00
=
e56fc7cb58 [Finder] Adjust regex to correctly match comments in gitignore contents 2019-09-16 13:29:41 +02:00
Fabien Potencier
53159ab21c Merge branch '4.4'
* 4.4:
  ensure compatibility with type resolver 0.5
  [WebProfilerBundle] Clean time.js
2019-09-16 10:45:55 +02:00
Fabien Potencier
c7911ae92f Merge branch '4.3' into 4.4
* 4.3:
  ensure compatibility with type resolver 0.5
2019-09-16 10:45:43 +02:00
Fabien Potencier
21d9320be2 Merge branch '4.4'
* 4.4:
  Adding .gitattributes to remove Tests directory from "dist"
  [Messenger] Don't deep merge routing.senders config option
2019-09-16 10:16:50 +02:00
Fabien Potencier
5b531b6f76 feature #33579 Adding .gitattributes to remove Tests directory from "dist" (Nyholm)
This PR was merged into the 4.4 branch.

Discussion
----------

Adding .gitattributes to remove Tests directory from "dist"

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

This is a controversial topic that have been mentioned before. We recently had some discussions on Slack about it and the community not in an agreement. This was asked back in 2014 already.

Im making this PR again, because I think this will help more people than it hurts to keep the tests in the "dist" version.

### Reasons for keeping the tests with the source

* You can look at the tests to understand how the code works
* It is convenient

In the past there were an argument of people might depend on Symfony's classes in Tests. That is no longer the case since we moved reusable classes from Tests to Test.

### Reasons for removing them (merging this PR)

* There should be difference between `composer update --prefer-source` and `composer update --prefer-dist`
* Smaller packages when deploying with Docker or on Serverless.
* Static analysis tools will not complain on PHP syntax errors in our tests ([example](https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/xml_with_wrong_ext.php))

## How to decide?

Merging this PR or not is tricky because no side has a solid technical argument. It is basically just personal preference. Please give this PR a 👍 or 👎 if you want to give your opinion.

## Other PRs and issues related to this:

Add .gitattributes file (https://github.com/symfony/symfony/pull/29277)
Added .gitattributes files to root and all components (https://github.com/symfony/symfony/pull/26472)
Exclude non-essential files from Composer package (https://github.com/symfony/symfony/issues/25414)
[HttpFoundation] optimize files for distribution (https://github.com/symfony/symfony/pull/24427)
Add .gitattributes files (https://github.com/symfony/symfony/pull/23926)
[Suggestion] Adding .gitattributes to ignore unnecessary folders and files for production env (https://github.com/symfony/symfony/issues/20057)
Add lightweight and root only .gitattributes (https://github.com/symfony/symfony/pull/18004)
Add .gitattributes to exclude tests from ZIPs (https://github.com/symfony/symfony/pull/17995)
[RFC] Move tests out of the source and source out of the tests (https://github.com/symfony/symfony/issues/17749)
Removal of development & testing files using .gitattributes (https://github.com/symfony/symfony/issues/16174)
Please add .gitattributes files and fix line endings (https://github.com/symfony/symfony/issues/13521)
making use of .gitattributes (https://github.com/symfony/symfony/issues/11810)

## Workarounds

There are workarounds for both sides. Example:

### Workaround if merged

* `composer update --prefer-source`

### Workaround if closed

* `find vendor/symfony -name "Tests" -type d -exec rm -r "{}" \;`
* https://github.com/editorconfig/editorconfig/issues/228
* https://github.com/dg/composer-cleaner

Commits
-------

ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist"
2019-09-16 10:15:34 +02:00
Nyholm
ac7dc24bcb Adding .gitattributes to remove Tests directory from "dist" 2019-09-16 10:12:51 +02:00
Christian Flothmann
4c70de6c8f ensure compatibility with type resolver 0.5 2019-09-16 10:02:06 +02:00
Christian Flothmann
0354395ee9 Merge branch '4.4'
* 4.4:
  [Mailer] Fix SmtpEnvelope renaming to Envelope
  fixed "link" to Contracts packages
  [WebProfilerBundle] Fix time panel legend buttons
  Some styling tweaks
  Fixed cache pools affecting each other due to an overwritten seed variable
  don't change state in case of exception
  properly catch legacy tag syntax usages
  minor tweaks to the welcome page
2019-09-16 07:06:55 +02:00
Sebastiaan Stok
7c7422f384
[Security] Removed unused argument in Test
After #32998 there was a minor left over, the `testHandleAuthenticationClearsToken`
`$tokenClass` argument is no longer used and can be safely removed.
2019-09-15 19:41:45 +02:00
Fabien Potencier
e82fdbf97f bug #33582 [Mailer] Fix SmtpEnvelope renaming to Envelope (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Fix SmtpEnvelope renaming to Envelope

| 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       | n/a
| License       | MIT
| Doc PR        | n/a
<!--
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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

5796c780ba [Mailer] Fix SmtpEnvelope renaming to Envelope
2019-09-15 10:47:53 +02:00
Fabien Potencier
428367f8cf Merge branch '4.3' into 4.4
* 4.3:
  fixed "link" to Contracts packages
  [WebProfilerBundle] Fix time panel legend buttons
  Fixed cache pools affecting each other due to an overwritten seed variable
  properly catch legacy tag syntax usages
2019-09-15 10:41:08 +02:00
Fabien Potencier
5796c780ba [Mailer] Fix SmtpEnvelope renaming to Envelope 2019-09-15 10:37:41 +02:00
Fabien Potencier
60e3de6334 bug #33510 Minor tweaks to the welcome page (yceruto, javiereguiluz)
This PR was merged into the 4.4 branch.

Discussion
----------

Minor tweaks to the welcome page

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/33189#issuecomment-529177310
| License       | MIT
| Doc PR        | -

/cc @fabpot

Commits
-------

acd50615e7 Some styling tweaks
ddffc972a8 minor tweaks to the welcome page
2019-09-13 16:44:53 +01:00
Javier Eguiluz
acd50615e7
Some styling tweaks 2019-09-13 17:40:37 +02:00
Fabien Potencier
cac27b2abc bug #33571 [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee' (maxhelias)
This PR was merged into the 3.4 branch.

Discussion
----------

[Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee'

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | - <!-- prefix each issue number with "Fix #", if any -->
| License       | MIT
| Doc PR        | - <!-- 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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->
I don't know if this is considered a bug or a new feature ? Tell me if I need to change target branch

This PR improves the singularization of words such as "trees", "employees" or "fees"

Commits
-------

45b4edc2dc [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee'
2019-09-13 15:35:37 +01:00
Fabien Potencier
5d94ace5ea bug #33568 [Validator] don't change state in case of exception (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Validator] don't change state in case of exception

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

Commits
-------

dcd47335a8 don't change state in case of exception
2019-09-13 15:19:20 +01:00
Fabien Potencier
fbcb690318 Merge branch '4.4'
* 4.4:
  rename SmtpEnvelope to Envelope
2019-09-13 15:16:45 +01:00
Fabien Potencier
b07df9d205 feature #33562 [Mailer] rename SmtpEnvelope to Envelope (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] rename SmtpEnvelope to Envelope

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

Drop the Smtp prefix so that arbitrary transports do not have to depend
on SMTP specific concepts.

Commits
-------

5e2c6da349 rename SmtpEnvelope to Envelope
2019-09-13 15:15:15 +01:00
rtek
52650803bf [Console] Get dimensions from stty on windows if possible 2019-09-13 13:40:57 +01:00
Ruud Arentsen
29ba7a8cf1 Fixed cache pools affecting each other due to an overwritten seed variable 2019-09-13 12:59:08 +02:00
Christian Flothmann
dcd47335a8 don't change state in case of exception 2019-09-13 12:19:20 +02:00
Maxime Helias
45b4edc2dc [Inflector] add support 'see' to 'ee' for singularize 'fees' to 'fee' 2019-09-13 12:10:01 +02:00
Christian Flothmann
c8119440c5 Merge branch '4.4'
* 4.4:
  [Mailer] Rename an exception class
  [Workflow] Use a better exception message when many workflow are found
  use debug.file_link_formatter service when possible
2019-09-13 11:01:25 +02:00
Robin Chalas
b60e0c1454 Fix lint commands frozen on empty stdin 2019-09-12 20:34:14 +01:00
Fabien Potencier
2c58dcc34b [Mailer] Rename an exception class 2019-09-12 19:43:44 +01:00
Christian Flothmann
5e2c6da349 rename SmtpEnvelope to Envelope
Drop the Smtp prefix so that arbitrary transports do not have to depend
on SMTP specific concepts.
2019-09-12 16:17:57 +02:00
Grégoire Pineau
1862cb3ec5 [Workflow] Use a better exception message when many workflow are found 2019-09-12 11:37:54 +02:00
Fabien Potencier
5914a1fdef bug #33517 [Yaml] properly catch legacy tag syntax usages (xabbuh)
This PR was merged into the 4.3 branch.

Discussion
----------

[Yaml] properly catch legacy tag syntax usages

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #25534
| License       | MIT
| Doc PR        |

Commits
-------

d5894a4ff9 properly catch legacy tag syntax usages
2019-09-11 17:41:19 +02:00
Christian Flothmann
d5894a4ff9 properly catch legacy tag syntax usages 2019-09-11 15:36:32 +02:00
Nicolas Grekas
ee94e8595c Merge branch '4.4'
* 4.4:
  Re-enable push support for HttpClient
  [DependencyInjection] Accept existing interfaces as valid named args
  Fixed incompatibility between ServiceSubscriberTrait and classes with protected $container property
  [Cache] Added reserved characters constant for CacheItem
  [DI] cascade preloading only to public parameters/properties
  Move Anonymous config to a SecurityFactory
2019-09-11 10:39:10 +02:00
Nicolas Grekas
789448b65c Merge branch '4.3' into 4.4
* 4.3:
  Re-enable push support for HttpClient
  [DependencyInjection] Accept existing interfaces as valid named args
  Fixed incompatibility between ServiceSubscriberTrait and classes with protected $container property
2019-09-11 10:38:59 +02:00
Nicolas Grekas
6ea7f30b89 bug #33546 [DependencyInjection] Accept existing interfaces as valid named args (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[DependencyInjection] Accept existing interfaces as valid named args

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

Commits
-------

6612e9a939 [DependencyInjection] Accept existing interfaces as valid named args
2019-09-11 10:33:14 +02:00
Kévin Dunglas
8483842888
Re-enable push support for HttpClient 2019-09-11 09:53:13 +02:00
Thomas Calvet
6612e9a939 [DependencyInjection] Accept existing interfaces as valid named args 2019-09-11 09:42:51 +02:00
andyexeter
d8533066de [Cache] Added reserved characters constant for CacheItem 2019-09-11 06:59:27 +02:00
Nicolas Grekas
0e3ea8f8c9 [DI] cascade preloading only to public parameters/properties 2019-09-10 19:54:02 +02:00
Nicolas Grekas
70963e390b Merge branch '4.4'
* 4.4:
  Update GitHub PR template
  [DI] fix related to preloading
  [HttpKernel] fix compat with legacy DebugClassLoader
  [WebProfilerBundle] Assign automatic colors to custom Stopwatch categories
  [DI] use dirname() when possible
  Simplify usage of dirname()
  Remove Google references when not needed
  Simplify usage of dirname()
  don't dump a scalar tag value on its own line
  Remove Google references when not needed
  [DI] fix Preloader
  [HttpClient] fix calling the buffer-enabling callback
  [HttpClient] fix php notice on push
  do not perform string operations on null
  Require exact match when reading from stdin with a dash
2019-09-10 19:00:13 +02:00
Nicolas Grekas
3536b1371b Merge branch '4.3' into 4.4
* 4.3:
  Update GitHub PR template
  don't dump a scalar tag value on its own line
2019-09-10 18:53:10 +02:00
Nicolas Grekas
13ff9f94c5 Merge branch '3.4' into 4.3
* 3.4:
  Update GitHub PR template
  don't dump a scalar tag value on its own line
2019-09-10 18:53:00 +02:00
Nicolas Grekas
8ca975ddf4 bug #33532 [HttpKernel] fix compat with legacy DebugClassLoader (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] fix compat with legacy DebugClassLoader

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

73198c6d51 [HttpKernel] fix compat with legacy DebugClassLoader
2019-09-10 18:52:40 +02:00
Nicolas Grekas
e25c5957e0 [DI] fix related to preloading 2019-09-10 17:50:40 +02:00
Nicolas Grekas
73198c6d51 [HttpKernel] fix compat with legacy DebugClassLoader 2019-09-10 17:04:34 +02:00
Nicolas Grekas
541f80c635 minor #33529 [DI] use dirname() when possible (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] use dirname() when possible

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

On second look, I think this works :)

Commits
-------

2eae300537 [DI] use dirname() when possible
2019-09-10 15:08:12 +02:00
Nicolas Grekas
2eae300537 [DI] use dirname() when possible 2019-09-10 15:02:59 +02:00
Thomas Calvet
62483ed305 [ErrorHandler] Forward \Throwable 2019-09-10 14:09:52 +02:00
Fabien Potencier
f7130e332f bug #33518 [Yaml] don't dump a scalar tag value on its own line (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] don't dump a scalar tag value on its own line

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

This commit fine tunes the bugfix made in #33377 with the feedback provided in https://github.com/symfony/symfony/issues/33464#issuecomment-528290985.

Commits
-------

a549069a49 don't dump a scalar tag value on its own line
2019-09-10 13:35:27 +02:00
Fabien Potencier
51ffc18b6d Simplify usage of dirname() 2019-09-10 13:34:21 +02:00
Fabien Potencier
c709d43878 Merge branch '4.3' into 4.4
* 4.3:
  Remove Google references when not needed
  Simplify usage of dirname()
  Remove Google references when not needed
2019-09-10 13:27:29 +02:00
Fabien Potencier
1517d1682f Remove Google references when not needed 2019-09-10 13:27:19 +02:00
Fabien Potencier
6f459b9419 Merge branch '3.4' into 4.3
* 3.4:
  Remove Google references when not needed
2019-09-10 13:25:17 +02:00
Fabien Potencier
c4d44eb089 Simplify usage of dirname() 2019-09-10 13:22:25 +02:00
Christian Flothmann
a549069a49 don't dump a scalar tag value on its own line 2019-09-10 12:38:46 +02:00
Fabien Potencier
9665d7633d Remove Google references when not needed 2019-09-10 12:13:59 +02:00
Fabien Potencier
c0f0b8a1b5 bug #33513 [Console] Use correct EventDispatcherInterface (derrabus)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Console] Use correct EventDispatcherInterface

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | N/A

The parameter type declaration of `Symfony\Component\Console\Application::setDispatcher()` was announced to be changed to the contracts' `EventDispatcherInterface`, but in fact we're still referencing the component's interface there.

Commits
-------

5ccb472623 [Console] Use correct EventDispatcherInterface.
2019-09-10 12:11:04 +02:00
Fabien Potencier
1c3d409490 bug #33525 [DI] fix Preloader (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] fix Preloader

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/32032/files#r322150801
| License       | MIT
| Doc PR        | -

Commits
-------

4cc8641326 [DI] fix Preloader
2019-09-10 11:48:59 +02:00
Nicolas Grekas
4cc8641326 [DI] fix Preloader 2019-09-10 11:11:45 +02:00
Nicolas Grekas
0e28518b33 [HttpClient] fix calling the buffer-enabling callback 2019-09-10 10:51:24 +02:00
Nicolas Grekas
6a7b77ecb2 [HttpClient] fix php notice on push 2019-09-10 08:36:23 +02:00
Robin Chalas
92e64a1dfa minor #33511 Require exact match when reading from stdin with a dash (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Require exact match when reading from stdin with a dash

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

I think reading from stdin should happen only when the argument is exactly a dash, with no other files on the command line.

The alternative is to allow a dash at any position in the list of files, but I'm not sure that'd make sense.

Commits
-------

3d14b79dad Require exact match when reading from stdin with a dash
2019-09-09 18:45:50 +02:00
Yonel Ceruto
ddffc972a8 minor tweaks to the welcome page 2019-09-09 09:46:27 -04:00
Alexander M. Turek
5ccb472623 [Console] Use correct EventDispatcherInterface. 2019-09-09 12:12:27 +02:00
Christian Flothmann
600bde9562 do not perform string operations on null 2019-09-09 12:09:16 +02:00
Nicolas Grekas
41b9d81292 Merge branch '4.4'
* 4.4:
  [Cache] Add types to constructors and private/final/internal methods.
  [HttpClient] Allow enabling buffering conditionally with a Closure
2019-09-09 09:35:34 +02:00
Nicolas Grekas
e9f524a37e feature #32565 [HttpClient] Allow enabling buffering conditionally with a Closure (rjwebdev)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpClient] Allow enabling buffering conditionally with a Closure

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #31883
| License       | MIT
| Doc PR        | symfony/symfony-docs#12043

With this PR, responses can be buffered automatically from a closure passed to the `buffer` option.

```php
$resp = $client->request('GET', $url, [
    'buffer' => function (array $headers): bool { return true/false; },
]);
```

When no option is provided, buffering is now enabled only for json, xml and text/* content types.

Commits
-------

f705ac9dc4 [HttpClient] Allow enabling buffering conditionally with a Closure
2019-09-09 09:21:48 +02:00
Nicolas Grekas
3d14b79dad Require exact match when reading from stdin with a dash 2019-09-09 08:40:31 +02:00
Yonel Ceruto
1994ffe61a remove legacy code from STDIN commands 2019-09-08 22:38:25 -04:00
Alexander M. Turek
919afd2112 [Cache] Add types to constructors and private/final/internal methods. 2019-09-08 23:57:26 +02:00
Nicolas Grekas
6b6562cf13 Merge branch '4.4'
* 4.4: (21 commits)
  [appveyor] exclude tty group
  [HttpFoundation] Add types to private/final/internal methods and constructors.
  Add types to private/final/internal methods and constructors.
  SCA: minor code tweaks
  Tweak output
  [FrameworkBundle] Added --sort option for TranslationUpdateCommand
  [HttpClient] fallbackto CURLMOPT_MAXCONNECTS when CURLMOPT_MAX_HOST_CONNECTIONS is not available
  [DI] generate preload.php file for PHP 7.4 in cache folder
  Allow version 2 of the contracts package.
  [Serializer] Allow multi-dimenstion object array in AbstractObjectNormalizer
  fixed typo
  [HttpKernel] Fix Apache mod_expires Session Cache-Control issue
  deprecated not passing dash symbol (-) to STDIN commands
  [VarDumper] display ellipsed FQCN for nested classes
  [VarDumper] Display fully qualified title
  [Mailer] Change the syntax for DSNs using failover or roundrobin
  Removed workaround introduced in 4.3
  [Console] Added support for definition list
  [OptionsResolver] Display full nested options hierarchy in exceptions
  New welcome page
  ...
2019-09-08 22:44:36 +02:00
Nicolas Grekas
81ac674b61 Merge branch '4.3' into 4.4
* 4.3:
  SCA: minor code tweaks
  [HttpClient] fallbackto CURLMOPT_MAXCONNECTS when CURLMOPT_MAX_HOST_CONNECTIONS is not available
  fixed typo
  [HttpKernel] Fix Apache mod_expires Session Cache-Control issue
  Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler
2019-09-08 22:40:04 +02:00
Nicolas Grekas
5a06f94c08 Merge branch '3.4' into 4.3
* 3.4:
  SCA: minor code tweaks
  [HttpKernel] Fix Apache mod_expires Session Cache-Control issue
  Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler
2019-09-08 22:39:53 +02:00
Nicolas Grekas
26954bc4ff minor #33410 [HttpFoundation] Add types to private/final/internal methods and constructors (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] Add types to private/final/internal methods and constructors

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32179, #33228
| License       | MIT
| Doc PR        | N/A

Commits
-------

1978d88f1b [HttpFoundation] Add types to private/final/internal methods and constructors.
2019-09-08 22:35:39 +02:00
Alexander M. Turek
1978d88f1b [HttpFoundation] Add types to private/final/internal methods and constructors. 2019-09-08 21:38:13 +02:00
Alexander M. Turek
def0ac7a2b Add types to private/final/internal methods and constructors. 2019-09-08 21:37:35 +02:00
Fabien Potencier
4d10d9e0c6 bug #33505 [HttpClient] fallbackto CURLMOPT_MAXCONNECTS when CURLMOPT_MAX_HOST_CONNECTIONS is not available (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fallbackto CURLMOPT_MAXCONNECTS when CURLMOPT_MAX_HOST_CONNECTIONS is not available

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33462
| License       | MIT
| Doc PR        | -

Commits
-------

0aae1d7c0a [HttpClient] fallbackto CURLMOPT_MAXCONNECTS when CURLMOPT_MAX_HOST_CONNECTIONS is not available
2019-09-08 19:52:35 +02:00
Vladimir Reznichenko
32ea449679 SCA: minor code tweaks 2019-09-08 19:26:24 +02:00
Fabien Potencier
afad96285e feature #32032 [DI] generate preload.php file for PHP 7.4 in cache folder (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] generate preload.php file for PHP 7.4 in cache folder

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #29105
| License       | MIT
| Doc PR        | -

This PR makes the PhpDumper generate a preloading file suited for PHP 7.4.
On a skeleton app, the generated file is `var/cache/dev/srcApp_KernelDevDebugContainer.preload.php` (of course, this varies by env name + kernel class)

One missing thing is listing some classes that are always needed but are not related to services.

Typically: `Request` and `Response`. We might need a new mechanism to make this list extensible.

I did not measure the benefit of this on PHP 7.4. I would really appreciate if someone could give it a try on PHP 7.4 with preloading enabled.

Commits
-------

c4dad0de5d [DI] generate preload.php file for PHP 7.4 in cache folder
2019-09-08 19:24:47 +02:00
Nicolas Grekas
0aae1d7c0a [HttpClient] fallbackto CURLMOPT_MAXCONNECTS when CURLMOPT_MAX_HOST_CONNECTIONS is not available 2019-09-08 18:59:44 +02:00
Nicolas Grekas
c4dad0de5d [DI] generate preload.php file for PHP 7.4 in cache folder 2019-09-08 17:48:39 +02:00
Alexander M. Turek
a1ee32039b Allow version 2 of the contracts package. 2019-09-08 12:38:38 +02:00
Fabien Potencier
47a87849c0 bug #32818 [HttpKernel] Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler (Arman-Hosseini)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler

| Q             | A
| ------------- | ---
| Branch?       | >= 3.4 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #32444   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A <!-- required for new features -->

I had this problem and I noticed that an issue had already been registered.
So I registered the pull request.

Commits
-------

9ed5f03b98 Fix getFileLinkFormat() to avoid returning the wrong URL in Profiler
2019-09-08 09:16:45 +02:00
Alejandro Diaz Torres
ea03f6d664 [Serializer] Allow multi-dimenstion object array in AbstractObjectNormalizer 2019-09-08 09:15:36 +02:00
Fabien Potencier
1bfbaeb894 fixed typo 2019-09-08 09:09:18 +02:00
Fabien Potencier
dc75ae2614 feature #33189 New welcome page on startup for 4.4 LTS & 5.0 (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

New welcome page on startup for 4.4 LTS & 5.0

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

A new LTS version of Symfony is coming and a new major version too. That deserves a little more ❤️ than usual.

This picture simulate two components of the live: the Ocean and the sky/Universe, with the aim of inspiring calm at the same time desire to build good & great things:

 ![welcome-page](https://user-images.githubusercontent.com/2028198/63116799-77dd3300-bf68-11e9-8bb5-8c03b301c9e2.gif)

The HUE value changes randomly each time you enter to the homepage. That's just an idea to make it dynamic. I invite you to try it and send your ideas too. I'd like this experience to be extremely exciting for newcomers.

About all text & message this would be a good time to say what people want to hear :) Symfony's amazing \o/. Some communication skills are required here.

I'm not a designer, so I'd want some expert on this topic destroying the proposal making it even better :)

HTML+CSS only: I tried to use some moderm features that were compatible with most of browser, but I might be forgetting something.

The icons were taken from https://material.io/resources/icons/ (free), but I don't know how to deal with this license:
> Our icons are free for everyone to use. Please don’t try to sell them.
> Available under [Apache license version 2.0](https://www.apache.org/licenses/LICENSE-2.0.html).

Should we copy it somewhere? should it be visible to the user?

**Before:**
![old-welcome-page](https://user-images.githubusercontent.com/2028198/63117275-6cd6d280-bf69-11e9-9ffc-cce6000e3518.png)

A good first feeling is really really important, is it worth it? Thoughts!

ping to my friend @javiereguiluz this is for sure something you would like to check.

Cheers!

Commits
-------

328b97ec71 New welcome page
2019-09-08 09:00:00 +02:00
Fabien Potencier
e776419cee feature #33295 [OptionsResolver] Display full nested option hierarchy in exceptions (fancyweb)
This PR was merged into the 4.4 branch.

Discussion
----------

[OptionsResolver] Display full nested option hierarchy in exceptions

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

It kind of improve the DX, especially when you define a lot of nested form options since the file and line cannot be displayed.

```php
$resolver->setDefaults([
    'array' => function (OptionsResolver $arrayResolver): void {
        $arrayResolver->setRequired('foo');
    },
]);

```

Before:
`The required option "foo" is missing.`

After:
`The required option "array[foo]" is missing.`

That can go to 4.3 I guess.

Commits
-------

a981fc3b50 [OptionsResolver] Display full nested options hierarchy in exceptions
2019-09-08 08:56:26 +02:00
Fabien Potencier
8aa708eeb9 feature #33486 [VarDumper] Display fully qualified title (pavinthan, nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[VarDumper] Display fully qualified title

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

We can see the objects with namespace that help us to navigate to the file easily.

Before: These are diffrent Collection class
<img width="203" alt="Screen Shot 2019-09-06 at 1 02 37 PM" src="https://user-images.githubusercontent.com/13897936/64410319-663f0500-d0a8-11e9-98d5-743e2ccf2737.png">

Now: we can see the diffrent
<img width="376" alt="Screen Shot 2019-09-06 at 1 02 20 PM" src="https://user-images.githubusercontent.com/13897936/64410304-60e1ba80-d0a8-11e9-9cb1-f88c0f8c3de9.png">

Commits
-------

a8252a23ff [VarDumper] display ellipsed FQCN for nested classes
84682eaa03 [VarDumper] Display fully qualified title
2019-09-08 08:52:49 +02:00
Peter Bowyer
9e942768c9 [HttpKernel] Fix Apache mod_expires Session Cache-Control issue 2019-09-08 08:50:59 +02:00
Fabien Potencier
4234601bd9 feature #33496 Deprecated not passing dash symbol (-) to STDIN commands (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

Deprecated not passing dash symbol (-) to STDIN commands

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/33446#issuecomment-528276646
| License       | MIT
| Doc PR        | -

Follow-up https://github.com/symfony/symfony/pull/33446

> There's a conflict here: when no argument was provided, the command also reads from STDIN.
So now, it reads from STDIN, and if there is nothing there, reads from the default template.
This has been caught in php/php-src#4672

> This creates an ambiguous situation - maybe one did pipe nothing but doesn't expect the default template dir to be linted.

> I'd suggest resolving the ambiguity by reading from STDIN only when explicitly asked for. Passing - as argument could the way. And we could trigger a deprecation for now.

For consistency, the other 2 lint commands (`lint:yaml` and `lint:xliff`) have been touched as well.

The plan for 5.0 is read from the STDIN only when `-` is given.

/cc @nicolas-grekas

Commits
-------

586f299ebd deprecated not passing dash symbol (-) to STDIN commands
2019-09-08 08:49:29 +02:00
Fabien Potencier
8f84347ec3 feature #32742 [Console] Added support for definition list and horizontal table (lyrixx)
This PR was merged into the 4.4 branch.

Discussion
----------

[Console] Added support for definition list and horizontal table

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

I need that in a projet where I want to display some data horizontally.

Usage:
```php
<?php

use Symfony\Component\Console\Helper\TableSeparator;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Style\SymfonyStyle;

require __DIR__.'/vendor/autoload.php';

$io = new SymfonyStyle(new ArrayInput([]), new ConsoleOutput());

$io->table(['a', 'b', 'c'], [[1, 2, 3], [4, 5, 6]]);

$io->table(['a', 'b', 'c'], [[1, 2, 3], [4, 5, 6]], true);

$io->definitionList(
    ['foo' => 'bar'],
    new TableSeparator(),
    'this is a title',
    new TableSeparator(),
    ['foo2' => 'bar2']
);
```

![image](https://user-images.githubusercontent.com/408368/63788677-2df43580-c8f6-11e9-9ce6-b7abcecf7f24.png)

Commits
-------

66028fe19f [Console] Added support for definition list
2019-09-08 08:47:16 +02:00
Nicolas Grekas
c1f39709ff [DI] add FileLoader::registerAliasesForSinglyImplementedInterfaces() 2019-09-07 23:26:04 +02:00
Daniel Iwaniec
bec38900d8 [DI] scope singly-implemented interfaces detection by file 2019-09-07 22:48:51 +02:00
Yonel Ceruto
586f299ebd deprecated not passing dash symbol (-) to STDIN commands 2019-09-07 09:00:46 -04:00
Nicolas Grekas
a8252a23ff [VarDumper] display ellipsed FQCN for nested classes 2019-09-07 13:31:53 +02:00
Pavinthan
84682eaa03 [VarDumper] Display fully qualified title 2019-09-07 13:22:19 +02:00
Fabien Potencier
d6ac45262c feature #33494 [Mailer] Change DSN syntax (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Change DSN syntax

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | yes
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | -

The current syntax for failover and roundrobin is confusing. `&&` and `||` do not really convey the right meaning. I realized that while working on a new transport that will send on more than one transport in parallel. `&&` would be a natural fit, but that's already taken.

So, this pull request changes the syntax to be more explicit.

Commits
-------

39dd213960 [Mailer] Change the syntax for DSNs using failover or roundrobin
2019-09-07 09:28:15 +02:00
Fabien Potencier
39dd213960 [Mailer] Change the syntax for DSNs using failover or roundrobin 2019-09-07 08:40:47 +02:00
Tobias Schultze
953057f28d Make dispatched events really final 2019-09-06 22:41:54 +02:00
Nicolas Grekas
bfdf79e25d Merge branch '4.4'
* 4.4:
  [MonologBridge] Bump min version for monolog ^1.25 and drop dead code
  [Bridge/Twig] use tty group on testLintDefaultPaths
  fix tests mocking final events
2019-09-06 18:03:39 +02:00
Nicolas Grekas
9d472c715f minor #33482 fix tests mocking final events (Tobion)
This PR was merged into the 4.4 branch.

Discussion
----------

fix tests mocking final events

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        |

Fix tests in 4.4 extracted from #33297

Commits
-------

637461fd51 fix tests mocking final events
2019-09-06 17:55:53 +02:00
Nicolas Grekas
9dca229573 [Mailer] fix deps=low 2019-09-06 17:26:18 +02:00
Nicolas Grekas
37faf3acdf fix merge 2019-09-06 16:55:00 +02:00
Nicolas Grekas
75fb220ff5 Merge branch '4.4'
* 4.4:
  cs fix
  [Mailer] Check email validity before opening an SMTP connection
2019-09-06 16:53:03 +02:00
Nicolas Grekas
388f28f726 Merge branch '4.3' into 4.4
* 4.3:
  cs fix
2019-09-06 16:52:15 +02:00
Nicolas Grekas
87ec83c00f Merge branch '3.4' into 4.3
* 3.4:
  cs fix
2019-09-06 16:50:57 +02:00
Nicolas Grekas
fbeef96d66 cs fix 2019-09-06 16:49:07 +02:00
Fabien Potencier
b58876c5b3 feature #33471 [Mailer] Check email validity before opening an SMTP connection (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Check email validity before opening an SMTP connection

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes-ish
| New feature?  | yes
| BC breaks?    | no-ish
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

When using an SMTP server to send emails, the connection to the SMTP server happens before being sure that the email to sent is valid. That does not happen with HTTP transports.

This pull request implements a new method to be sure that we don't connect to the SMTP server if the email is not valid.

Commits
-------

dc376f52a5 [Mailer] Check email validity before opening an SMTP connection
2019-09-06 16:42:40 +02:00
Nicolas Grekas
c327510cf0 Merge branch '4.4'
* 4.4:
  [Debug] disable new DebugClassLoader when testing the legacy one
  - updated AbstractToken to compare Roles - Updated isEqualTo method to match roles as default User implements EquatableInterface - added test case - bumped symfony/security-core to 4.4
  typos bis
  typos
  Fix more bad tests
  Fix test fixtures with deprecated method signatures.
  Fix 4.3 tests forward compat
  [Messenger] fix empty amqp body returned as false
  [Mailer] Added messenger to dev dependencies.
  [Validator] Update "suggest" section in composer.json.
  Fix routing cache broken when using generator_class
2019-09-06 16:26:53 +02:00
Nicolas Grekas
7a1545cc8f minor #33491 [Debug] disable new DebugClassLoader when testing the legacy one (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Debug] disable new DebugClassLoader when testing the legacy one

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

25a683bbeb [Debug] disable new DebugClassLoader when testing the legacy one
2019-09-06 16:08:36 +02:00
Nicolas Grekas
25a683bbeb [Debug] disable new DebugClassLoader when testing the legacy one 2019-09-06 16:02:48 +02:00
Fabien Potencier
dc376f52a5 [Mailer] Check email validity before opening an SMTP connection 2019-09-06 15:51:50 +02:00
Oleg Andreyev
4f4c30d59e - updated AbstractToken to compare Roles
- Updated isEqualTo method to match roles as default User implements EquatableInterface
- added test case
- bumped symfony/security-core to 4.4
2019-09-06 15:59:50 +03:00
Nicolas Grekas
cab412f0cb Merge branch '4.3' into HEAD
* 4.3:
  typos bis
2019-09-06 12:29:12 +02:00
Nicolas Grekas
7ba77ecc0d typos bis 2019-09-06 12:24:45 +02:00
Nicolas Grekas
4234bc8ced Merge branch '4.3' into 4.4
* 4.3:
  typos
2019-09-06 12:15:53 +02:00
Nicolas Grekas
7d1286884b typos 2019-09-06 12:15:48 +02:00
Nicolas Grekas
28d331bb58 Merge branch '4.3' into 4.4
* 4.3:
  Fix more bad tests
  Fix test fixtures with deprecated method signatures.
  Fix 4.3 tests forward compat
  [Messenger] fix empty amqp body returned as false
  Fix routing cache broken when using generator_class
2019-09-06 12:03:11 +02:00
Nicolas Grekas
54a514fc1d bug #31964 [Router] routing cache crash when using generator_class (dFayet)
This PR was merged into the 4.3 branch.

Discussion
----------

[Router] routing cache crash when using generator_class

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #31807
| License       | MIT

Since #28865 the Router use, by default, new generator, matcher, and dumpers.
This leads to crash when the Router use a custom generator, or matcher based on the old ones.

Commits
-------

a5b46e5390 Fix routing cache broken when using generator_class
2019-09-06 12:00:20 +02:00
Nicolas Grekas
1b835d1249 minor #33484 Fix test fixtures with deprecated method signatures (derrabus, nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

Fix test fixtures with deprecated method signatures

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33483 (partly)
| License       | MIT
| Doc PR        | N/A

This PR upgrades two fixtures that implemented deprecated method signatures. As far as I can tell, they are used in tests that do not specifically test legacy behavior, so the fixtures should be up to date. Currently, these fixtures cause failing tests on the 4.4 branch.

Commits
-------

cc3e3d54ea Fix more bad tests
592aacff6f Fix test fixtures with deprecated method signatures.
2019-09-06 11:53:27 +02:00
Nicolas Grekas
cc3e3d54ea Fix more bad tests 2019-09-06 11:34:03 +02:00
Alexander M. Turek
592aacff6f Fix test fixtures with deprecated method signatures. 2019-09-06 00:33:19 +02:00
Tobias Schultze
637461fd51 fix tests mocking final events 2019-09-05 22:36:38 +02:00
Tobias Schultze
ee5cbe3658 [Messenger] fix empty amqp body returned as false 2019-09-05 18:44:17 +02:00
Alexander M. Turek
248f0827c7 [Mailer] Added messenger to dev dependencies. 2019-09-05 17:38:24 +02:00
Nicolas Grekas
3bcfe2f169 typo 2019-09-05 15:24:07 +02:00
Nicolas Grekas
38dffe7447 minor #33460 [Validator] Removed CacheInterface in favor of PSR-6 (derrabus)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Validator] Removed CacheInterface in favor of PSR-6

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33414
| License       | MIT
| Doc PR        | symfony/symfony-docs#12276

This PR removes the deprecation layer of #33459.

Commits
-------

34b141c4eb [Validator] Removed CacheInterface in favor of PSR-6.
2019-09-05 15:22:36 +02:00
Nicolas Grekas
f1b5d29c30 fix merge 2019-09-05 15:21:37 +02:00
Alexander M. Turek
5bf8ccae17 [Validator] Update "suggest" section in composer.json. 2019-09-05 15:19:43 +02:00
Alexander M. Turek
34b141c4eb [Validator] Removed CacheInterface in favor of PSR-6. 2019-09-05 14:50:16 +02:00
Nicolas Grekas
34a37bfe87 Merge branch '4.4'
* 4.4:
  [Validator] Deprecated CacheInterface in favor of PSR-6.
  Fix wrong namespace
  [Mailer] Fix typo
  [Mailer] Fix an error message
  maintain sender/recipient name in SMTP envelopes
  [Mailer] Improve an exception when trying to send a RawMessage without an Envelope
  Fix #32148 TransportException was not thrown
  Add ErrorController to preview and render errors
2019-09-05 14:46:35 +02:00
Alexander M. Turek
0b08040459 [Validator] Deprecated CacheInterface in favor of PSR-6. 2019-09-05 14:29:38 +02:00
Fabien Potencier
b7371ea5c6 feature #33271 Added new ErrorController + Preview and enabling there the error renderer mechanism (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

Added new ErrorController + Preview and enabling there the error renderer mechanism

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes (deps=high failure is normal)
| Fixed tickets | -
| License       | MIT
| Doc PR        | TODO

After deprecating the `ExceptionController` in TwigBundle (refs https://github.com/symfony/symfony/pull/31398) the `twig.exception_controller` config key becomes useless as feature provided by TwigBundle, while the preview controller is taking more relevance for the error renderer mechanish.

**Proposal**
 * Deprecate the `twig.exception_controller` config key in favor of `framework.error_controller` with default `ErrorController` that activates the error renderer mechanism through the current `ExceptionListener`, meaning also that `DebugHandlersListener::onKernelException` method becomes useless too.
 * Deprecate the `PreviewErrorController` from TwigBundle in favor of similar in FrameworkBundle.

So you no longer need to install TwigBundle to create a custom error controller or check the preview output of an error renderer (included `TwigHtmlErrorRenderer`).

Btw this would fix https://github.com/symfony/symfony/pull/31398#issuecomment-490081769, removing here workaround in SecurityBundle.

TODO:
- [x] Update CHANGELOG & UPGRADE files
- [x] Add tests

WDYT?

Commits
-------

b79532ab0e Add ErrorController to preview and render errors
2019-09-05 13:15:04 +02:00
Grégoire Pineau
66028fe19f [Console] Added support for definition list 2019-09-05 11:05:30 +02:00
Fabien Potencier
7a9c5da1de minor #33463 [Mailer] Fix an error message (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Fix an error message

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Now  that the host is not the name anymore, the error message when not having a host is wrong.

Commits
-------

60bb1c0ddc [Mailer] Fix an error message
2019-09-05 10:11:06 +02:00
Fabien Potencier
b2ca530d82 [Mailer] Fix typo 2019-09-05 03:35:53 +02:00
Fabien Potencier
60bb1c0ddc [Mailer] Fix an error message 2019-09-05 03:13:57 +02:00
Fabien Potencier
3e8a726c41 Merge branch '4.3' into 4.4
* 4.3:
  maintain sender/recipient name in SMTP envelopes
  Fix #32148 TransportException was not thrown
2019-09-04 12:09:07 +02:00
Christian Flothmann
46ed0e84cd maintain sender/recipient name in SMTP envelopes 2019-09-04 11:58:50 +02:00
Fabien Potencier
c6d56de86d [Mailer] Improve an exception when trying to send a RawMessage without an Envelope 2019-09-04 08:32:49 +02:00
Fabien Potencier
9407c6b6b0 bug #33449 Fix gmail relay (Beno!t POLASZEK)
This PR was merged into the 4.3 branch.

Discussion
----------

Fix gmail relay

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32148
| License       | MIT

This tiny PR fixes #32148 by removing the emission of a notice which prevented a `TransportException` to be thrown when something wrong occured.

Commits
-------

6c90e08368 Fix #32148 TransportException was not thrown
2019-09-04 08:06:43 +02:00
Nicolas Grekas
2ec3e47001 Merge branch '4.4'
* 4.4:
  [HttpClient] Fix a bug preventing Server Pushes to be handled properly
  [HttpClient] fix support for 103 Early Hints and other informational status codes
  fix typo
  [DI] fix failure
  [Validator] Add ConstraintValidator::formatValue() tests
  [HttpClient] improve handling of HTTP/2 PUSH
  Fix #33427
  lint all templates from configured Twig paths if no argument was provided
  Nullable message id?
  [Validator] Only handle numeric values in DivisibleBy
  [Validator] Sync string to date behavior and throw a better exception
  Check phpunit configuration for listeners
  registering basic exception handler for late failures
  [DI] fix support for "!tagged_locator foo"
  [Mailer] Add a more precise exception
  [ErrorHandler][Bridge/PhpUnit] display deprecations for not-autoloaded classes
2019-09-03 23:48:54 +02:00
Nicolas Grekas
b0abc10617 Merge branch '4.3' into 4.4
* 4.3:
  [HttpClient] Fix a bug preventing Server Pushes to be handled properly
  [HttpClient] fix support for 103 Early Hints and other informational status codes
  [DI] fix failure
  [Validator] Add ConstraintValidator::formatValue() tests
  [HttpClient] improve handling of HTTP/2 PUSH
  Fix #33427
  [Validator] Only handle numeric values in DivisibleBy
  [Validator] Sync string to date behavior and throw a better exception
  Check phpunit configuration for listeners
  [DI] fix support for "!tagged_locator foo"
2019-09-03 23:44:11 +02:00
Nicolas Grekas
29355c059c bug #33391 [HttpClient] fix support for 103 Early Hints and other informational status codes (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] fix support for 103 Early Hints and other informational status codes

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

I learned quite recently how 1xx status codes work in HTTP 1.1 when I discovered the [103 Early Hint](https://evertpot.com/http/103-early-hints) status code from [RFC8297](https://tools.ietf.org/html/rfc8297)

This PR fixes support for them by adding a new `getInformationalStatus()` method on `ChunkInterface`. This means that you can now know about 1xx status code by using the `$client->stream()` method:

```php

$response = $client->request('GET', '...');

foreach ($client->stream($response) as $chunk) {
    [$code, $headers] = $chunk->getInformationalStatus();
    if (103 === $code) {
        // $headers['link'] contains the early hints defined in RFC8297
    }

    // ...
}
```

Commits
-------

34275bba1c [HttpClient] fix support for 103 Early Hints and other informational status codes
2019-09-03 23:38:33 +02:00
Nicolas Grekas
200281db40 Merge branch '3.4' into 4.3
* 3.4:
  [Validator] Add ConstraintValidator::formatValue() tests
  [Validator] Sync string to date behavior and throw a better exception
  Check phpunit configuration for listeners
2019-09-03 23:37:38 +02:00
Kévin Dunglas
e1fbaeb65c
[HttpClient] Fix a bug preventing Server Pushes to be handled properly 2019-09-03 23:26:51 +02:00
Nicolas Grekas
34275bba1c [HttpClient] fix support for 103 Early Hints and other informational status codes 2019-09-03 23:21:26 +02:00
Nicolas Grekas
0f434134d6 fix typo 2019-09-03 22:36:28 +02:00
Beno!t POLASZEK
6c90e08368 Fix #32148 TransportException was not thrown 2019-09-03 22:05:27 +02:00
Nicolas Grekas
a1a914ee54 bug #33430 [ErrorHandler][Bridge/PhpUnit] display deprecations for not-autoloaded classes (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler][Bridge/PhpUnit] display deprecations for not-autoloaded classes

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

2ba3cc0aba [ErrorHandler][Bridge/PhpUnit] display deprecations for not-autoloaded classes
2019-09-03 21:50:39 +02:00
Nicolas Grekas
f48ebfa402 bug #33444 [HttpClient] improve handling of HTTP/2 PUSH, disable it by default (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpClient] improve handling of HTTP/2 PUSH, disable it by default

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This follows discussions with @dunglas
For the test cases, https://http2-push.io is down, let's use Akamai instead

This PR now considers the proxy settings before accepting a pushed response.
It also splits the responsibility of dealing with accepting pushed responses in method `acceptPushForRequest`.

The logic in this method could also be delegated to a userland callback passed as an option. Let's wait for someone with an actual use case before adding the option.

This PR also disables HTTP/2 PUSH by default because it is not stable: locally, with the latest curl version, enabling this on a server that pushes things fails with `Failure when receiving data from the peer`. This is not ready for prime time in either ext-curl or the underlying libcurl. You can still enable it explicitly by passing some positive number to the constructor.

Commits
-------

019bce7230 [HttpClient] improve handling of HTTP/2 PUSH
2019-09-03 21:47:20 +02:00
Nicolas Grekas
84fec703c8 minor #33447 [DI] fix failure (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] fix failure

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

3b40cb19a2 [DI] fix failure
2019-09-03 21:14:56 +02:00
Nicolas Grekas
3b40cb19a2 [DI] fix failure 2019-09-03 21:14:00 +02:00
Fabien Potencier
33c02aedec minor #33434 [Validator] Add ConstraintValidator::formatValue() tests (fancyweb)
This PR was squashed before being merged into the 3.4 branch (closes #33434).

Discussion
----------

[Validator] Add ConstraintValidator::formatValue() tests

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

So https://github.com/symfony/symfony/pull/33401 tests can be built on top of this.

Commits
-------

b688aa31ec [Validator] Add ConstraintValidator::formatValue() tests
2019-09-03 18:24:41 +02:00
Thomas Calvet
b688aa31ec [Validator] Add ConstraintValidator::formatValue() tests 2019-09-03 18:24:34 +02:00
Fabien Potencier
c0f4037769 bug #33435 [Validator] Only handle numeric values in DivisibleBy (fancyweb)
This PR was merged into the 4.3 branch.

Discussion
----------

[Validator] Only handle numeric values in DivisibleBy

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Currently it probably breaks because `abs` throws a notice on objects.

Commits
-------

f974add66a [Validator] Only handle numeric values in DivisibleBy
2019-09-03 18:22:42 +02:00
Fabien Potencier
bb3652a37c feature #33327 [ErrorHandler] Registering basic exception handler for late failures (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Registering basic exception handler for late failures

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Follow-up https://github.com/symfony/symfony/pull/33260 but when all handlers fail.

It'll becomes common since 4.4 where the user has control over the error rendering mechanism. If they make a mistake, we have a support page to show it, currently a blank page is displayed.

Commits
-------

ffab734615 registering basic exception handler for late failures
2019-09-03 18:17:34 +02:00
Fabien Potencier
8798c87def bug #33437 Fix #33427 (sylfabre)
This PR was merged into the 4.3 branch.

Discussion
----------

Fix #33427

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33427
| License       | MIT
| Doc PR        | none

Fix #33427 by checking if the message returned by the intl-icu catalog is empty. If yes then the translator returns an empty string instead of running `formatIntl()` which uses the constructor of `MessageFormatter` which throws an exception with empty strings.

Commits
-------

414dcebfc4 Fix #33427
2019-09-03 18:15:52 +02:00
Nicolas Grekas
019bce7230 [HttpClient] improve handling of HTTP/2 PUSH 2019-09-03 17:44:22 +02:00
Sylvain
414dcebfc4 Fix #33427 2019-09-03 17:39:16 +02:00
Yonel Ceruto
9690562410 minor #33329 [Translator] Nullable message id? (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[Translator] Nullable message id?

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

610a4e978f/src/Symfony/Component/Translation/DataCollectorTranslator.php (L144)

The message id shouldn't be `null`, but it's breaking the current code now. Shouldn't we first deprecate of passing `null` even if it's well documented?

Out there can be a lot of `->trans($var)` and `var|trans()` (like the current ones fixed here) that will break without previous warning.

WDTY?

Commits
-------

55eac63 Nullable message id?
2019-09-03 08:21:30 -04:00
Yonel Ceruto
55eac639c5 Nullable message id? 2019-09-03 08:18:35 -04:00
Thomas Calvet
f974add66a [Validator] Only handle numeric values in DivisibleBy 2019-09-03 11:18:02 +02:00
Thomas Calvet
28d7d9444f [Validator] Sync string to date behavior and throw a better exception 2019-09-03 11:01:58 +02:00
Fabien Potencier
4ee3c6bd6a bug #33436 [DI] fix support for "!tagged_locator foo" (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[DI] fix support for "!tagged_locator foo"

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Spotted during the workshop at WebSummerCamp

Commits
-------

a9f75692c9 [DI] fix support for "!tagged_locator foo"
2019-09-03 06:48:04 +02:00
Fabien Potencier
e69336feed minor #33433 [Mailer] Add a more precise exception (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Add a more precise exception

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

<!--
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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

Commits
-------

561f9b7345 [Mailer] Add a more precise exception
2019-09-03 06:41:01 +02:00
Yonel Ceruto
b79532ab0e Add ErrorController to preview and render errors 2019-09-02 17:02:21 -04:00
Nicolas Grekas
4a32a98ded bug #33431 Casting getInt to integer (bits4breakfast)
This PR was squashed before being merged into the 5.0-dev branch (closes #33431).

Discussion
----------

Casting getInt to integer

| Q             | A
| ------------- | ---
| Branch?       | 4.4 for features / 3.4 or 4.3 for bug fixes <!-- see below -->
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| License       | MIT

Until two months ago (until here ead419b77b ) getInt was casting the returned value to integer however this was removed.

Commits
-------

68e92022e0 Casting getInt to integer
2019-09-02 22:30:28 +02:00
Matteo Galli
68e92022e0 Casting getInt to integer 2019-09-02 22:30:23 +02:00
Yonel Ceruto
ffab734615 registering basic exception handler for late failures 2019-09-02 15:55:59 -04:00
Nicolas Grekas
7a5b1b6edd Merge branch '4.4'
* 4.4:
  fix merge
2019-09-02 21:50:12 +02:00
Nicolas Grekas
959eb56488 Merge branch '4.3' into 4.4
* 4.3:
  fix merge
2019-09-02 21:50:03 +02:00
Nicolas Grekas
d26a6568b3 fix merge 2019-09-02 21:49:51 +02:00
Nicolas Grekas
11eb66dacb Merge branch '4.4'
* 4.4:
  fix merge
2019-09-02 20:44:27 +02:00
Nicolas Grekas
5d4a3a16e0 Merge branch '4.3' into 4.4
* 4.3:
  fix merge
2019-09-02 20:43:07 +02:00
Nicolas Grekas
af474ab97e fix merge 2019-09-02 20:42:57 +02:00
Nicolas Grekas
d714b1c533 Merge branch '4.4'
* 4.4:
  [Bridge/PhpUnit] fix looking for composer
  cs fix
  [Mailer] fixed Mailgun support when a response is not JSON as expected
  [4.3] Cleanup tests
  Cleanup tests
  [Finder] Prevent unintentional file locks in Windows
  [FrameworkBundle] Fix about command not showing .env vars
  [DomCrawler] Fix FileFormField PHPDoc
  [Mailer] Remove the default dispatcher in AbstractTransport
  Fix #33395 PHP 5.3 compatibility
2019-09-02 20:41:34 +02:00
Nicolas Grekas
cf507a6728 Merge branch '4.3' into 4.4
* 4.3:
  [Bridge/PhpUnit] fix looking for composer
  cs fix
2019-09-02 20:34:52 +02:00
Nicolas Grekas
a9f75692c9 [DI] fix support for "!tagged_locator foo" 2019-09-02 19:38:36 +02:00
Nicolas Grekas
61dad16c9d cs fix 2019-09-02 18:03:34 +02:00
Fabien Potencier
561f9b7345 [Mailer] Add a more precise exception 2019-09-02 17:59:15 +02:00
Fabien Potencier
cf57ca81ee Merge branch '4.3' into 4.4
* 4.3:
  [Mailer] fixed Mailgun support when a response is not JSON as expected
2019-09-02 17:26:08 +02:00
Fabien Potencier
ca16f5278e bug #33432 [Mailer] Fix Mailgun support when a response is not JSON as expected (fabpot)
This PR was merged into the 4.3 branch.

Discussion
----------

[Mailer] Fix Mailgun support when a response is not JSON as expected

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #32043
| License       | MIT
| Doc PR        | n/a

Sometimes, like when getting a 401, the Mailgun API does not respond with JSON :(

Commits
-------

3b2db425f6 [Mailer] fixed Mailgun support when a response is not JSON as expected
2019-09-02 17:24:05 +02:00
Fabien Potencier
3b2db425f6 [Mailer] fixed Mailgun support when a response is not JSON as expected 2019-09-02 17:20:17 +02:00
Nicolas Grekas
2ba3cc0aba [ErrorHandler][Bridge/PhpUnit] display deprecations for not-autoloaded classes 2019-09-02 17:01:21 +02:00
Nicolas Grekas
727aa7ed9e Merge branch '4.3' into 4.4
* 4.3:
  [4.3] Cleanup tests
  Cleanup tests
  [Finder] Prevent unintentional file locks in Windows
  [FrameworkBundle] Fix about command not showing .env vars
  [DomCrawler] Fix FileFormField PHPDoc
  [Mailer] Remove the default dispatcher in AbstractTransport
  Fix #33395 PHP 5.3 compatibility
2019-09-02 16:51:55 +02:00
Nicolas Grekas
d05e49797c [4.3] Cleanup tests 2019-09-02 16:45:56 +02:00
Fabien Potencier
03bb2da078 Merge branch '4.4'
* 4.4:
  [Mailer] fixed wrong  behavior
2019-09-02 16:43:06 +02:00
Nicolas Grekas
d423b0f473 Merge branch '3.4' into 4.3
* 3.4:
  Cleanup tests
  [Finder] Prevent unintentional file locks in Windows
  [DomCrawler] Fix FileFormField PHPDoc
  Fix #33395 PHP 5.3 compatibility
2019-09-02 16:41:27 +02:00
Fabien Potencier
e15df84313 [Mailer] fixed wrong behavior 2019-09-02 16:39:38 +02:00
Nicolas Grekas
33e466577f minor #33428 Cleanup tests (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Cleanup tests

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

a461943345 Cleanup tests
2019-09-02 16:39:16 +02:00
Nicolas Grekas
a461943345 Cleanup tests 2019-09-02 16:34:19 +02:00
Fabien Potencier
9fb243646c Merge branch '4.4'
* 4.4:
  [Mailer] fixed previous merge
2019-09-02 16:31:22 +02:00
Fabien Potencier
9e0640a281 [Mailer] fixed previous merge 2019-09-02 16:31:12 +02:00
Fabien Potencier
3446db09da Merge branch '4.4'
* 4.4:
  [Mailer] Change the DSN semantics
  [Mailer] Add support for multiple mailers
2019-09-02 16:13:37 +02:00
Fabien Potencier
2ad7f97568 feature #33409 [Mailer] Add support for multiple mailers (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Add support for multiple mailers

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | closes #32535
| License       | MIT
| Doc PR        | -

This adds the possibility to define several email transports.

If you only have one email transport,  nothing changes:

```yaml
framework:
    mailer:
        dsn: '%env(MAILER_DSN)%'
```

But if you need more than one, use the `transports` entry instead:

```yaml
framework:
    mailer:
        transports:
            main: '%env(MAILER_DSN)%'
            important: '%env(MAILER_DSN_IMPORTANT)%'
```

Then, when sending an email via the `Mailer`, pass the mailer name explicitly (by default, the first one is used):

```php
// use the first "main" transport
$mailer->send($email);

// or use the "important" one (`null` is the envelope)
$mailer->send($email, null, 'important');
```

The web profiler now displays the name and the shorten DSN.

Commits
-------

de5fae4dd8 [Mailer] Add support for multiple mailers
2019-09-02 16:12:44 +02:00
Fabien Potencier
469c989697 [Mailer] Change the DSN semantics 2019-09-02 15:50:44 +02:00
Fabien Potencier
de5fae4dd8 [Mailer] Add support for multiple mailers 2019-09-02 12:19:09 +02:00
Fabien Potencier
2f3f1662a7 Merge branch '4.4'
* 4.4:
  [Mailer] Renamed getName() to toString()
  Fix the profiler panel for Mailer
2019-09-02 11:58:32 +02:00
Fabien Potencier
5b7bba9ef3 [Mailer] Renamed getName() to toString() 2019-09-02 11:41:25 +02:00
Joe Springe
997cc5c3f0 [Finder] Prevent unintentional file locks in Windows 2019-09-01 23:32:23 +02:00
dFayet
a5b46e5390 Fix routing cache broken when using generator_class 2019-09-01 21:32:32 +02:00
Ruben Jacobs
f705ac9dc4 [HttpClient] Allow enabling buffering conditionally with a Closure 2019-09-01 16:50:09 +02:00
Robin Chalas
b9f8c7bbf9 bug #33376 [Mailer] Remove the default dispatcher in AbstractTransport (fabpot)
This PR was merged into the 4.3 branch.

Discussion
----------

[Mailer] Remove the default dispatcher in AbstractTransport

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n:a

Creating a default event dispatcher does not make sense as nobody can listen on it.

Commits
-------

55d6a65df9 [Mailer] Remove the default dispatcher in AbstractTransport
2019-08-31 06:21:39 +02:00
Fabien Potencier
b273561e4a minor #33267 Add parameter type declarations to magic methods (derrabus)
This PR was merged into the 5.0-dev branch.

Discussion
----------

Add parameter type declarations to magic methods

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32179
| License       | MIT
| Doc PR        | N/A

Commits
-------

ec8215c386 Add parameter type declarations to magic methods.
2019-08-30 19:51:41 +02:00
Fabien Potencier
71a8ecbfd6 minor #33289 [DomCrawler] Fix FileFormField PHPDoc (dunglas)
This PR was squashed before being merged into the 3.4 branch (closes #33289).

Discussion
----------

[DomCrawler] Fix FileFormField PHPDoc

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

`null` is a valid value, it is used in case of errors. Then the parent class must allow `null` values too. I think it's important regarding the ongoing process of adding typehints everywhere.

Commits
-------

162bfc3cad [DomCrawler] Fix FileFormField PHPDoc
2019-08-30 19:42:32 +02:00
Kévin Dunglas
162bfc3cad [DomCrawler] Fix FileFormField PHPDoc 2019-08-30 19:42:23 +02:00
Fabien Potencier
55d6a65df9 [Mailer] Remove the default dispatcher in AbstractTransport 2019-08-30 19:29:56 +02:00
Nicolas Grekas
77dd1161df Merge branch '4.4'
* 4.4:
  [Console] allow Command::getName() to return null
2019-08-30 14:55:22 +02:00
Nicolas Grekas
9ea05b1601 Merge branch '4.3' into 4.4
* 4.3:
  [Console] allow Command::getName() to return null
2019-08-30 14:54:56 +02:00
Nicolas Grekas
8c0f54ba21 Merge branch '3.4' into 4.3
* 3.4:
  [Console] allow Command::getName() to return null
2019-08-30 14:54:44 +02:00
Nicolas Grekas
45f650ebda Merge branch '4.4'
* 4.4:
  [Routing] fix static route reordering when a previous dynamic route conflicts
  conflict with HttpKernel 5
  Return null as Expire header if it was set to null
  bug #33370 Fix import statement typo in NullCache (adrienbrault)
  [ProxyManager] remove ProxiedMethodReturnExpression polyfill
  fix dumping not inlined scalar tag values
  Fix import statement typo in NullCache
  [DoctrineBridge] Allow configuring class names through methods instead of class parameters
2019-08-30 14:51:40 +02:00
Nicolas Grekas
22ed6247fa Merge branch '4.3' into 4.4
* 4.3:
  [Routing] fix static route reordering when a previous dynamic route conflicts
  Return null as Expire header if it was set to null
  bug #33370 Fix import statement typo in NullCache (adrienbrault)
  [ProxyManager] remove ProxiedMethodReturnExpression polyfill
  fix dumping not inlined scalar tag values
2019-08-30 14:49:06 +02:00
Nicolas Grekas
247815d21c Merge branch '3.4' into 4.3
* 3.4:
  Return null as Expire header if it was set to null
  [ProxyManager] remove ProxiedMethodReturnExpression polyfill
  fix dumping not inlined scalar tag values
2019-08-30 14:41:22 +02:00
Nicolas Grekas
4b66beed75 bug #33363 [Routing] fix static route reordering when a previous dynamic route conflicts (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

[Routing] fix static route reordering when a previous dynamic route conflicts

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Spotted while playing with the code.
I confirm the test case is green on 3.4 too (but route reordering didn't exist then.)

Commits
-------

cba3b6245a [Routing] fix static route reordering when a previous dynamic route conflicts
2019-08-30 14:41:04 +02:00
Nicolas Grekas
cba3b6245a [Routing] fix static route reordering when a previous dynamic route conflicts 2019-08-30 14:38:42 +02:00
Alexander M. Turek
ec8215c386 Add parameter type declarations to magic methods. 2019-08-30 11:44:03 +02:00
Robin Chalas
720ffd869e bug #33385 [Console] allow Command::getName() to return null (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] allow Command::getName() to return null

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

As reported on 4510f04e70 (commitcomment-34845639)

Commits
-------

59ad6c29d1 [Console] allow Command::getName() to return null
2019-08-29 18:31:21 +02:00
Nicolas Grekas
bff95742eb bug #33353 Return null as Expire header if it was set to null (danrot)
This PR was squashed before being merged into the 3.4 branch (closes #33353).

Discussion
----------

Return null as Expire header if it was set to null

| Q             | A
| ------------- | ---
| Branch?       | 3.4 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |    <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

This PR fixes a regression introduces in #33332. If you set the `Expires` header to null when creating a `Response`, the `getExpires` function returned a date instead of null.

```php
$response = new Response(null, 200, ['Expires' => null]);
$response->getExpires(); // Returns a date currently, but should return null
```

See also [the comment](https://github.com/symfony/symfony/pull/33332#discussion_r317934607) in the PR introducing this regression.

Commits
-------

5e3c7ea452 Return null as Expire header if it was set to null
2019-08-29 18:18:10 +02:00
Daniel Rotter
5e3c7ea452 Return null as Expire header if it was set to null 2019-08-29 18:18:03 +02:00
Nicolas Grekas
59ad6c29d1 [Console] allow Command::getName() to return null 2019-08-29 18:09:35 +02:00
Fabien Potencier
92ac848c57 bug #33370 Fix import statement typo in NullCache (adrienbrault)
This PR was merged into the 4.4 branch.

Discussion
----------

Fix import statement typo in NullCache

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes ?
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | N/A

Commits
-------

0a3bb6d05a Fix import statement typo in NullCache
2019-08-29 17:35:09 +02:00
Christian Flothmann
390f4f4329 fix dumping not inlined scalar tag values 2019-08-29 10:16:36 +02:00
Adrien Brault
0a3bb6d05a
Fix import statement typo in NullCache 2019-08-28 12:39:31 +02:00
Fabien Potencier
760160fab9 feature #33352 [Security] drop support for non-boolean return values from checkCredentials() (xabbuh)
This PR was merged into the 5.0-dev branch.

Discussion
----------

[Security] drop support for non-boolean return values from checkCredentials()

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

6a66e19b88 drop support for non-boolean return values from checkCredentials()
2019-08-27 10:01:19 +02:00
Christian Flothmann
6a66e19b88 drop support for non-boolean return values from checkCredentials() 2019-08-27 09:45:18 +02:00
Nicolas Grekas
71787b0b8e Merge branch '4.4'
* 4.4:
  bumped Symfony version to 4.3.5
  Sort components on CI
  fix parameter type declaration and make fabbot happy
  Upgraded CI Composer
  updated VERSION for 4.3.4
  updated CHANGELOG for 4.3.4
  bumped Symfony version to 3.4.32
  updated VERSION for 3.4.31
  update CONTRIBUTORS for 3.4.31
  updated CHANGELOG for 3.4.31
2019-08-27 09:26:46 +02:00
Nicolas Grekas
a2f46664a7 Merge branch '4.3' into 4.4
* 4.3:
  bumped Symfony version to 4.3.5
  Sort components on CI
  fix parameter type declaration and make fabbot happy
  Upgraded CI Composer
  updated VERSION for 4.3.4
  updated CHANGELOG for 4.3.4
  bumped Symfony version to 3.4.32
  updated VERSION for 3.4.31
  update CONTRIBUTORS for 3.4.31
  updated CHANGELOG for 3.4.31
2019-08-27 09:26:16 +02:00
Nicolas Grekas
28f4c09e2d Merge branch '3.4' into 4.3
* 3.4:
  Sort components on CI
  fix parameter type declaration and make fabbot happy
  Upgraded CI Composer
  bumped Symfony version to 3.4.32
  updated VERSION for 3.4.31
  update CONTRIBUTORS for 3.4.31
  updated CHANGELOG for 3.4.31
2019-08-27 09:25:30 +02:00
Fabien Potencier
c6142c6c5a Merge branch 'pull/33285'
* pull/33285:
  remove deprecated global resource dir and kernel.root_dir
2019-08-27 08:54:46 +02:00
Fabien Potencier
e1e5a4601d bumped Symfony version to 4.3.5 2019-08-27 08:04:16 +02:00
Christian Flothmann
19b292893a fix parameter type declaration and make fabbot happy 2019-08-26 22:15:52 +02:00
Nicolas Grekas
2cee7f2b17 fix merge 2019-08-26 18:50:55 +02:00
Fabien Potencier
c94ad9e449 updated VERSION for 4.3.4 2019-08-26 18:47:42 +02:00
Fabien Potencier
afe2f0c511 bumped Symfony version to 3.4.32 2019-08-26 18:46:48 +02:00
Fabien Potencier
d92fb4e8ba updated VERSION for 3.4.31 2019-08-26 18:36:29 +02:00
Nicolas Grekas
047b2b7ebd Merge branch '4.4'
* 4.4:
  [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases
  [Messenger] Stop worker when it should stop
2019-08-26 18:28:00 +02:00
Nicolas Grekas
c1bca297cf Merge branch '4.3' into 4.4
* 4.3:
  [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases
  [Messenger] Stop worker when it should stop
2019-08-26 18:27:46 +02:00
Nicolas Grekas
43e1c8eccf Merge branch '3.4' into 4.3
* 3.4:
  [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases
2019-08-26 18:27:33 +02:00
Nicolas Grekas
7f2236f7bf Add more "object" return types 2019-08-26 18:20:41 +02:00
Nicolas Grekas
7d451144bf Merge branch '4.4'
* 4.4:
  [ErrorHandler] make DebugClassLoader turn multi-types declarations to "object"
2019-08-26 18:09:17 +02:00
Fabien Potencier
a5d776d51d bug #33335 [DependencyInjection] Fixed the getServiceIds implementation to always return aliases (pdommelen)
This PR was squashed before being merged into the 3.4 branch (closes #33335).

Discussion
----------

[DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | maybe
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33307
| License       | MIT
| Doc PR        | -

Changed the getServiceIds implementation in the Container base class to include aliases. Modified existing tests. Added test which uses the PhpDumper.
Fixes https://github.com/symfony/symfony/issues/33307

Without this patch the implementations of the container are inconsistent in whether or not they return aliases (see issue). Fixing this could be considered a BC break for the affected Container class.

As an alternative to keep the behaviour in Container unchanged, the dumped container could be patched instead. And then only apply this version of the patch to master. This however keeps the inconsistency between Container and ContainerBuilder.

Commits
-------

834d5cbce2 [DependencyInjection] Fixed the `getServiceIds` implementation to always return aliases
2019-08-26 18:07:57 +02:00
pdommelen
834d5cbce2 [DependencyInjection] Fixed the getServiceIds implementation to always return aliases 2019-08-26 18:07:49 +02:00
Nicolas Grekas
0abd2712e9 [ErrorHandler] make DebugClassLoader turn multi-types declarations to "object" 2019-08-26 18:02:12 +02:00
Fabien Potencier
113fa0bc50 bug #33298 [Messenger] Stop worker when it should stop (tienvx)
This PR was merged into the 4.3 branch.

Discussion
----------

[Messenger] Stop worker when it should stop

| Q             | A
| ------------- | ---
| Branch?       | 4.3 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | NA   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | NA <!-- 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/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->

There are 2 things about this PR:
* This PR fix the bug when using `limit`, `memory-limit`, `time-limit` options with command `messenger:consume`, these options does not work if the receiver return multiple messages
* This PR is the continue work of https://github.com/symfony/symfony/pull/32783

Commits
-------

5c1f3a2414 [Messenger] Stop worker when it should stop
2019-08-26 17:58:46 +02:00
Nicolas Grekas
d5eb3d78db fix merge 2019-08-26 16:26:39 +02:00
Nicolas Grekas
706706b3c7 fix merge 2019-08-26 16:17:04 +02:00
Nicolas Grekas
23fac65a3c Merge branch '4.4'
* 4.4:
  Add return-types with help from DebugClassLoader in the CI
  do not mock removed getPublicDir() method
  [Bridge/Doctrine] fix review
  [ErrorHandler] make DebugClassLoader able to add return type declarations
2019-08-26 15:40:31 +02:00
Nicolas Grekas
6dd9d24e50 minor #33236 Add return-types with help from DebugClassLoader in the CI (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Add return-types with help from DebugClassLoader in the CI

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33228
| License       | MIT
| Doc PR        | -

I've spent a great deal of time on this PR, experimenting with adding return types to the codebase.

TL;DR: my conclusion is that we cannot make it for 5.0.

There are two reasons for this:
1. The burden this will put on the community is immense, especially when considering that third party libs must also be updated for any apps to work at all on a return-typed 5.0. Symfony must add them last, not first.
2. We need return type covariance, yet this won't be available before PHP 7.4, while 5.0 supports 7.2.

What's attached?
- ~a draft patching logic in `DebugClassLoader` to add return-type where it discovers this should be done~
- return types added automatically thanks to #33283
- ~manual fixes for situations not handled (yet, if possible at all) by that logic in `DebugClassLoader`~ #33332

What's achieved? Tests are green \o/

At this stage, I think we have to acknowledge we won't add return-types in 5.0 but prepare a serious plan to add them in 6.0.

This plan could be:
- [x] make DebugClassLoader able to automate adding return types.
- [x] in 4.4: add all possible return types that don't break BC, e.g. in `Tests` and in generated code
- [x] spot and fix places where annotations aren't accurate, add more annotations where possible.
- [x] ensure `DebugClassLoader` triggers the best possible deprecations that encourage ppl to add return-types in their libs/apps. This means we could decide to disable the current ones (see #33235) and to re-enable them in 5.1. This will also give us the time to fine-tune the tooling (item 1. on this list)

Ideally, we could reach a point where we could test branch 4.4 *with* return-types: we'd use the tooling to add them automatically in the CI job, then we'd run tests and they should be green. Let's do this?

Help Wanted, here is how:

*With PHP 7.4*, run `php .github/patch-types.php`. This will add return types everywhere possible.

Then run tests, e.g. `./phpunit src/Symfony/Component/HttpFoundation --exclude-group legacy,issue-32995`

Here are the components that fail with return types added, please help me check them all with a PR on [my fork](https://github.com/nicolas-grekas/symfony/tree/eh-return-types):
 - [x] src/Symfony/Bridge/Doctrine
 - [x] src/Symfony/Bridge/Monolog
 - [x] src/Symfony/Bridge/PhpUnit
 - [x] src/Symfony/Bridge/ProxyManager
 - [x] src/Symfony/Bridge/Twig
 - [x] src/Symfony/Bundle/DebugBundle
 - [x] src/Symfony/Bundle/FrameworkBundle
 - [x] src/Symfony/Bundle/SecurityBundle
 - [x] src/Symfony/Bundle/TwigBundle
 - [x] src/Symfony/Bundle/WebProfilerBundle
 - [x] src/Symfony/Bundle/WebServerBundle
 - [x] src/Symfony/Component/Asset
 - [x] src/Symfony/Component/BrowserKit
 - [x] src/Symfony/Component/Cache
 - [x] https://github.com/nicolas-grekas/symfony/pull/28 src/Symfony/Component/Config
 - [x] src/Symfony/Component/Console
 - [x] src/Symfony/Component/CssSelector
 - [x] src/Symfony/Component/Debug
 - [x] https://github.com/nicolas-grekas/symfony/pull/28 src/Symfony/Component/DependencyInjection
 - [x] src/Symfony/Component/DomCrawler
 - [x] src/Symfony/Component/Dotenv
 - [x] src/Symfony/Component/ErrorHandler
 - [x] src/Symfony/Component/ErrorRenderer
 - [x] https://github.com/nicolas-grekas/symfony/pull/24 src/Symfony/Component/EventDispatcher
 - [x] src/Symfony/Component/ExpressionLanguage
 - [x] src/Symfony/Component/Filesystem
 - [x] src/Symfony/Component/Finder
 - [x] src/Symfony/Component/Form
 - [x] src/Symfony/Component/HttpClient
 - [x] src/Symfony/Component/HttpFoundation
 - [x] src/Symfony/Component/HttpKernel
 - [x] src/Symfony/Component/Inflector
 - [x] src/Symfony/Component/Intl
 - [x] src/Symfony/Component/Ldap
 - [x] src/Symfony/Component/Lock
 - [x] src/Symfony/Component/Mailer
 - [x] src/Symfony/Component/Messenger
 - [x] src/Symfony/Component/Mime
 - [x] src/Symfony/Component/OptionsResolver
 - [x] src/Symfony/Component/Process
 - [x] src/Symfony/Component/PropertyAccess
 - [x] src/Symfony/Component/PropertyInfo
 - [x] https://github.com/nicolas-grekas/symfony/pull/25 src/Symfony/Component/Routing
 - [x] https://github.com/nicolas-grekas/symfony/pull/26 src/Symfony/Component/Security
 - [x] src/Symfony/Component/Security/Core
 - [x] src/Symfony/Component/Security/Guard
 - [x] src/Symfony/Component/Security/Http
 - [x] https://github.com/nicolas-grekas/symfony/pull/29 src/Symfony/Component/Serializer
 - [x] src/Symfony/Component/Security/Csrf
 - [x] src/Symfony/Component/Stopwatch
 - [x] src/Symfony/Component/Templating
 - [x] https://github.com/nicolas-grekas/symfony/pull/27 src/Symfony/Component/Translation
 - [x] src/Symfony/Component/Validator
 - [x] src/Symfony/Component/VarDumper
 - [x] src/Symfony/Component/VarExporter
 - [x] src/Symfony/Component/WebLink
 - [x] src/Symfony/Component/Workflow
 - [x] src/Symfony/Component/Yaml
 - [x] src/Symfony/Contracts

Commits
-------

11149a1fbb Add return-types with help from DebugClassLoader in the CI
2019-08-26 15:38:09 +02:00
Nicolas Grekas
11149a1fbb Add return-types with help from DebugClassLoader in the CI 2019-08-26 15:31:28 +02:00
Yonel Ceruto
db9549d775 minor #33336 [HttpKernel] do not mock removed getPublicDir() method (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] do not mock removed getPublicDir() method

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

54cb471 do not mock removed getPublicDir() method
2019-08-26 09:25:46 -04:00
Christian Flothmann
54cb4713b2 do not mock removed getPublicDir() method 2019-08-26 15:05:55 +02:00
Nicolas Grekas
72f6a970fc [ErrorHandler] make DebugClassLoader able to add return type declarations 2019-08-26 11:53:50 +02:00
Nicolas Grekas
8a5d937de2 Merge branch '4.4'
* 4.4:
  fix merge
  fix merge
2019-08-26 11:33:24 +02:00
Nicolas Grekas
123fc624e5 Merge branch '4.3' into 4.4
* 4.3:
  fix merge
  fix merge
2019-08-26 11:32:48 +02:00
Nicolas Grekas
97832ec5cd fix merge 2019-08-26 11:28:48 +02:00
Nicolas Grekas
5a6558b7fa fix merge 2019-08-26 11:20:32 +02:00
Nicolas Grekas
b38a717d78 Merge branch '4.4'
* 4.4: (28 commits)
  fix merge
  [SecurityBundle] fix return type declarations
  [BrowserKit] fix return type declarations
  [PropertyInfo] fix return type declarations
  [Bridge/Doctrine] fix return type declarations
  [Form] fix return type declarations
  [Console] fix return type declarations
  [Intl] fix return type declarations
  [Templating] fix return type declarations
  [DomCrawler] fix return type declarations
  [Validator] fix return type declarations
  [Process] fix return type declarations
  [Workflow] fix return type declarations
  [Cache] fix return type declarations
  [Serializer] fix return type declarations
  [Translation] fix return type declarations
  [DI] fix return type declarations
  [Config] fix return type declarations
  [HttpKernel] Fix return type declarations
  [Security] Fix return type declarations
  ...
2019-08-26 11:05:36 +02:00
Nicolas Grekas
089097046b Merge branch '4.3' into 4.4
* 4.3: (23 commits)
  fix merge
  [SecurityBundle] fix return type declarations
  [BrowserKit] fix return type declarations
  [PropertyInfo] fix return type declarations
  [Bridge/Doctrine] fix return type declarations
  [Form] fix return type declarations
  [Console] fix return type declarations
  [Intl] fix return type declarations
  [Templating] fix return type declarations
  [DomCrawler] fix return type declarations
  [Validator] fix return type declarations
  [Process] fix return type declarations
  [Workflow] fix return type declarations
  [Cache] fix return type declarations
  [Serializer] fix return type declarations
  [Translation] fix return type declarations
  [DI] fix return type declarations
  [Config] fix return type declarations
  [HttpKernel] Fix return type declarations
  [Security] Fix return type declarations
  ...
2019-08-26 11:00:56 +02:00
Nicolas Grekas
9e154e7728 fix merge 2019-08-26 10:55:16 +02:00
Nicolas Grekas
74b2802197 Merge branch '3.4' into 4.3
* 3.4: (21 commits)
  [SecurityBundle] fix return type declarations
  [BrowserKit] fix return type declarations
  [PropertyInfo] fix return type declarations
  [Bridge/Doctrine] fix return type declarations
  [Form] fix return type declarations
  [Console] fix return type declarations
  [Intl] fix return type declarations
  [Templating] fix return type declarations
  [DomCrawler] fix return type declarations
  [Validator] fix return type declarations
  [Process] fix return type declarations
  [Workflow] fix return type declarations
  [Cache] fix return type declarations
  [Serializer] fix return type declarations
  [Translation] fix return type declarations
  [DI] fix return type declarations
  [Config] fix return type declarations
  [HttpKernel] Fix return type declarations
  [Security] Fix return type declarations
  [Routing] Fix return type declarations
  ...
2019-08-26 10:26:39 +02:00
Nicolas Grekas
c1d7a88b57 [BrowserKit] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
07405e2c60 [PropertyInfo] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
8706f18ea8 [Form] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
a32a713045 [Console] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
523e9b9feb [Intl] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
73f504c94a [Templating] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
2b8ef1d6d7 [DomCrawler] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
2ea98bb4a1 [Validator] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
6af0c80342 [Process] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
28646c7f9b [Workflow] fix return type declarations 2019-08-26 09:52:58 +02:00
Nicolas Grekas
5f9aaa743c [Cache] fix return type declarations 2019-08-26 09:52:58 +02:00
Alexander M. Turek
5072cfc7f8 [Serializer] fix return type declarations 2019-08-26 09:52:58 +02:00
Alexander M. Turek
70feaa407e [Translation] fix return type declarations 2019-08-26 09:52:58 +02:00
Alexander M. Turek
ca1fad471e [DI] fix return type declarations 2019-08-26 09:52:58 +02:00
Alexander M. Turek
9c63be489e [Config] fix return type declarations 2019-08-26 09:52:57 +02:00
Nicolas Grekas
05fe553666 [HttpKernel] Fix return type declarations 2019-08-26 09:50:50 +02:00
Alexander M. Turek
e0d79f71ed [Security] Fix return type declarations 2019-08-26 09:50:50 +02:00
Alexander M. Turek
c1b7118d7c [Routing] Fix return type declarations 2019-08-26 09:50:50 +02:00
Nicolas Grekas
ef5ead0005 [HttpFoundation] fix return type declarations 2019-08-26 09:50:50 +02:00
Fabien Potencier
610a4e978f feature #33308 [SecurityGuard] Deprecate returning non-boolean values from checkCredentials() (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

[SecurityGuard] Deprecate returning non-boolean values from checkCredentials()

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | prepares #33228
| License       | MIT
| Doc PR        | TODO

This PR suggests to deprecate implementations of `Symfony\Component\Security\Guard\AuthenticatorInterface::checkCredentials()` that return non-boolean values. This will allow us to add `bool` as return type declaration in the future.

https://github.com/nicolas-grekas/symfony/pull/26#discussion_r317084918

/cc @nicolas-grekas @weaverryan

Commits
-------

a0ca3afeca Deprecate returning non-boolean values from checkCredentials().
2019-08-25 08:59:38 +02:00
Yonel Ceruto
96a81bd7ad Fix closing tag in logs table 2019-08-24 19:32:44 -04:00
Kévin Dunglas
a414c0323a
[DomCrawler] Fix @throws 2019-08-24 00:39:04 +02:00
Alexander M. Turek
a0ca3afeca Deprecate returning non-boolean values from checkCredentials(). 2019-08-23 20:43:33 +02:00
Nicolas Grekas
1bbe5b853e Merge branch '4.4'
* 4.4:
  [HttpClient] Added TraceableHttpClient and WebProfiler panel
2019-08-23 19:20:36 +02:00
Jérémy Romey
51640012f1 [HttpClient] Added TraceableHttpClient and WebProfiler panel
Co-authored-by: Jérémy Romey <jeremy@free-agent.fr>
Co-authored-by: Timothée Barray <tim@amicalement-web.net>
2019-08-23 19:16:53 +02:00
Nicolas Grekas
9ce1f02501 Merge branch '4.4'
* 4.4:
  Add more return types after fixing a typo in my script
2019-08-23 14:18:57 +02:00
Nicolas Grekas
65d942010c Add more return types after fixing a typo in my script 2019-08-23 14:16:45 +02:00
Nicolas Grekas
9a84484a5c Merge branch '4.4'
* 4.4:
  fix merge
  [Debug] Remove superfluous deprecation notice
  Add missing return annotations on magic methods
  Fix mocks for ImmutableEventDispatcher.
2019-08-23 13:12:36 +02:00
Nicolas Grekas
3456446de5 fix merge 2019-08-23 13:11:38 +02:00
Nicolas Grekas
50bdb42c1a Merge branch '4.3' into 4.4
* 4.3:
  Fix mocks for ImmutableEventDispatcher.
2019-08-23 13:09:49 +02:00
Nicolas Grekas
94bd4023eb Merge branch '3.4' into 4.3
* 3.4:
  Fix mocks for ImmutableEventDispatcher.
2019-08-23 13:09:44 +02:00
Robin Chalas
5dd6468ec1 [Debug] Remove superfluous deprecation notice 2019-08-23 12:15:49 +02:00
Nicolas Grekas
5255ab89d2 minor #33300 Add missing return annotations on magic methods (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Add missing return annotations on magic methods

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

My script had a bug, spotted by reviewing #33267
These annotations express our intention to add real return types in a future major release (likely v6)

Commits
-------

10983fcb17 Add missing return annotations on magic methods
2019-08-23 11:57:17 +02:00
Nicolas Grekas
10983fcb17 Add missing return annotations on magic methods 2019-08-23 10:37:16 +02:00
Alexander M. Turek
874aaea75f Fix mocks for ImmutableEventDispatcher. 2019-08-23 10:05:57 +02:00
tien.xuan.vo
5c1f3a2414 [Messenger] Stop worker when it should stop 2019-08-23 13:45:45 +07:00
Thomas Calvet
a981fc3b50 [OptionsResolver] Display full nested options hierarchy in exceptions 2019-08-23 08:29:55 +02:00
Nicolas Grekas
0fc170a53a Merge branch '4.4'
* 4.4:
  Revert "bug #31620 [FrameworkBundle] Inform the user when save_path will be ignored (gnat42)"
  [Form][PropertyPathMapper] Avoid extra call to get config
  [HttpKernel] remove unused fixtures
2019-08-22 18:30:10 +02:00
Nicolas Grekas
ba784bf430 Merge branch '4.3' into 4.4
* 4.3:
  Revert "bug #31620 [FrameworkBundle] Inform the user when save_path will be ignored (gnat42)"
  [Form][PropertyPathMapper] Avoid extra call to get config
  [HttpKernel] remove unused fixtures
2019-08-22 18:30:04 +02:00
Nicolas Grekas
aeba22c4ad Merge branch '3.4' into 4.3
* 3.4:
  Revert "bug #31620 [FrameworkBundle] Inform the user when save_path will be ignored (gnat42)"
  [Form][PropertyPathMapper] Avoid extra call to get config
2019-08-22 18:29:54 +02:00
Nicolas Grekas
e91ae8bdad minor #33287 [HttpKernel] remove unused fixtures (Tobion)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpKernel] remove unused fixtures

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |    <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        |

those are remnants of bundle inheritance that has been removed in sf 4

Commits
-------

5ffec16396 [HttpKernel] remove unused fixtures
2019-08-22 18:25:57 +02:00
Nicolas Grekas
118dfa03b9 minor #33291 [Form][PropertyPathMapper] Avoid extra call to get config (fancyweb)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form][PropertyPathMapper] Avoid extra call to get config

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

3e2aada2d8 [Form][PropertyPathMapper] Avoid extra call to get config
2019-08-22 18:22:06 +02:00
Nicolas Grekas
d400aeb4f5 Merge branch '4.4'
* 4.4:
  Add return types to internal & magic methods when possible
  fixed CSC
  Add Address::fromString
  [DomCrawler] Added Crawler::matches(), ::closest(), ::outerHtml()
2019-08-22 15:39:30 +02:00
Nicolas Grekas
47322db110 minor #33294 Add return types to internal & magic methods when possible (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

Add return types to internal & magic methods when possible

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33236 #33228
| License       | MIT
| Doc PR        | -

Commits
-------

962dcfeed0 Add return types to internal & magic methods when possible
2019-08-22 15:37:25 +02:00
Nicolas Grekas
962dcfeed0 Add return types to internal & magic methods when possible 2019-08-22 15:18:41 +02:00
David Badura
e6ce9b560c display real handler if handler is wrapped 2019-08-22 15:10:44 +02:00
Fabien Potencier
3051c59eff fixed CSC 2019-08-22 11:15:28 +02:00
Fabien Potencier
8c2e128a1a feature #33091 [Mime] Add Address::fromString (gisostallenberg)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mime] Add Address::fromString

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33086
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/12128

This will allow to create a Address from a string such as 'Name <name@example.com>'
Example:
```php
$address = Address::fromString("Name <name@example.com>");
```

Commits
-------

75ea8d0d67 Add Address::fromString
2019-08-22 11:13:11 +02:00
Giso Stallenberg
75ea8d0d67 Add Address::fromString
This will allow to create an Address from a string such as 'Name <name@example.com>'
2019-08-22 11:10:30 +02:00
Grégoire Pineau
9535f9e8d6 [DomCrawler] Added Crawler::matches(), ::closest(), ::outerHtml() 2019-08-22 10:52:44 +02:00
Nicolas Grekas
a84a7f0206 Merge branch '4.4'
* 4.4:
  fix deps=low
  [VarExporter] fix support for PHP 7.4
  Use PHP 7.4 on deps=low
2019-08-22 10:40:55 +02:00
Nicolas Grekas
1981f06c88 Merge branch '4.3' into 4.4
* 4.3:
  fix deps=low
  [VarExporter] fix support for PHP 7.4
  Use PHP 7.4 on deps=low
2019-08-22 10:37:03 +02:00
Nicolas Grekas
0a25ccab8e fix deps=low 2019-08-22 10:16:11 +02:00
Nicolas Grekas
3979caf6ab Merge branch '3.4' into 4.3
* 3.4:
  Use PHP 7.4 on deps=low
2019-08-22 09:51:06 +02:00
Nicolas Grekas
1a036dc9ff [VarExporter] fix support for PHP 7.4 2019-08-22 09:33:08 +02:00
Thomas Calvet
3e2aada2d8 [Form][PropertyPathMapper] Avoid extra call to get config 2019-08-22 09:15:31 +02:00
Nicolas Grekas
21b87024f0 Use PHP 7.4 on deps=low 2019-08-22 08:53:14 +02:00
Tobias Schultze
5ffec16396 [HttpKernel] remove unused fixtures
those are remnants of bundle inheritance that has been removed in sf 4
2019-08-21 20:13:34 +02:00
Tobias Schultze
9ffa2e3a67 remove deprecated global resource dir and kernel.root_dir 2019-08-21 18:47:38 +02:00
Nicolas Grekas
9fb1277c7f Fix missing return types 2019-08-21 18:09:35 +02:00
Nicolas Grekas
b2ccf617c8 fix tests 2019-08-21 17:56:53 +02:00
Nicolas Grekas
f83ebd49b6 minor #33154 Parameter type leftovers (derrabus)
This PR was merged into the 5.0-dev branch.

Discussion
----------

Parameter type leftovers

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32179
| License       | MIT
| Doc PR        | N/A

Commits
-------

34eda04866 Added more parameter type declarations.
2019-08-21 17:54:28 +02:00
Nicolas Grekas
61821f3981 Merge branch '4.4'
* 4.4:
  ws fix
  Mark all dispatched event classes as final
2019-08-21 17:53:42 +02:00
Nicolas Grekas
153e081119 ws fix 2019-08-21 17:53:07 +02:00
Nicolas Grekas
f2e2df6a0c feature #33152 Mark all dispatched event classes as final (Tobion)
This PR was merged into the 4.4 branch.

Discussion
----------

Mark all dispatched event classes as final

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |
| License       | MIT
| Doc PR        |

I think we should mark all our Event classes as final. There is no point in people extending them as the libraries that use the event, will only dispatch this event. So extending events in user-land achieves nothing as the subclasses won't be dispatched.
I'm not talking about the base events that are meant to be extended like KernelEvent, but the leaf events like ExceptionEvent, ResponseEvent etc.
Then we can also make them real final in 5.0 as the events are value objects that should not be mocked.

Commits
-------

4bb38eec89 Mark all dispatched event classes as final
2019-08-21 17:50:31 +02:00
Nicolas Grekas
2fff132cbb typo 2019-08-21 17:39:13 +02:00
Nicolas Grekas
b390ed7d88 Merge branch '4.4'
* 4.4:
  Fixed tests on the Security and Form components
  Add return types to tests and final|internal|private methods
2019-08-21 17:37:45 +02:00
Tobias Schultze
4bb38eec89 Mark all dispatched event classes as final 2019-08-21 17:17:54 +02:00
Alexander M. Turek
c39fd9c973 Fixed tests on the Security and Form components 2019-08-21 17:17:31 +02:00
Alexander M. Turek
34eda04866 Added more parameter type declarations. 2019-08-21 17:16:25 +02:00
Nicolas Grekas
fc186bb78f Add return types to tests and final|internal|private methods 2019-08-21 17:14:41 +02:00
Nicolas Grekas
f07faaa757 Merge branch '4.4'
* 4.4:
  Do not extend the new SF 4.3 ControllerEvent so we can make it final
  Backported return type violation bugfixes.
  fix deprecated call to setLocale with null
  [FrameworkBundle] Fix BrowserKit assertions to make them compatible with Panther
  [HttpKernel] deprecate global dir to load resources from
2019-08-21 17:11:23 +02:00
Nicolas Grekas
8d8d3d4d40 minor #33280 fix deprecated call to setLocale with null (Tobion)
This PR was merged into the 4.4 branch.

Discussion
----------

fix deprecated call to setLocale with null

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |    <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        |

Fix a potentially invalid call since #33272

Commits
-------

26f9afe8d1 fix deprecated call to setLocale with null
2019-08-21 17:06:06 +02:00
Nicolas Grekas
f499083f78 feature #33258 [HttpKernel] deprecate global dir to load resources from (Tobion)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpKernel] deprecate global dir to load resources from

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | yes <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #31915   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        |

Replaces #31958

Here two example deprecations by adding files in the deprecated locations:
```
Overwriting the resource "@AcmeBundle/Resources/config/routing.yaml" with "/vagrant/src/Resources/AcmeBundle/config/routing.yaml" is deprecated since Symfony 4.4 and will be removed in 5.0.
Loading the file "foobar.yaml" from the global resource directory "/vagrant/src" is deprecated since Symfony 4.4 and will be removed in 5.0.
```

Commits
-------

aa82566f76 [HttpKernel] deprecate global dir to load resources from
2019-08-21 17:04:54 +02:00
Nicolas Grekas
2984ab7e4e Merge branch '4.3' into 4.4
* 4.3:
  Do not extend the new SF 4.3 ControllerEvent so we can make it final
  Backported return type violation bugfixes.
  [FrameworkBundle] Fix BrowserKit assertions to make them compatible with Panther
2019-08-21 17:03:51 +02:00
Nicolas Grekas
dd153d8dce bug #33282 [HttpKernel] Do not extend the new SF 4.3 ControllerEvent so we can make it final (Tobion)
This PR was merged into the 4.3 branch.

Discussion
----------

[HttpKernel] Do not extend the new SF 4.3 ControllerEvent so we can make it final

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | unlikely
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |
| License       | MIT
| Doc PR        |

See https://github.com/symfony/symfony/pull/33152#discussion_r313846346
Remember the ControllerEvent is new in SF 4.3 so we just go back to what it was before 4.3

Commits
-------

00140b6a7c Do not extend the new SF 4.3 ControllerEvent so we can make it final
2019-08-21 16:59:28 +02:00
Nicolas Grekas
72eaff8893 Merge branch '3.4' into 4.3
* 3.4:
  Backported return type violation bugfixes.
2019-08-21 16:58:38 +02:00
Tobias Schultze
00140b6a7c Do not extend the new SF 4.3 ControllerEvent so we can make it final 2019-08-21 16:40:57 +02:00
Alexander M. Turek
8877a013d7 Backported return type violation bugfixes. 2019-08-21 16:37:38 +02:00
Tobias Schultze
26f9afe8d1 fix deprecated call to setLocale with null 2019-08-21 15:33:13 +02:00
Alexander M. Turek
f30edcab65 Support for Twig 3. 2019-08-21 14:55:51 +02:00
Kévin Dunglas
2316dc36fb
[FrameworkBundle] Fix BrowserKit assertions to make them compatible with Panther 2019-08-21 14:46:38 +02:00
Christian Flothmann
0f4ed264d8 removed support for using null as the locale 2019-08-21 14:28:56 +02:00
Fabien Potencier
0a1e244626 removed legacy tests 2019-08-21 14:06:01 +02:00
Fabien Potencier
36a011a0ee Merge branch '4.4'
* 4.4:
  Removed calls to Twig\Environment::loadTemplate().
  [Intl] make polyfill classes abstract, fix edge case
  [Mime] Trim and remove line breaks from NamedAddress name arg
  deprecate support for null locales
  [TwigBridge] Mark all classes extending twig as @final
  [Mime] Remove NamedAddress
  [Messenger] remove patch release BC layer of durable and expiring delay
2019-08-21 14:05:09 +02:00
Nicolas Grekas
9475b2e82d bug #33275 [Intl] make polyfill classes abstract, fix edge case (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[Intl] make polyfill classes abstract, fix edge case

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

While working on return types, I keep stumbling on those classes that are `@internal`, but for which we must not add return types, because they're polyfills and are extended by stubs found in the `Resources` folder of the component.

Making the polyfills abstract fixes the linting issue.
This made me discover we have a glitch in the `getPattern()` implementation, that makes our version diverge from intl's. Fixed here too.

On 4.4 because let's not disrupt 3.4.

Commits
-------

c757b95aed [Intl] make polyfill classes abstract, fix edge case
2019-08-21 12:59:41 +02:00
Fabien Potencier
7046cac7f6 feature #33272 [Translation] deprecate support for null locales (xabbuh)
This PR was merged into the 4.4 branch.

Discussion
----------

[Translation] deprecate support for null locales

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

e6b6a9d33a deprecate support for null locales
2019-08-21 12:12:17 +02:00
Nicolas Grekas
c757b95aed [Intl] make polyfill classes abstract, fix edge case 2019-08-21 12:11:32 +02:00
Fabien Potencier
7aedfe7079 Merge branch '4.3' into 4.4
* 4.3:
  [Mime] Trim and remove line breaks from NamedAddress name arg
2019-08-21 10:50:18 +02:00
Fabien Potencier
58439e3166 bug #33216 [Mime] Trim and remove line breaks from NamedAddress name arg (maldoinc)
This PR was squashed before being merged into the 4.3 branch (closes #33216).

Discussion
----------

[Mime] Trim and remove line breaks from NamedAddress name arg

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | YES
| New feature?  | NO
| BC breaks?    | NO     <!-- see https://symfony.com/bc -->
| Deprecations? | NO <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | YES    <!-- please add some, will be required by reviewers -->
| Fixed tickets | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

This patch trims the name argument of named address in order to avoid some cases where the name is a non-empty input consisting of whitespace and line breaks which would lead to forming of addresses such as `" " <mail@example.org>` <sup>1</sup>

---

In a large Symfony codebase that deals with sending large volumes of email we encountered an issue after the Mailer was changed from PHPMailer to the Symfony Mailer component.

The issue: Some emails would not render correctly as either plaintext or html but instead the original email source with headers and quoted-printable content would render in clients such as MS Outlook 2003, later versions of Outlook and other clients do not seem affected.

After some investigation we found that the error came from a line that looked like this: `$message->addTo(new NamedAddress($contact->getEmailCanonical(), $contact->getFullName()))`.

The `getFullName` method simply concated the first/last name with a space in between. For contacts without either, this resulted in representation 1. This causes MS Outlook 2003 (potentially Outlook 2000 as well but this was not tested) to malfunction and completely fail to render the email.

This patch aims to fix the aforementioned issue.

Commits
-------

e491e3a594 [Mime] Trim and remove line breaks from NamedAddress name arg
2019-08-21 10:46:47 +02:00
Emirald Mateli
e491e3a594 [Mime] Trim and remove line breaks from NamedAddress name arg 2019-08-21 10:46:37 +02:00
Christian Flothmann
e6b6a9d33a deprecate support for null locales 2019-08-21 10:16:47 +02:00
Fabien Potencier
eb7d74e6c5 [Mime] Remove NamedAddress 2019-08-21 09:13:01 +02:00
Fabien Potencier
5a753b1428 minor #33245 [Messenger] remove patch release BC layer of durable and expiring delay (Tobion)
This PR was merged into the 4.4 branch.

Discussion
----------

[Messenger] remove patch release BC layer of durable and expiring delay

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets |
| License       | MIT
| Doc PR        |

Removes the small BC layer of #33127 from 4.3 in 4.4

Commits
-------

d5aaf44529 [Messenger] remove patch release BC layer of durable and expiring delay
2019-08-21 07:11:00 +02:00
Tobias Schultze
aa82566f76 [HttpKernel] deprecate global dir to load resources from 2019-08-21 00:57:10 +02:00
Nicolas Grekas
6f303b4fed [5.0] Add return types on internal|final|private methods 2019-08-20 23:44:01 +02:00
Nicolas Grekas
0fa6ef1826 Merge branch '4.4'
* 4.4:
  [4.4] Add return types on internal|final|private methods (bis)
  [Ldap] Add missing LdapUser::setPassword()
  Add types to roting and DI configuration traits.
2019-08-20 23:41:37 +02:00
Nicolas Grekas
22319a9935 minor #33264 [4.4] Add return types on internal|final|private methods (bis) (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[4.4] Add return types on internal|final|private methods (bis)

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Found while working on #33259

`: self` is used for final methods only. I'd have preferred using `: object` but that's not possible on PHP 7.1

Commits
-------

23faee406f [4.4] Add return types on internal|final|private methods (bis)
2019-08-20 23:39:47 +02:00
Nicolas Grekas
23faee406f [4.4] Add return types on internal|final|private methods (bis) 2019-08-20 23:22:06 +02:00
Nicolas Grekas
7eb5feec51 minor #33261 Add types to routing and DI configuration traits. (derrabus)
This PR was merged into the 4.4 branch.

Discussion
----------

Add types to routing and DI configuration traits.

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | I don't think so.
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #32179, #33228
| License       | MIT
| Doc PR        | N/A

This PR backports the type declarations added to the configurator traits of the Routing and DI components. These traits expose only final methods, so it should be pretty safe to add return types to them.

The only scenario I could make up where this change will break something is if a trait is used to override a method: https://3v4l.org/EAsk8 But I doubt that those traits are used that way.

On master, we've used the `object` return type for the fluent methods. That type is not available on 4.4 where we have to support php 7.1. I'm using `self` instead. Since the methods are final and thus cannot be overridden, I believe that we shouldn't run into covariance issues here, so `self` should be safe.

Commits
-------

1ca30c97e6 Add types to roting and DI configuration traits.
2019-08-20 23:07:54 +02:00
Nicolas Grekas
543e4013d0 bug #33263 [Ldap] Add missing LdapUser::setPassword() (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Ldap] Add missing LdapUser::setPassword()

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Required for password migrations.

Commits
-------

08dd4f3ae1 [Ldap] Add missing LdapUser::setPassword()
2019-08-20 23:06:27 +02:00
Nicolas Grekas
227286d7c3 Merge branch '4.4'
* 4.4:
  More docblock fixes
  fix test
2019-08-20 23:03:59 +02:00
Nicolas Grekas
af6cf3140d Merge branch '4.3' into 4.4
* 4.3:
  More docblock fixes
  fix test
2019-08-20 23:03:47 +02:00
Nicolas Grekas
7a0787c8bd Merge branch '3.4' into 4.3
* 3.4:
  More docblock fixes
2019-08-20 23:02:25 +02:00
Robin Chalas
08dd4f3ae1 [Ldap] Add missing LdapUser::setPassword() 2019-08-20 22:58:33 +02:00
Nicolas Grekas
9b78d53d0d More docblock fixes 2019-08-20 22:53:36 +02:00
Alexander M. Turek
1ca30c97e6 Add types to roting and DI configuration traits. 2019-08-20 21:45:11 +02:00
Fabien Potencier
37289a3bdc Merge branch '4.4'
* 4.4:
  Registers basic exception handler to handle early failures
2019-08-20 21:13:30 +02:00
Fabien Potencier
b7954640e3 bug #33260 [ErrorHandler] Registering basic exception handler to handle early failures (yceruto)
This PR was merged into the 4.4 branch.

Discussion
----------

[ErrorHandler] Registering basic exception handler to handle early failures

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This behavior was previously handled by the removed `ExceptionHandler` class in https://github.com/symfony/symfony/pull/32637.

As this method is mainly called during Kernel boot, where nothing is yet available, the Response content is always HTML. Otherwise, If all goes well on booting, this exception handler will be replaced in `DebugHandlersListener` class:
8073b8abfb/src/Symfony/Component/HttpKernel/EventListener/DebugHandlersListener.php (L139)

where the advanced exception handler mechanism is activated.

Commits
-------

a2077a2369 Registers basic exception handler to handle early failures
2019-08-20 21:09:10 +02:00
Yonel Ceruto
a2077a2369 Registers basic exception handler to handle early failures 2019-08-20 14:56:58 -04:00
Nicolas Grekas
4036357150 Merge branch '4.4'
* 4.4:
  some backports from master
  Add return types to internal|final|private methods
  [HttpFoundation] Precalculate session expiry timestamp
2019-08-20 18:53:57 +02:00
Nicolas Grekas
8073b8abfb some backports from master 2019-08-20 18:35:28 +02:00
Nicolas Grekas
32116184d7 Add return types to internal|final|private methods 2019-08-20 17:32:53 +02:00
Nicolas Grekas
b253f25933 feature #33169 [HttpFoundation] Precalculate session expiry timestamp (azjezz)
This PR was merged into the 4.4 branch.

Discussion
----------

[HttpFoundation] Precalculate session expiry timestamp

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #13955, #21423, #14625
| License       | MIT

Continued work from the original PR #21423 / #21857

Commits
-------

066000afa2 [HttpFoundation] Precalculate session expiry timestamp
2019-08-20 16:51:07 +02:00
Nicolas Grekas
322da9df6c Merge branch '4.4'
* 4.4:
  cs fix
  Fix inconsistent return points.
  [Config] Add handling for ignored keys in ArrayNode::mergeValues.
  Fix inconsistent return points.
  [Security/Core] UserInterface::getPassword() can return null
  cs fix
  cs fix
  Fix missing exporter in PHPUnit constraint poylfill
  added `Process::getLastOutputTime()` method
  [Router] Fix TraceableUrlMatcher behaviour with trailing slash
  [HttpKernel] Remove outdated docblock comment
  Fix handling for session parameters
  Revert "bug #33092 [DependencyInjection] Improve an exception message (fabpot)"
2019-08-20 16:46:00 +02:00
Nicolas Grekas
225bf41e3b Merge branch '4.3' into 4.4
* 4.3:
  cs fix
  Fix inconsistent return points.
  [Config] Add handling for ignored keys in ArrayNode::mergeValues.
  Fix inconsistent return points.
  [Security/Core] UserInterface::getPassword() can return null
  [Router] Fix TraceableUrlMatcher behaviour with trailing slash
  Revert "bug #33092 [DependencyInjection] Improve an exception message (fabpot)"
2019-08-20 16:44:19 +02:00
Nicolas Grekas
5ec6ff378b cs fix 2019-08-20 16:41:44 +02:00
Alexander M. Turek
c26c53596e Fix inconsistent return points. 2019-08-20 16:27:59 +02:00
Nicolas Grekas
c1e0c1b05f minor #33108 Revert "bug #33092 [DependencyInjection] Improve an exception message" (nicolas-grekas)
This PR was merged into the 4.3 branch.

Discussion
----------

Revert "bug #33092 [DependencyInjection] Improve an exception message"

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

As reminded by @ro0NL in https://github.com/symfony/symfony/pull/33092#issuecomment-520138148, it looks like we forgot that `CheckDefinitionValidityPass` already checks and suggests for leading slashes.

Why didn't you get the exception from `CheckDefinitionValidityPass` @fabpot?

Commits
-------

ed590ca16b Revert "bug #33092 [DependencyInjection] Improve an exception message (fabpot)"
2019-08-20 16:12:03 +02:00
Nicolas Grekas
c3ccd2aee5 bug #33124 [Config] Add handling for ignored keys in ArrayNode::mergeValues. (Alexandre Parent)
This PR was squashed before being merged into the 4.3 branch (closes #33124).

Discussion
----------

[Config] Add handling for ignored keys in ArrayNode::mergeValues.

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #33101
| License       | MIT
| Doc PR        | N/A

Fix case where normalized data accepting and keeping ignored keys is rejected during merge.

Commits
-------

311e1c4e9e [Config] Add handling for ignored keys in ArrayNode::mergeValues.
2019-08-20 16:11:21 +02:00
Alexandre Parent
311e1c4e9e [Config] Add handling for ignored keys in ArrayNode::mergeValues. 2019-08-20 16:11:15 +02:00
Nicolas Grekas
aefbc93a07 Merge branch '3.4' into 4.3
* 3.4:
  Fix inconsistent return points.
  [Security/Core] UserInterface::getPassword() can return null
  [Router] Fix TraceableUrlMatcher behaviour with trailing slash
2019-08-20 16:07:54 +02:00
Nicolas Grekas
9672f4c98f bug #33244 [Router] Fix TraceableUrlMatcher behaviour with trailing slash (Xavier Leune)
This PR was merged into the 3.4 branch.

Discussion
----------

[Router] Fix TraceableUrlMatcher behaviour with trailing slash

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #32149
| License       | MIT
| Doc PR        | ¤
<!--
Replace this notice by a short README for your feature/bugfix. This will help people
understand your PR and can be used as a start for the documentation.

Additionally (see https://symfony.com/roadmap):
 - 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 4.4.
 - Legacy code removals go to the master branch.
-->
This pull requests fixes the bug #32149. This issue was about TraceableUrlMatcher having a wrong behaviour regarding trailing slashes (according to UrlMatcher and documentation).

With this pull requests, the test class TraceableUrlMatcherTest now extends UrlMatcherTest, to prevent such behaviour digression.

Thanks @nicolas-grekas for his feedback on the issue #32149

Commits
-------

fd1cb443fd [Router] Fix TraceableUrlMatcher behaviour with trailing slash
2019-08-20 15:36:35 +02:00
Nicolas Grekas
727d431bf2 minor #33257 [Security/Core] UserInterface::getPassword() can return null (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security/Core] UserInterface::getPassword() can return null

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Our very own `User` class can return null already.

Commits
-------

00d7f8cde7 [Security/Core] UserInterface::getPassword() can return null
2019-08-20 15:35:21 +02:00
Nicolas Grekas
8069b58299 minor #33252 Fix inconsistent return points (derrabus)
This PR was merged into the 3.4 branch.

Discussion
----------

Fix inconsistent return points

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #17201 in preparation for #33228
| License       | MIT
| Doc PR        | N/A

Inconsistent return points in methods prevent adding return types. I thought, I'll give it a try and fix them. After this PR, PhpStorm's inspection still finds 39 issues, but as far as I can tell, they're either false positives or fixture code.

Commits
-------

f5b6ee9de1 Fix inconsistent return points.
2019-08-20 15:34:30 +02:00
Alexander M. Turek
f5b6ee9de1 Fix inconsistent return points. 2019-08-20 15:31:17 +02:00
Nicolas Grekas
00d7f8cde7 [Security/Core] UserInterface::getPassword() can return null 2019-08-20 15:10:28 +02:00
Nicolas Grekas
a2ef397ea3 Merge branch '4.3' into 4.4
* 4.3:
  cs fix
  cs fix
  [HttpKernel] Remove outdated docblock comment
  Fix handling for session parameters
2019-08-20 14:49:24 +02:00
Nicolas Grekas
2c1f349602 Merge branch '3.4' into 4.3
* 3.4:
  cs fix
  [HttpKernel] Remove outdated docblock comment
2019-08-20 14:49:02 +02:00
Nicolas Grekas
55a484dc20 cs fix 2019-08-20 14:35:37 +02:00
Nicolas Grekas
974b77e781 cs fix 2019-08-20 13:59:54 +02:00
Karoly Gossler
0e7bf6fb52 added Process::getLastOutputTime() method 2019-08-20 11:16:47 +02:00
Nicolas Grekas
c12e9f9d9d Merge branch '4.4'
* 4.4:
  [Monolog] Fixed ElasticsearchLogstashHandler with monolog 2+
  [DI] add return-types to generated containers
  Typo - Fix bad classnames in Exceptions docblocks
  [Ldap] Make LdapUser implement EquatableInterface
2019-08-19 22:01:34 +02:00
Tobias Schultze
d5aaf44529 [Messenger] remove patch release BC layer of durable and expiring delay 2019-08-19 20:02:16 +02:00
Fabien Potencier
b681e935ad minor #33242 [DI] add return-types to generated containers (nicolas-grekas)
This PR was merged into the 4.4 branch.

Discussion
----------

[DI] add return-types to generated containers

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

A chunk of #33236 ready for 4.4

Commits
-------

917091955c [DI] add return-types to generated containers
2019-08-19 17:58:03 +02:00
Fabien Potencier
c098374d21 bug #33239 [Ldap] Make LdapUser implement EquatableInterface (chalasr)
This PR was merged into the 4.4 branch.

Discussion
----------

[Ldap] Make LdapUser implement EquatableInterface

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Bugfix because it is required for password migrations https://github.com/symfony/symfony/blob/4.4/src/Symfony/Component/Ldap/Security/LdapUserProvider.php#L128

Commits
-------

ae255095ea [Ldap] Make LdapUser implement EquatableInterface
2019-08-19 17:56:55 +02:00
Xavier Leune
fd1cb443fd [Router] Fix TraceableUrlMatcher behaviour with trailing slash 2019-08-19 17:56:40 +02:00
Nicolas Grekas
917091955c [DI] add return-types to generated containers 2019-08-19 16:04:49 +02:00
Mdewet
7d1fefe8b8 Typo - Fix bad classnames in Exceptions docblocks 2019-08-19 15:54:22 +02:00
Robin Chalas
ae255095ea [Ldap] Make LdapUser implement EquatableInterface 2019-08-19 14:33:50 +02:00
Fabien Potencier
3feb66d1ae Merge branch '4.4'
* 4.4:
  [Mailer] removed the auth mode DSN option and support in the eSMTP transport
2019-08-19 14:21:25 +02:00
Fabien Potencier
ce372672d0 feature #33237 [Mailer] Remove the auth mode DSN option and support in the eSMTP transport (fabpot)
This PR was merged into the 4.4 branch.

Discussion
----------

[Mailer] Remove the auth mode DSN option and support in the eSMTP transport

| Q             | A
| ------------- | ---
| Branch?       | 4.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | yes     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | -

The authentication mode can be automatically negotiated between the Mailer and the SMTP server. There is an option to force it to a given auth mode, but I don't see any valid use case. So, let's remove that feature.

Commits
-------

34cbda53c4 [Mailer] removed the auth mode DSN option and support in the eSMTP transport
2019-08-19 14:19:32 +02:00
Robin Chalas
841c0b041f [HttpKernel] Remove outdated docblock comment 2019-08-19 13:48:36 +02:00
Nicolas Grekas
034c06e181 [Mailer] conflict with symfony/sendgrid-mailer < 4.4 2019-08-19 13:44:21 +02:00