Commit Graph

34120 Commits

Author SHA1 Message Date
Christian Flothmann
7c9dffe2e5 Merge branch '3.4' into 4.2
* 3.4:
  relax assertions in tests
  [Validator] Translate messages into Japanese
  Fix Thai translation in validators.th.xlf
  [FramworkBundle] mark any env vars found in the ide setting as used
2019-05-01 07:55:04 +02:00
Christian Flothmann
9a9134f4e4 do not choke on not existing mapping field 2019-05-01 07:27:43 +02:00
Grégoire Pineau
312a456e04 [Workflow] Fixed dumping when many transition with same name exist 2019-04-30 17:32:30 +02:00
Roland Franssen
7294b59c65 [Validator] Allow intl timezones 2019-04-30 14:55:27 +02:00
Fabien Potencier
1c110fa1f7 bug #31325 [Intl] Extra timezone tests (ro0NL)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Intl] Extra timezone tests

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes   (including intl-data group)
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Guarantees timezone data integrity. Ideally to go before #31292 :)

Commits
-------

a3cac2b4c9 [Intl] Extra timezone tests
2019-04-30 14:45:54 +02:00
Christian Flothmann
730df0860c relax assertions in tests 2019-04-30 14:26:26 +02:00
Ondrej Exner
648832823f
fix ConsoleFormatter - call to a member function format() on string 2019-04-30 10:19:16 +02:00
Roland Franssen
a3cac2b4c9 [Intl] Extra timezone tests 2019-04-30 09:30:15 +02:00
Roland Franssen
4f2bba7cb5 [Validator] Extra timezone tests 2019-04-30 09:08:53 +02:00
Fabien Potencier
8fdcd6e6ef feature #31318 [Intl] Compile localized timezone offset name (ro0NL)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Intl] Compile localized timezone offset name

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes-ish
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes (including intl-data group)
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

A tiny follow up of #31295

Commits
-------

7a40d207b7 [Intl] Compile localized timezone offset name
2019-04-29 19:35:47 +02:00
Fabien Potencier
0c78413b1e bug #31307 [FrameworkBundle] Allow env variables in scoped_client base_uri (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[FrameworkBundle] Allow env variables in scoped_client base_uri

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

Commits
-------

b2c885dfde [FrameworkBundle] Allow env variables in scoped_client base_uri
2019-04-29 12:09:28 +02:00
Fabien Potencier
fd755b46f8 feature #31248 [Translator] Add sources when dumping qt files (Stadly)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Translator] Add sources when dumping qt files

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

This PR implements similar functionality as #30909, but for Qt files. Currently, only the Qt element `location` is supported, so only `sources` metadata is included in the dump.

Commits
-------

ff7577d650 Add sources when dumping qt files
2019-04-29 12:05:16 +02:00
Fabien Potencier
7cd1bdd254 minor #31306 [DI] Improve exception message on missing $ of named argument (jschaedl)
This PR was squashed before being merged into the 4.3-dev branch (closes #31306).

Discussion
----------

[DI] Improve exception message on missing $ of named argument

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | -
| New feature?  | -
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | #31265   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | not related
<!--
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.
-->

### Description

As described in #31265, missing the prefix `$` in an argument name:

```
    App\Word\WordChecker:
        arguments:
            checkers:
                - '@App\Word\Checker\StaticWordChecker'
                - '@App\Word\Checker\BannedWorldListChecker'
```

led to the following error:

`Invalid service "App\Word\WordChecker": the value of argument "checkers" of method "__construct()" must be null, an instance of Symfony\Component\DependencyInjection\Reference or an instance of Symfony\Component\DependencyInjection\Definition, array given.`

As this error message is quite confusing I changed it to:

`Invalid service "App\Word\WordChecker":  Did you forget to add the "$" prefix to argument checkers`

### Todo

- [x] add a unit test

Commits
-------

d0e44996f9 [DI] Improve exception message on missing $ of named argument
2019-04-29 11:48:47 +02:00
Jan Schädlich
d0e44996f9 [DI] Improve exception message on missing $ of named argument 2019-04-29 11:48:38 +02:00
Ruud Kamphuis
0945f27e81 Made debug:container and debug:autowiring ignore starting backslash in service id 2019-04-29 11:41:18 +02:00
Fabien Potencier
707b1dfb5e feature #31280 [WebServerBundle] Change the default pidfile location to cache directory (jschaedl)
This PR was squashed before being merged into the 4.3-dev branch (closes #31280).

Discussion
----------

[WebServerBundle] Change the default pidfile location to cache directory

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no <!-- 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 | #29160   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | tbd.

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

Commits
-------

2e14b6e891 [WebServerBundle] Change the default pidfile location to cache directory
2019-04-29 11:33:26 +02:00
Jan Schädlich
2e14b6e891 [WebServerBundle] Change the default pidfile location to cache directory 2019-04-29 11:33:16 +02:00
Roland Franssen
7a40d207b7 [Intl] Compile localized timezone offset name 2019-04-29 11:29:26 +02:00
Issei.M
e6e98363b0 [Validator] Translate messages into Japanese 2019-04-29 10:34:27 +02:00
Roland Franssen
ebe6179eb6 [Form] Remove default option grouping in TimezoneType 2019-04-29 10:29:58 +02:00
Fabien Potencier
1f388aee46 feature #31262 [Intl] Update timezones to ICU 64.2 + compile zone to country mapping (ro0NL)
This PR was squashed before being merged into the 4.3-dev branch (closes #31262).

Discussion
----------

[Intl] Update timezones to ICU 64.2 + compile zone to country mapping

| Q             | A
| ------------- | ---
| Branch?       | master
| 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 | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

This PR compiles the zone to country mapping (and vice versa) from ICU data:
https://github.com/unicode-org/icu/blob/master/icu4c/source/data/misc/windowsZones.txt

I've recompiled timezones on master due #31162, i should do it once more when it's merged upstream.

Having this data allows compatibility between PHP timezones and ICU;
- https://www.php.net/manual/en/intltimezone.getregion.php
- https://www.php.net/manual/en/class.datetimezone.php#datetimezone.constants.per-country

For the timezone validator in Symfony, this would be required to have a compatible "regions" option, once it supports ICU as well (https://github.com/symfony/symfony/issues/28836#issuecomment-483769029)

Commits
-------

3018a7a59c [Intl] Update timezones to ICU 64.2 + compile zone to country mapping
2019-04-29 09:03:37 +02:00
Roland Franssen
3018a7a59c [Intl] Update timezones to ICU 64.2 + compile zone to country mapping 2019-04-29 09:03:27 +02:00
Fabien Potencier
0cd5c18e7f minor #31049 [Serializer] [DX] NotNormalizableValueException should note which attribute failed to denormalize when possible (Simperfit)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Serializer] [DX] NotNormalizableValueException should note which attribute failed to denormalize when possible

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | #29230   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR

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

This is the idea of a fix discussed with @stof about the improvment of serializer error message.  Now we can try a implementation lis this one. This is linked to EUFOSSA even if this has been done not in the hackathon.

Commits
-------

59942b40d1 [Serializer] [DX] NotNormalizableValueException should note which attribute failed to denormalize when possible
2019-04-29 08:58:33 +02:00
Fabien Potencier
dc4fb76717 bug #31302 [FramworkBundle] mark any env vars found in the ide setting as used (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[FramworkBundle] mark any env vars found in the ide setting as used

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

Commits
-------

e461d36ec4 [FramworkBundle] mark any env vars found in the ide setting as used
2019-04-29 08:51:40 +02:00
Fabien Potencier
33e3222bfd minor #31312 [Security] Change the phrasing of the deauthenticated event (Simperfit)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Security] Change the phrasing of the deauthenticated event

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | none <!-- #-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.
-->

Fixing @fabpot's review.

Commits
-------

fa92272dc1 [Security] Change the phrasing of the deauthenticated event
2019-04-29 08:48:55 +02:00
Amrouche Hamza
fa92272dc1
[Security] Change the phrasing of the deauthenticated event 2019-04-29 08:41:58 +02:00
Fabien Potencier
73b0ca00fa bug #31301 [Intl] Fix LocaleDataGenerator (ro0NL)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Intl] Fix LocaleDataGenerator

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| 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 -->

Forgotten in #28846

The `getName()` method for scripts/regions/languages is stilled needed during locale generation.

Commits
-------

137ce3f6d2 [Intl] Fix LocaleDataGenerator
2019-04-29 08:35:28 +02:00
Fabien Potencier
ac4b32257c feature #31295 [Intl] Add timezone offset utilities (ro0NL)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Intl] Add timezone offset utilities

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes (including intl-data group)
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Commits
-------

b166e33e29 [Intl] Add timezone offset utilities
2019-04-29 08:33:14 +02:00
Fabien Potencier
002b48dfc3 minor #31308 [HttpClient] fix skipping h2push test case (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[HttpClient] fix skipping h2push test case

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

Commits
-------

3aaa742d40 [HttpClient] fix skipping h2push test case
2019-04-29 08:25:19 +02:00
MrNicodemuz
d4337fc8a2 Fix Thai translation in validators.th.xlf
The translated message is wrongly prefixed with a "T" character. The correct translation should read as "ค่านี้ถูกใช้งานไปแล้ว".
2019-04-29 08:19:29 +02:00
Samuel ROZE
584c21b137 feature #30958 [Messenger] Allows to register handlers on a specific transport (sroze)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Allows to register handlers on a specific transport

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #30110
| License       | MIT
| Doc PR        | symfony/symfony-docs#11236

With the #30008 pull-request in, we can now do the following:
```yaml
framework:
    messenger:
        transports:
            events:
                dsn: amqp://guest:guest@127.0.0.1/%2f/events
                options:
                    queues:
                        3rdparty:
                            binding_keys: [ 3rdparty ]
                        projection:
                            binding_keys: [ projection ]

            events_3rdparty: amqp://guest:guest@127.0.0.1/%2f/events?queues[3rdparty]
            events_projection: amqp://guest:guest@127.0.0.1/%2f/events?queues[projection]

        routing:
            'App\Message\RegisterBet': events
```

This will bind two queues to the `events` exchange, fantastic:
<img width="325" alt="Screenshot 2019-04-07 at 10 26 27" src="https://user-images.githubusercontent.com/804625/55680861-af373580-591f-11e9-8f1e-2d3b6ddba2fd.png">

---

Now, in this setup, the message will be duplicated within the `3rdparty` & `projection` queues. If you just run the consumer for each transport, it will consume the message and call all the handlers. You can't do different things based on which queue you have consumed the message. **This pull-request adds the following feature:**

```php
class RegisterBetHandler implements MessageSubscriberInterface
{
    public function __invoke(RegisterBet $message)
    {
        // Do something only when the message comes from the `events_projection` transport...
    }

    /**
     * {@inheritdoc}
     */
    public static function getHandledMessages(): iterable
    {
        yield RegisterBet::class => [
            'from_transport' => 'events_projection',
        ];
    }
}
```

---

In the debugger, it looks like this:
<img width="649" alt="Screenshot 2019-04-07 at 10 29 55" src="https://user-images.githubusercontent.com/804625/55680892-1d7bf800-5920-11e9-80f7-853f0201c6d8.png">

Commits
-------

f0b2acd67d Allows to register handlers on a specific transport (and get rid of this handler alias)
2019-04-28 22:25:38 +01:00
Nicolas Grekas
3aaa742d40 [HttpClient] fix skipping h2push test case 2019-04-28 23:09:39 +02:00
Nicolas Grekas
b2c885dfde [FrameworkBundle] Allow env variables in scoped_client base_uri 2019-04-28 22:17:15 +02:00
Samuel ROZE
8aa02358d6 minor #31298 [Messenger] Ensure that a TransportException is thrown on redis error (chalasr)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Ensure that a TransportException is thrown on redis error

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

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

Commits
-------

1857395137 [Messenger] Ensure that a TransportException is thrown on redis error
2019-04-28 16:31:46 +01:00
Samuel ROZE
f0b2acd67d Allows to register handlers on a specific transport (and get rid of this handler alias) 2019-04-28 16:17:32 +01:00
Samuel ROZE
bf765c0d32 Rephrase Doctrine Bridge changelog 2019-04-28 16:16:24 +01:00
Samuel ROZE
67e1709205 feature #31061 [BridgeDoctrineMessenger] Doctrine ping connection middleware (insidestyles)
This PR was squashed before being merged into the 4.3-dev branch (closes #31061).

Discussion
----------

[BridgeDoctrineMessenger] Doctrine ping connection middleware

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

- Check and reconnect if mysql has gone away:

        <service id="messenger.middleware.doctrine_ping_connection" class="Symfony\Bridge\Doctrine\Messenger\DoctrinePingConnectionMiddleware" public="false">
            <argument type="service" id="doctrine" />
        </service>

- Close and save opened connections (not active worker):

        <service id="messenger.middleware.doctrine_close_connection" class="Symfony\Bridge\Doctrine\Messenger\DoctrineCloseConnectionMiddleware" public="false">
            <argument type="service" id="doctrine" />
        </service>

Commits
-------

6fd9f6a859 [BridgeDoctrineMessenger] Doctrine ping connection middleware
2019-04-28 16:15:24 +01:00
insidestyles
6fd9f6a859 [BridgeDoctrineMessenger] Doctrine ping connection middleware 2019-04-28 16:15:12 +01:00
Samuel ROZE
96a7907979 feature #31282 [Messenger] Add WorkerStoppedEvent (chalasr)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Add WorkerStoppedEvent

| Q             | A
| ------------- | ---
| Branch?       | 4.3
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

In 4.2, one was able to decorate a transport and hook into `TransportInterface::stop()` to perform some business tasks when the `messenger:consume` process gets killed.
In 4.3 the `stop()` logic has been moved to `Worker` which cannot be decorated when used via `messenger:consume`.
This PR adds a marker event dispatched when the worker is stopped to provide the same capability.

Briefly discussed with @weaverryan.
My use case:
I have a temporary CSV file locally which grows while consuming jobs.
This file is uploaded to AWS S3 and squashed once a while (every 5minutes). It is also uploaded when the `messenger:consume` process gets stopped (to store the remaining lines).
For the former (time-based upload), I can listen on `WorkflowMessageHandledEvent` to make the upload happens in case the 5 minutes delay is elapsed. This solves the latter.

Commits
-------

0e7898b622 [Messenger] Add WorkerStoppedEvent
2019-04-28 14:59:42 +01:00
Robin Chalas
1857395137 [Messenger] Ensure that a TransportException is thrown on redis error 2019-04-28 15:33:50 +02:00
Robin Chalas
f24e9a4973 feature #31138 [Security] Dispatch an event when "logout user on change" steps in (Simperfit)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Security] Dispatch an event when "logout user on change" steps in

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | #26902   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/11450 <!-- 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.
-->

This adds a new event when the user has been changed and has been log out from the apps, it allow someone to register to this event and do something with either to token or the refreshedUser.

Commits
-------

40e42183b8 [Security] Dispatch an event when "logout user on change" steps in
2019-04-28 14:04:43 +02:00
Nicolas Grekas
e461d36ec4 [FramworkBundle] mark any env vars found in the ide setting as used 2019-04-28 11:47:48 +02:00
Roland Franssen
137ce3f6d2 [Intl] Fix LocaleDataGenerator 2019-04-28 11:20:27 +02:00
Roland Franssen
b166e33e29 [Intl] Add timezone offset utilities 2019-04-28 09:12:45 +02:00
Fabien Potencier
e9aaaafbbb Merge branch '4.2'
* 4.2:
  [TwigBridge] Require twig ^1.40|^2.9
  [Serializer] Fix tests
  Use the apply tag instead of the filter tag
  Updated some translation files
  [Translator] Preserve default domain when extracting strings from php files
2019-04-28 08:09:58 +01:00
Fabien Potencier
454574b0a3 Merge branch '3.4' into 4.2
* 3.4:
  [TwigBridge] Require twig ^1.40|^2.9
  [Serializer] Fix tests
  Use the apply tag instead of the filter tag
  Updated some translation files
  [Translator] Preserve default domain when extracting strings from php files
2019-04-28 08:09:27 +01:00
Fabien Potencier
c3f57d0015 minor #31296 [Serializer] Fix tests (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] Fix tests

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

#30888 added some tests on master which fail when `property-info <3.4.13` is installed.
This bumps the constraint on 3.4 which will fix the low-deps build once merged up to master.

Commits
-------

d25f650005 [Serializer] Fix tests
2019-04-28 08:07:27 +01:00
Fabien Potencier
36c3af4d47 bug #31290 [TwigBundle] Use the apply tag instead of the filter tag (greg0ire)
This PR was merged into the 3.4 branch.

Discussion
----------

[TwigBundle] Use the apply tag instead of the filter tag

The filter has been deprecated in favor of the apply tag since Twig 2.9,
see https://twig.symfony.com/doc/2.x/tags/filter.html (apply does not
seem to have its own documentation page yet).

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

⚠ Note: don't merge until Twig 2.9 and 1.40 are released, or this will block symfony releases ⚠

Commits
-------

9c11b98d0a Use the apply tag instead of the filter tag
2019-04-28 08:00:42 +01:00
Robin Chalas
0e29e392f2 [TwigBridge] Require twig ^1.40|^2.9 2019-04-28 00:12:08 +02:00
Robin Chalas
d25f650005 [Serializer] Fix tests 2019-04-27 23:20:35 +02:00
Grégoire Paris
9c11b98d0a
Use the apply tag instead of the filter tag
The filter has been deprecated in favor of the apply tag since Twig 2.9,
see https://twig.symfony.com/doc/2.x/tags/filter.html (apply does not
seem to have its own documentation page yet).
2019-04-27 20:55:44 +02:00
Fabien Potencier
e9db551ab0 feature #31242 Update LoggingTranslator to log the change of a locale (gmponos)
This PR was squashed before being merged into the 4.3-dev branch (closes #31242).

Discussion
----------

Update LoggingTranslator to log the change of a locale

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

I would like to see inside my logs that the translator changed the locale. I've had a case that I spent significant amount of time trying to debug it.

Commits
-------

20380f9afe Update LoggingTranslator to log the change of a locale
2019-04-27 19:49:41 +01:00
Mponos George
20380f9afe Update LoggingTranslator to log the change of a locale 2019-04-27 19:49:34 +01:00
Robin Chalas
0e7898b622 [Messenger] Add WorkerStoppedEvent 2019-04-27 20:22:09 +02:00
Fabien Potencier
09e5cc1096 feature #30917 [Messenger] Add a redis stream transport (soyuka, alexander-schranz)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Add a redis stream transport

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | Yes
| Fixed tickets | #28681
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/11341

As discussed in #28681 this will refractor @soyuka implementation of redis using the redis stream features so we don't need to handle parking the messages ourself and redis is doing it for us.

Some interesting links about streams:

 - https://redis.io/topics/streams-intro
 - https://brandur.org/redis-streams

```
+-----------R
|    GET    | -> XREADGROUP
+-----------+
      |
      | handleMessage
      V
+-----------+  No
|  failed?  |---------------------------+
+-----------+                           |
      |                                 |
      | Yes                             |
      V                                 |
+-----------+  No                       |
|   retry?  |---------------------------+
+-----------+                           |
      |                                 |
      | Yes                             |
      V                                 V
+-----------R                     +-----------R
|   REJECT  | -> XDEL             |    ACK    | -> XACK
+-----------+                     +-----------+
```

**GET**: Will use `XREADGROUP` to read the one  message from the stream
**REJECT**: Reject will just remove the message with `XDEL` from the stream as adding it back to the stream is handled by symfony worker itself
**ACK**: Will use the `XACK` Method to ack the message for the specific group

The sender will still be simple by calling the `XADD` redis function.

#EU-FOSSA

Commits
-------

ff0b8554ea Refractor redis transport using redis streams
7162d2ec1d Implement redis transport
2019-04-27 17:54:07 +01:00
Jordi Rejas
1d5aaf63f5 Updated some translation files 2019-04-27 17:49:24 +01:00
Fabien Potencier
d8f7553f6c minor #31259 Make error message more clear (fabpot)
This PR was merged into the 4.3-dev branch.

Discussion
----------

Make error message more clear

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | n/a
| License       | MIT
| Doc PR        | n/a

When you get the following error message `No transport supports the given DSN "...".`, you might think that this relates to a mailer transport or a messenger transport. Let's make this real clear.

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

Commits
-------

cdcb6c9969 made error message more clear
2019-04-27 17:41:39 +01:00
Fabien Potencier
cdcb6c9969 made error message more clear 2019-04-27 17:32:05 +01:00
Fabien Potencier
36c4571cce minor #31291 [HttpClient] fix typo (machour)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[HttpClient] fix typo

| Q             | A
| ------------- | ---
| Branch?       | 3.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? | no <!-- 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 | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- 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.
-->

Commits
-------

c5819f444d [HttpClient] fix typo
2019-04-27 17:26:46 +01:00
Fabien Potencier
016425eefd minor #30888 [serializer] extract normalizer tests to traits (dbu)
This PR was squashed before being merged into the 4.3-dev branch (closes #30888).

Discussion
----------

[serializer] extract normalizer tests to traits

eufossa

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

As discussed with @joelwurtz, extract normalizer functionality tests into traits to ensure consistent behaviour of all normalizers.

* [x] Rebase when #30977, #30950 and #30907 are merged to master **blocker**
* [x] Clean up order of trait inclusion and methods in the tests
* [x] Clean up fixture classes of the traits. I started having one class named the same as the trait, where possible

Stuff that we should do eventually, but can also do in separate pull requests, after this one has been merged:
* [ ] Extract all features that we can (the existing normalizer tests should more or less only have the legacy tests in them, all functionality should be in trait)
* [ ] Run test coverage and increase coverage so that we cover all important features and all relevant error cases.

Commits
-------

2b6ebea73c [serializer] extract normalizer tests to traits
2019-04-27 17:25:46 +01:00
David Buchmann
2b6ebea73c [serializer] extract normalizer tests to traits 2019-04-27 17:25:36 +01:00
Fabien Potencier
148dca6931 bug #31275 [Translator] Preserve default domain when extracting strings from php files (Stadly)
This PR was squashed before being merged into the 3.4 branch (closes #31275).

Discussion
----------

[Translator] Preserve default domain when extracting strings from php files

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

Use default domain when extracting translation strings with `null` as domain.

Commits
-------

ca77d9a33e [Translator] Preserve default domain when extracting strings from php files
2019-04-27 17:22:08 +01:00
Stadly
ca77d9a33e [Translator] Preserve default domain when extracting strings from php files 2019-04-27 17:21:58 +01:00
Fabien Potencier
66fd6c5d38 bug #31260 Make the email validator a hard requirement of mailer (fabpot)
This PR was merged into the 4.3-dev branch.

Discussion
----------

Make the email validator a hard requirement of mailer

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes-ish
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | n/a
| License       | MIT
| Doc PR        | n/a

I think it makes sense to have the email address validator as a hard requirement of Mailer... as I don't see how you can send emails without an email address :)

Commits
-------

5ad2cb1b5a made the email validator a hard requirement of mailer
2019-04-27 16:52:45 +01:00
Fabien Potencier
73d303a1fe feature #31195 [Form] Add intltimezone input to TimezoneType (ro0NL)
This PR was squashed before being merged into the 4.3-dev branch (closes #31195).

Discussion
----------

[Form] Add intltimezone input to TimezoneType

| Q             | A
| ------------- | ---
| Branch?       | master
| 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 | #22302 (ref #28836)
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/issues/11463

cc @rvanlaak

Commits
-------

e169dfb968 [Form] Add intltimezone input to TimezoneType
2019-04-27 15:44:11 +01:00
Roland Franssen
e169dfb968 [Form] Add intltimezone input to TimezoneType 2019-04-27 15:44:05 +01:00
Fabien Potencier
1725a3c734 feature #31134 [Routing] do not encode comma in query and fragment (Tobion)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Routing] do not encode comma in query and fragment

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | #27266
| License       | MIT
| Doc PR        |

Commits
-------

76f6c97416 [Routing] allow comma and other reserved chars without special meaing to not be encoded in the query and fragment
2019-04-27 15:39:34 +01:00
Angel Fernando Quiroz Campos
9c76b29d14 [TwigBridge] bootstrap4 file_widget: allow setting label attributes declared in label_attr 2019-04-27 15:30:58 +01:00
Mehdi Achour
c5819f444d
[HttpClient] fix typo 2019-04-27 15:29:50 +01:00
Amrouche Hamza
40e42183b8 [Security] Dispatch an event when "logout user on change" steps in 2019-04-27 16:12:39 +02:00
Robin Chalas
c5b3b34b51 [EventDispatcher] Fix TraceableEventDispatcher FC/BC layer 2019-04-27 15:05:39 +02:00
Robin Chalas
27d10a658d Merge branch '4.2'
* 4.2:
  Fix url matcher edge cases with trailing slash
  [Form] Fix author tag + exception messages
  [TwigBridge] Fix deprecation on twig 2.9
  Fix left-associative ternary deprecation warnings for PHP 7.4
  [Validator] Fixed imprecise translations
  [Validator] Add Dutch translations
  [Security] Cleanup "Digest nonce has expired." translation
  Intercept redirections only for HTML format
  [PhpUnitBridge] fix reading phpunit.xml on bootstrap
  resolve class name parameters
  Fix name and phpdoc of ContainerBuilder::removeBindings
  [Intl] Update the ICU data to 64.2
2019-04-27 14:01:28 +02:00
Robin Chalas
7947b269ec Merge branch '3.4' into 4.2
* 3.4:
  [Form] Fix author tag + exception messages
  [TwigBridge] Fix deprecation on twig 2.9
  [Validator] Fixed imprecise translations
  [Validator] Add Dutch translations
  Intercept redirections only for HTML format
  Fix name and phpdoc of ContainerBuilder::removeBindings
  [Intl] Update the ICU data to 64.2
2019-04-27 13:48:17 +02:00
Nicolas Grekas
ada9aa0a07 bug #31240 Fix url matcher edge cases with trailing slash (arjenm)
This PR was squashed before being merged into the 4.2 branch (closes #31240).

Discussion
----------

Fix url matcher edge cases with trailing slash

| Q             | A
| ------------- | ---
| Branch?       | master / 4.2 (not sure whether this should've been against 4.2)
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no  (I think... if so, in obscure route configurations like the ones that broke in 4.2.7 ;) )
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #30721
| License       | MIT

As stated in #30721 the "redirecting" (compiled) UrlMatcher ignored host-requirements when doing a 'matched url except for trailing slash difference'-redirect.

With routes like this, you'd get 404's rather than 200's on the second routes.

```yaml
host1.withTrail:
  path: /foo/ # host2/foo would become host2/foo/ due to this partial path-match
  host: host1

host2.withoutTrail: # A request for host2/foo should match this route
  path: /foo # host2/foo/ does not match this path
  host: host2
```

This was caused by too eagerly testing whether a route could've worked with an additional trailing slash.

If it could be, that would result in an attempt to redirect _before_ testing the host.

The original url would get the additional slash and prior to actually redirecting, it'd be retested against the available routes. _That new url_ would actually match no routes, since now the host check for the first routes would actually be executed and fail the match for those routes. The adjusted path in the route does not match the second sets of routes...

This PR moves the trailing-slash check to after the host checks. I've added several tests with variants on these edge cases.

*Note:* This is a bug in 4.2 (and 4.3).
I fixed it against master. It appears 4.2's PhpMatcherTrait was renamed to CompiledUrlMatcherTrait in 4.3. But that made it loose its history.
So I'm not sure how to proceed from here. I can rebase it on 4.2 and do the change in PhpMatcherTrait, but that would probably fail to merge in master? I'm not nearly proficient enough in Symfony PR's to know how to solve all this ;)

@nicolas-grekas also asked for these or similar tests to be added to 3.4 as 'proof' those routes worked in that version as well. I have not (yet) done so.

The tests did work on the non-redirecting UrlMatcher without change (i.e. just running UrlMatcherTest), which implies - to me at least - the routes where properly defined and should not result in 404's simply because a RedirectableUrlMatcherInterface _can_ do redirects.

Actually, since I needed to change UrlMatcher as well, I'm not convinced these bugs where totally absent in 3.4. They didn't occur with the compiled version, since the host check was the very first if-statement in that humongous if-tree it generated.

PS, the branch name is a bit dramatic ;)

Commits
-------

4fcfa9d85c Fix url matcher edge cases with trailing slash
2019-04-27 11:38:08 +02:00
Arjen van der Meijden
4fcfa9d85c Fix url matcher edge cases with trailing slash 2019-04-27 11:38:00 +02:00
Nicolas Grekas
a975d2ba84 minor #31281 [TwigBridge] Fix deprecation on twig 2.9 (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[TwigBridge] Fix deprecation on twig 2.9

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

should make travis green

Commits
-------

ac8256ba9c [TwigBridge] Fix deprecation on twig 2.9
2019-04-27 10:50:03 +02:00
Nicolas Grekas
eaba717956 minor #31173 Fix name and phpdoc of ContainerBuilder::removeBindings (teohhanhui)
This PR was merged into the 3.4 branch.

Discussion
----------

Fix name and phpdoc of ContainerBuilder::removeBindings

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/29944#discussion_r276718323
| License       | MIT
| Doc PR        | N/A

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

Commits
-------

c93194d1db Fix name and phpdoc of ContainerBuilder::removeBindings
2019-04-27 10:44:00 +02:00
Roland Franssen
95f09fd802 [Intl] Add tests 2019-04-27 10:07:48 +02:00
Roland Franssen
796f2fff9b [Form] Fix author tag + exception messages 2019-04-27 09:59:15 +02:00
Robin Chalas
ac8256ba9c [TwigBridge] Fix deprecation on twig 2.9 2019-04-27 00:25:38 +02:00
Nicolas Grekas
77f642ef39 feature #31204 [Messenger] ease testing and allow forking the middleware stack (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] ease testing and allow forking the middleware stack

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

A less radical alternative than #31185 that preserves laziness and addresses the linked issue.

Commits
-------

3bdf4b0e0f [Messenger] ease testing and allow forking the middleware stack
2019-04-26 09:52:47 +02:00
Nicolas Grekas
5d8f5fc5bc minor #31243 [Security] Cleanup "Digest nonce has expired." translation (ro0NL)
This PR was merged into the 4.2 branch.

Discussion
----------

[Security] Cleanup "Digest nonce has expired." translation

| Q             | A
| ------------- | ---
| Branch?       | 4.2
| Bug fix?      | yes
| 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 -->

Running `php src/Symfony/Component/Translation/Resources/bin/translation-status.php` i see:

```
| Locale: nn      | Translated: 16/15
| Locale: tl      | Translated: 16/15
```

Here's the cleanup.

(ref #24336)

Commits
-------

e95445d830 [Security] Cleanup "Digest nonce has expired." translation
2019-04-26 09:45:25 +02:00
Nicolas Grekas
be80868ba3 minor #31251 [FrameworkBundle] Drop unused private method (chalasr)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[FrameworkBundle] Drop unused private method

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | n/a
| New feature?  | n/a
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

1e9a9b2c06 [FrameworkBundle] Drop unused private method
2019-04-26 09:43:13 +02:00
thib92
3022a3675b Fix left-associative ternary deprecation warnings for PHP 7.4 2019-04-26 09:24:05 +02:00
Toni Peric
6b50b43fdc [Validator] Fixed imprecise translations 2019-04-26 09:14:41 +02:00
Fabien Potencier
5ad2cb1b5a made the email validator a hard requirement of mailer 2019-04-26 08:12:58 +02:00
Nicolas Grekas
ba83bdadb1 [DomCrawler] fix HTML5 parser integration 2019-04-26 07:53:56 +02:00
Alexander Schranz
ff0b8554ea Refractor redis transport using redis streams 2019-04-26 01:06:54 +02:00
Robin Chalas
1e9a9b2c06 [FrameworkBundle] Drop unused private method 2019-04-25 15:38:48 +02:00
Roland Franssen
76a3373248 [Validator] Add Dutch translations 2019-04-25 15:34:30 +02:00
Stadly
ff7577d650 Add sources when dumping qt files 2019-04-25 14:56:02 +02:00
Roland Franssen
e95445d830 [Security] Cleanup "Digest nonce has expired." translation 2019-04-25 13:21:20 +02:00
soyuka
7162d2ec1d Implement redis transport 2019-04-24 11:23:48 +02:00
Fabien Potencier
571647f7bf bug #31201 [Form] resolve class name parameters (xabbuh)
This PR was merged into the 4.2 branch.

Discussion
----------

[Form] resolve class name parameters

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

Commits
-------

5235be4aa3 resolve class name parameters
2019-04-24 09:23:24 +02:00
Fabien Potencier
fba11b4dc3 feature #30370 [Cache] Add optimized FileSystem & Redis TagAware Adapters (andrerom)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Cache] Add optimized FileSystem & Redis TagAware Adapters

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes _TODO: src/**/CHANGELOG.md_
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #28250
| License       | MIT
| Doc PR        | symfony/symfony-docs#... TODO

Reduces cache lookups by 50% when using TagAware, by changing logic of how tag information is stored to avoid having to look it up on getItem(s) calls.

For Filesystem symlinks are used, for Redis "Set" datatype is used.

Commits
-------

3278cb1c7e [Cache] Add optimized FileSystem & Redis TagAware Adapters
2019-04-24 09:10:21 +02:00
André R
3278cb1c7e [Cache] Add optimized FileSystem & Redis TagAware Adapters
Reduces cache lookups by 50% by changing logic of how tag information is
stored to avoid having to look it up on getItem(s) calls.

For Filesystem symlinks are used, for Redis "Set" datatype is used.
2019-04-24 07:47:35 +02:00
Nicolas Grekas
a7d2019561 Merge branch '4.2'
* 4.2:
  fixed constraint
  [Routing] Fix route URL generation in CLI context
  fix math depth handler
2019-04-23 19:46:21 +02:00
Javier Eguiluz
418678823b Intercept redirections only for HTML format 2019-04-23 17:04:28 +02:00
Nicolas Grekas
1d55f800e4 [PhpUnitBridge] fix reading phpunit.xml on bootstrap 2019-04-23 16:37:24 +02:00
Nicolas Grekas
3bdf4b0e0f [Messenger] ease testing and allow forking the middleware stack 2019-04-23 13:19:34 +02:00
Christian Flothmann
5235be4aa3 resolve class name parameters 2019-04-23 07:54:40 +02:00
Fabien Potencier
e479b6902e fixed constraint 2019-04-22 12:59:06 +02:00
Fabien Potencier
f50ffa9350 bug #31023 [Routing] Fix route URL generation in CLI context (X-Coder264)
This PR was squashed before being merged into the 4.2 branch (closes #31023).

Discussion
----------

[Routing] Fix route URL generation in CLI context

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

This fixes #30996 and makes URL generation in the CLI context behave the same as it does in the web context where the `LocaleListener` sets the default locale (to the router context).

The Travis CI failure is related to the fact that the constraint for `symfony/routing` should be bumped to `^4.2.6` in the composer.json of the FrameworkBundle (when it gets tagged).

Commits
-------

4a1ad4a5d6 [Routing] Fix route URL generation in CLI context
2019-04-22 11:10:19 +02:00
Antonio Pauletich
4a1ad4a5d6 [Routing] Fix route URL generation in CLI context 2019-04-22 11:10:12 +02:00
Fabien Potencier
7e56ef1a3d bug #31085 [DoctrineBridge] Unique mapping setting is optional (ksaveras)
This PR was squashed before being merged into the 4.3-dev branch (closes #31085).

Discussion
----------

[DoctrineBridge] Unique mapping setting is optional

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

```sh
Executed script cache:clear  [KO]
 [KO]
Script cache:clear returned with error code 1
!!
!!   // Clearing the cache for the dev environment with debug
!!   // true
!!
!!
In DoctrineLoader.php line 71:

  [ErrorException]
  Notice: Undefined index: unique

Exception trace:
 () at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/doctrine-bridge/Validator/DoctrineLoader.php:71
 Symfony\Bridge\Doctrine\Validator\DoctrineLoader->loadClassMetadata() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/validator/Mapping/Loader/LoaderChain.php:54
 Symfony\Component\Validator\Mapping\Loader\LoaderChain->loadClassMetadata() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/validator/Mapping/Factory/LazyLoadingMetadataFactory.php:105
 Symfony\Component\Validator\Mapping\Factory\LazyLoadingMetadataFactory->getMetadataFor() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/framework-bundle/CacheWarmer/ValidatorCacheWarmer.php:63
 Symfony\Bundle\FrameworkBundle\CacheWarmer\ValidatorCacheWarmer->doWarmUp() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/framework-bundle/CacheWarmer/AbstractPhpFileCacheWarmer.php:51
 Symfony\Bundle\FrameworkBundle\CacheWarmer\AbstractPhpFileCacheWarmer->warmUp() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php:96
 Symfony\Component\HttpKernel\CacheWarmer\CacheWarmerAggregate->warmUp() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/framework-bundle/Command/CacheClearCommand.php:194
 Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand->warmup() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/framework-bundle/Command/CacheClearCommand.php:129
 Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand->execute() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/console/Command/Command.php:255
 Symfony\Component\Console\Command\Command->run() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/console/Application.php:930
 Symfony\Component\Console\Application->doRunCommand() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/framework-bundle/Console/Application.php:87
 Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/console/Application.php:273
 Symfony\Component\Console\Application->doRun() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/framework-bundle/Console/Application.php:73
 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/ksaveras/Projects/mokytojas.local/vendor/symfony/console/Application.php:149
 Symfony\Component\Console\Application->run() at /home/ksaveras/Projects/mokytojas.local/bin/console:40

cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

./bin/console ca:cl
```

Commits
-------

fde4dc9922 [DoctrineBridge] Unique mapping setting is optional
2019-04-22 11:07:11 +02:00
Ksaveras Šakys
fde4dc9922 [DoctrineBridge] Unique mapping setting is optional 2019-04-22 11:07:01 +02:00
Fabien Potencier
eab7611358 feature #28831 [Intl] Add Timezones (ro0NL)
This PR was squashed before being merged into the 4.3-dev branch (closes #28831).

Discussion
----------

[Intl] Add Timezones

| Q             | A
| ------------- | ---
| Branch?       | master
| 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 | replaces #26851, #17628, #17636
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/issues/11447

This PR compiles a new `TimezoneBundle` from ICU data, based on the following resources:

- https://github.com/unicode-org/icu/tree/master/icu4c/source/data/zone
- https://github.com/unicode-org/icu/blob/master/icu4c/source/data/misc/timezoneTypes.txt
- https://github.com/unicode-org/icu/blob/master/icu4c/source/data/misc/metaZones.txt

The goal is to provide a fixed set of timezones, with a localized human readable name.

For inspiration and to double check some data i used the timezone widget from google, e.g. when using Google Calendar.

I've only pushed some common compiled locales for review, the rest will follow once finished.

cc @jakzal

Commits
-------

4bea1981ff [Intl] Add Timezones
2019-04-21 20:40:42 +02:00
Roland Franssen
4bea1981ff [Intl] Add Timezones 2019-04-21 20:40:32 +02:00
Fabien Potencier
287da8d4c0 minor #31162 [Intl] Update the ICU data to 64.2 (jakzal)
This PR was merged into the 3.4 branch.

Discussion
----------

[Intl] Update the ICU data to 64.2

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      |no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes, including intl-data group
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

It didn't take long for the ICU team to release a new version.

From their [changelog](http://site.icu-project.org/download/64#TOC-ICU4C-Download), 64.2 provides bug fixes and:

* Draft Unicode 12.1 data integration
* Updated locale data imported from CLDR 35.1
* Support for the new Japanese era "Reiwa" (令和).

Commits
-------

9aa2349ac6 [Intl] Update the ICU data to 64.2
2019-04-21 18:20:00 +02:00
Fabien Potencier
097c229d92 bug #31117 [FrameworkBundle] fix math depth handler configuration (Raulnet)
This PR was merged into the 4.2 branch.

Discussion
----------

[FrameworkBundle] fix math depth handler configuration

| Q             | A
| ------------- | ---
| Branch?       |  4.2 f
| Bug fix?      | no "fix deprecated"
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/30998
| License       | MIT
| Doc PR        |

fix  serializer configuration max_deep_handler

Commits
-------

fb9fc804d3 fix math depth handler
2019-04-21 18:12:22 +02:00
Teoh Han Hui
c93194d1db
Fix name and phpdoc of ContainerBuilder::removeBindings 2019-04-20 17:32:49 +02:00
Nicolas Grekas
98929dc292 Merge branch '4.2'
* 4.2:
  [HttpFoundation] fix tests
  [Routing] fix trailing slash matching with empty-matching trailing vars
  [Routing] fix matching trailing vars with defaults
  [Validator] fix LegacyTranslatorProxy
  call method with Translator component only
  bumped Symfony version to 4.2.8
  updated VERSION for 4.2.7
  updated CHANGELOG for 4.2.7
  bumped Symfony version to 3.4.27
  updated VERSION for 3.4.26
  updated CHANGELOG for 3.4.26
2019-04-19 16:28:43 +02:00
Nicolas Grekas
bff2db71e9 bug #31182 [Routing] fix trailing slash matching with empty-matching trailing vars (nicolas-grekas)
This PR was merged into the 4.2 branch.

Discussion
----------

[Routing] fix trailing slash matching with empty-matching trailing vars

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

Reported by @bmack in https://github.com/symfony/symfony/pull/31107#issuecomment-484681404

This highlights a small inconsistency that exists for a long time (checked on 2.7 at least):
`new Route('/en-en/{b}', ['b' => 'bbb'], ['b' => '.*'])` matches `/en-en/`
`new Route('/en-en/{b}', ['b' => 'bbb'], ['b' => '.+'])` doesn't match it
(while both match `/en-en` and `/en-en/foo`)

This PR ensures the former behavior is preserved, while #31167 redirects the later to `/en-en`.

Commits
-------

d6da21ac19 [Routing] fix trailing slash matching with empty-matching trailing vars
2019-04-19 16:27:49 +02:00
Nicolas Grekas
3b05c07029 Merge branch '3.4' into 4.2
* 3.4:
  [HttpFoundation] fix tests
  bumped Symfony version to 3.4.27
  updated VERSION for 3.4.26
  updated CHANGELOG for 3.4.26
2019-04-19 16:26:30 +02:00
Nicolas Grekas
8e93ef3d01 [HttpFoundation] fix tests 2019-04-19 15:43:39 +02:00
Robin Chalas
823d375a95 feature #31170 [Security] deprecate BCryptPasswordEncoder in favor of NativePasswordEncoder (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Security] deprecate BCryptPasswordEncoder in favor of NativePasswordEncoder

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

Follow up of #31140

Commits
-------

e197398d2f [Security] deprecate BCryptPasswordEncoder in favor of NativePasswordEncoder
2019-04-19 14:03:50 +02:00
Nicolas Grekas
d6da21ac19 [Routing] fix trailing slash matching with empty-matching trailing vars 2019-04-19 11:57:30 +02:00
Grégoire Paris
6c3c199b4e
Treat undefined env var as strict mode
An undefined SYMFONY_DEPRECATION_HELPER environment variable translates
to false, and that was previously interpreted as 0, which means strict
mode.
This restores backwards compatibility with the previous behavior, which
got broken in 1c73f9cfed .
2019-04-18 22:11:24 +02:00
Nicolas Grekas
e197398d2f [Security] deprecate BCryptPasswordEncoder in favor of NativePasswordEncoder 2019-04-18 18:59:05 +02:00
Robin Chalas
89ec31141f feature #31140 [Security] Add NativePasswordEncoder (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Security] Add NativePasswordEncoder

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

This PR adds a new `NativePasswordEncoder` that defaults to the best available hashing algo to `password_hash()`. Best is determined by "us" or "php", the goal being that this will change in the future as new algos are published.

This provides a native encoder that we should recommend using by default.

Commits
-------

28f7961c55 [Security] Add NativePasswordEncoder
2019-04-18 15:59:39 +02:00
Nicolas Grekas
243b257ca7 bug #31167 [Routing] fix matching trailing vars with defaults (nicolas-grekas)
This PR was merged into the 4.2 branch.

Discussion
----------

[Routing] fix matching trailing vars with defaults

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

Commits
-------

177dfbc170 [Routing] fix matching trailing vars with defaults
2019-04-18 15:30:56 +02:00
Nicolas Grekas
177dfbc170 [Routing] fix matching trailing vars with defaults 2019-04-18 15:09:11 +02:00
Nicolas Grekas
b1f3284669 [Validator] fix LegacyTranslatorProxy 2019-04-18 14:28:43 +02:00
Nicolas Grekas
28f7961c55 [Security] Add NativePasswordEncoder 2019-04-18 13:38:48 +02:00
Jakub Zalas
9aa2349ac6
[Intl] Update the ICU data to 64.2 2019-04-18 10:57:10 +01:00
Raulnet
fb9fc804d3 fix math depth handler 2019-04-18 11:12:13 +02:00
Fabien Potencier
a59fe660c3 feature #31130 [VarDumper] add caster for WeakReference instances of PHP 7.4 (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[VarDumper] add caster for WeakReference instances of PHP 7.4

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

![image](https://user-images.githubusercontent.com/243674/56214443-2d9d8100-605e-11e9-86bb-157a07b5caa0.png)

Commits
-------

0cdb808f1c [VarDumper] add caster for WeakReference instances of PHP 7.4
2019-04-18 08:55:47 +02:00
Christian Flothmann
f49881d24a call method with Translator component only 2019-04-18 08:38:02 +02:00
Fabien Potencier
87aef6984c bumped Symfony version to 4.2.8 2019-04-17 18:20:51 +02:00
Fabien Potencier
44075f13e8 updated VERSION for 4.2.7 2019-04-17 18:17:13 +02:00
Fabien Potencier
e376c994f3 bumped Symfony version to 3.4.27 2019-04-17 18:12:19 +02:00
Fabien Potencier
ef3b684208 updated VERSION for 3.4.26 2019-04-17 17:57:07 +02:00
Nicolas Grekas
8d9686105d Merge branch '4.2'
* 4.2:
  Revert "bug #30423 [Security] Rework firewall's access denied rule (dimabory)"
  [FrameworkBundle] minor: remove a typo from changelog
  [VarDumper] fix tests with ICU 64.1
  [VarDumper][Ldap] relax some locally failing tests
  [Validator] #30192 Added the missing translations for the Tagalog ("tl") locale.
  Make MimeTypeExtensionGuesser case insensitive
  Fix get session when the request stack is empty
  [Routing] fix trailing slash redirection with non-greedy trailing vars
  [FrameworkBundle] decorate the ValidatorBuilder's translator with LegacyTranslatorProxy
2019-04-17 17:26:35 +02:00
Nicolas Grekas
2d2ff38f1d bug #31107 [Routing] fix trailing slash redirection with non-greedy trailing vars (nicolas-grekas)
This PR was merged into the 4.2 branch.

Discussion
----------

[Routing] fix trailing slash redirection with non-greedy trailing vars

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

Fixes redirecting `/123/` to `/123` when the route is defined as `/{foo<\d+>}`

Commits
-------

d88833d27a [Routing] fix trailing slash redirection with non-greedy trailing vars
2019-04-17 17:02:08 +02:00
Nicolas Grekas
74a18bcff4 bug #31108 [FrameworkBundle] decorate the ValidatorBuilder's translator with LegacyTranslatorProxy (nicolas-grekas)
This PR was merged into the 4.2 branch.

Discussion
----------

[FrameworkBundle] decorate the ValidatorBuilder's translator with LegacyTranslatorProxy

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

This allows defining a translator that implements only the new interface and use it with ValidatorBuilder.

ping @dvdknaap, @snebes since you were affected.

Commits
-------

a12656eaad [FrameworkBundle] decorate the ValidatorBuilder's translator with LegacyTranslatorProxy
2019-04-17 17:01:37 +02:00
Nicolas Grekas
c009e60fbb bug #31121 [HttpKernel] Fix get session when the request stack is empty (yceruto)
This PR was merged into the 4.2 branch.

Discussion
----------

[HttpKernel] Fix get session when the request stack is empty

| Q             | A
| ------------- | ---
| Branch?       | 4.2
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT

This bug happen behind an exception on a kernel response event, when one collector (e.g. `RequestDataCollector`) is trying to get the request session and the request stack is currently empty.

**Reproducer**
https://github.com/yceruto/get-session-bug (`GET /`)

See logs on terminal:
```bash
Apr 15 20:29:03 |ERROR| PHP    2019-04-15T20:29:03-04:00 Call to a member function isSecure() on null
Apr 15 20:29:03 |ERROR| PHP    PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function isSecure() on null in /home/yceruto/demos/getsession/vendor/symfony/http-kernel/EventListener/SessionListener.php:43
Apr 15 20:29:03 |DEBUG| PHP    Stack trace:
Apr 15 20:29:03 |DEBUG| PHP    #0 /home/yceruto/demos/getsession/vendor/symfony/http-kernel/EventListener/AbstractSessionListener.php(59): Symfony\Component\HttpKernel\EventListener\SessionListener->getSession()
Apr 15 20:29:03 |DEBUG| PHP    #1 /home/yceruto/demos/getsession/vendor/symfony/http-foundation/Request.php(707): Symfony\Component\HttpKernel\EventListener\AbstractSessionListener->Symfony\Component\HttpKernel\EventListener\{closure}()
Apr 15 20:29:03 |DEBUG| PHP    #2 /home/yceruto/demos/getsession/vendor/symfony/http-kernel/DataCollector/RequestDataCollector.php(65): Symfony\Component\HttpFoundation\Request->getSession()
Apr 15 20:29:03 |DEBUG| PHP    #3 /home/yceruto/demos/getsession/vendor/symfony/http-kernel/Profiler/Profiler.php(167): Symfony\Component\HttpKernel\DataCollector\RequestDataCollector->collect(Object(Symfony\Component\HttpFoundation\Request), Object(Symfony\Component\HttpFoundation\Respo in /home/yceruto/demos/getsession/vendor/symfony/http-kernel/EventListener/SessionListener.php on line 43
```

Friendly ping @nicolas-grekas as author of the previous PR https://github.com/symfony/symfony/pull/28244

Commits
-------

d62ca37ab6 Fix get session when the request stack is empty
2019-04-17 16:59:26 +02:00
Nicolas Grekas
84198734ce minor #31133 [VarDumper] fix tests with ICU 64.1 (nicolas-grekas)
This PR was merged into the 4.2 branch.

Discussion
----------

[VarDumper] fix tests with ICU 64.1

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

Commits
-------

474a756162 [VarDumper] fix tests with ICU 64.1
2019-04-17 16:57:01 +02:00
Nicolas Grekas
6aec217e2b Merge branch '3.4' into 4.2
* 3.4:
  Revert "bug #30423 [Security] Rework firewall's access denied rule (dimabory)"
  [FrameworkBundle] minor: remove a typo from changelog
  [VarDumper][Ldap] relax some locally failing tests
  [Validator] #30192 Added the missing translations for the Tagalog ("tl") locale.
  Make MimeTypeExtensionGuesser case insensitive
2019-04-17 16:56:00 +02:00
Nicolas Grekas
82f003eaf3 minor #31132 [VarDumper][Ldap] relax some locally failing tests (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper][Ldap] relax some locally failing 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
-------

88b27656cc [VarDumper][Ldap] relax some locally failing tests
2019-04-17 16:54:02 +02:00
Nicolas Grekas
f458e5b85a minor #31128 [Validator] Added the missing translations for the Tagalog ("tl") locale (johnillo)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Added the missing translations for the Tagalog ("tl") locale

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | No
| New feature?  | No
| BC breaks?    | No
| Deprecations? | No
| Tests pass?   | Yes
| Fixed tickets | #30192
| License       | MIT
| Doc PR        |

[Validator] This pull request will add the missing translations for the Tagalog ("tl") locale.

Commits
-------

6ab574b7c9 [Validator] #30192 Added the missing translations for the Tagalog ("tl") locale.
2019-04-17 16:53:01 +02:00
Nicolas Grekas
13113245bf bug #31084 [HttpFoundation] Make MimeTypeExtensionGuesser case insensitive (vermeirentony)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Make MimeTypeExtensionGuesser case insensitive

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Some mime types have a camelCase word in them.
The Apache HTTPD project list items are all lower case.
So I suggest making the $mimeType string lowercase while checking the array key.
That way, we can keep the list in sync.

Example: xlsm file mime type is `application/vnd.ms-excel.sheet.macroEnabled.12`
The key that matches the xlsm extension in the `$defaultExtensions` array is `application/vnd.ms-excel.sheet.macroenabled.12`

Example xlsm file:
https://github.com/vermeirentony/xlsm-example

Commits
-------

e294ee6b9a Make MimeTypeExtensionGuesser case insensitive
2019-04-17 16:51:18 +02:00
Nicolas Grekas
55a21fb08f bug #31142 Revert "bug #30423 [Security] Rework firewall's access denied rule (dimabory)" (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

Revert "bug #30423 [Security] Rework firewall's access denied rule (dimabory)"

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

Commits
-------

cd77f6f91c Revert "bug #30423 [Security] Rework firewall's access denied rule (dimabory)"
2019-04-17 16:49:35 +02:00
Nicolas Grekas
70166f03eb Merge remote-tracking branch 'origin/3.4' into 3.4
* origin/3.4:
  [FrameworkBundle] minor: remove a typo from changelog
2019-04-17 16:42:57 +02:00
Robin Chalas
cd77f6f91c Revert "bug #30423 [Security] Rework firewall's access denied rule (dimabory)"
This reverts commit fd1408b138, reversing
changes made to b93d2bf941.
2019-04-17 14:56:02 +02:00
Amrouche Hamza
59942b40d1
[Serializer] [DX] NotNormalizableValueException should note which attribute failed to denormalize when possible 2019-04-17 08:10:20 +02:00
Hamza Amrouche
8f7682c175
[FrameworkBundle] minor: remove a typo from changelog
new new -> new
2019-04-17 08:02:18 +02:00
Tobias Schultze
76f6c97416 [Routing] allow comma and other reserved chars without special meaing to not be encoded in the query and fragment 2019-04-16 17:05:04 +02:00
Nicolas Grekas
474a756162 [VarDumper] fix tests with ICU 64.1 2019-04-16 16:37:51 +02:00
Nicolas Grekas
0cdb808f1c [VarDumper] add caster for WeakReference instances of PHP 7.4 2019-04-16 16:30:49 +02:00
Nicolas Grekas
88b27656cc [VarDumper][Ldap] relax some locally failing tests 2019-04-16 15:58:17 +02:00
johnillo
6ab574b7c9 [Validator] #30192 Added the missing translations for the Tagalog ("tl") locale. 2019-04-16 19:21:44 +08:00
Nicolas Grekas
899985e1d5 Merge branch '4.2'
* 4.2:
  [DI] Check service IDs are valid
2019-04-16 13:20:43 +02:00
Nicolas Grekas
3fd01abf11 Merge branch '3.4' into 4.2
* 3.4:
  [DI] Check service IDs are valid
2019-04-16 13:19:53 +02:00
Nicolas Grekas
d2fb589392 [DI] Check service IDs are valid 2019-04-16 13:13:42 +02:00
Nicolas Grekas
96aee57143 Merge branch '4.2'
* 4.2:
  Fix XSS issues in the form theme of the PHP templating engine
2019-04-16 11:45:47 +02:00
Nicolas Grekas
91916451a5 Merge branch '3.4' into 4.2
* 3.4:
  Fix XSS issues in the form theme of the PHP templating engine
2019-04-16 11:43:21 +02:00
Nicolas Grekas
4585a419ff security #cve-2019-10909 [FrameworkBundle][Form] Fix XSS issues in the form theme of the PHP templating engine (stof)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle][Form] Fix XSS issues in the form theme of the PHP templating engine

Based on #88

Commits
-------

ab4d05358c Fix XSS issues in the form theme of the PHP templating engine
2019-04-16 11:42:16 +02:00
Nicolas Grekas
d140648929 Merge branch '4.2'
* 4.2:
  Prevent destructors with side-effects from being unserialized
2019-04-16 11:37:27 +02:00
Nicolas Grekas
4b18b32133 Merge branch '3.4' into 4.2
* 3.4:
  Prevent destructors with side-effects from being unserialized
2019-04-16 11:36:45 +02:00
Nicolas Grekas
d77e445697 security #cve-2019-10912 [Cache][PHPUnit Bridge] Prevent destructors with side-effects from being unserialized (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache][PHPUnit Bridge] Prevent destructors with side-effects from being unserialized

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

Reported for `FilesystemCommonTrait` at https://www.intigriti.com/company/submission/CfDJ8Pja6NZvkpNCmx5vVyiGSn7yW8c1j4H0-cnAhIk6fbstOMm028X-XD1kmSuQkGB2n0cRyyVrA2yAiLN_I0EVilaKVLSiSa0UXZJGfN1h85vmk5c2dBBpu619r1YQEIjcXA

Commits
-------

4fb9752816 Prevent destructors with side-effects from being unserialized
2019-04-16 11:03:16 +02:00
Nicolas Grekas
14ba16bf74 Merge branch '4.2'
* 4.2:
  [Security] Add a separator in the remember me cookie hash
2019-04-16 10:58:59 +02:00
Nicolas Grekas
abd8b954f4 Merge branch '3.4' into 4.2
* 3.4:
  [Security] Add a separator in the remember me cookie hash
2019-04-16 10:58:51 +02:00
Nicolas Grekas
0a4ed67b0d security #cve-2019-10911 [Security] Add a separator in the remember me cookie hash (pborreli)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Add a separator in the remember me cookie hash

Based on #89

Commits
-------

a29ce2817c [Security] Add a separator in the remember me cookie hash
2019-04-16 10:58:07 +02:00
Nicolas Grekas
5d583073b5 Merge branch '4.2'
* 4.2:
  [HttpFoundation] reject invalid method override
2019-04-16 10:49:11 +02:00
Nicolas Grekas
a5039c81c9 Merge branch '3.4' into 4.2
* 3.4:
  [HttpFoundation] reject invalid method override
2019-04-16 10:49:01 +02:00
Nicolas Grekas
278a7ece35 Merge branch '4.2'
* 4.2:
  bumped Symfony version to 4.2.7
  updated VERSION for 4.2.6
  updated CHANGELOG for 4.2.6
  bumped Symfony version to 3.4.26
  updated VERSION for 3.4.25
  update CONTRIBUTORS for 3.4.25
  updated CHANGELOG for 3.4.25
  Workaround for \DateInterval::createFromDateString()
  [DoctrineBridge] [DX] Update exception text in ManagerRegistry::resetService to avoid confusion.
  Missing Lithuanian translations added to validator component.
2019-04-16 09:33:54 +02:00
Nicolas Grekas
20739e7158 Merge branch '3.4' into 4.2
* 3.4:
  bumped Symfony version to 3.4.26
  updated VERSION for 3.4.25
  update CONTRIBUTORS for 3.4.25
  updated CHANGELOG for 3.4.25
  Workaround for \DateInterval::createFromDateString()
  Missing Lithuanian translations added to validator component.
2019-04-16 09:32:54 +02:00
Fabien Potencier
4a60fff2e4 bumped Symfony version to 4.2.7 2019-04-16 09:23:50 +02:00
Fabien Potencier
25eff940aa updated VERSION for 4.2.6 2019-04-16 09:20:25 +02:00
Nicolas Grekas
944e60f083 [HttpFoundation] reject invalid method override 2019-04-16 07:40:48 +01:00
Fabien Potencier
b7bdf2ce43 bumped Symfony version to 3.4.26 2019-04-16 08:16:04 +02:00
Fabien Potencier
b316b58098 updated VERSION for 3.4.25 2019-04-16 08:02:09 +02:00
Tony Vermeiren
e294ee6b9a Make MimeTypeExtensionGuesser case insensitive 2019-04-16 08:01:19 +02:00
Yonel Ceruto
d62ca37ab6 Fix get session when the request stack is empty 2019-04-15 19:32:39 -04:00
Fabien Potencier
7cf96a48e6 feature #31082 [Form] Show all option normalizers on debug:form command (yceruto)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Form] Show all option normalizers on debug:form command

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT

Follow-up https://github.com/symfony/symfony/pull/30371

![normalizers](https://user-images.githubusercontent.com/2028198/55996454-6667df80-5c85-11e9-94f6-9ee3988833f3.png)

Commits
-------

f1d3bc0e62 Show all option normalizers on debug:form command
2019-04-15 22:27:06 +02:00
Fabien Potencier
e683dfaf60 feature #30957 [Messenger] Remove base64_encode & use addslashes (weaverryan)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Messenger] Remove base64_encode & use addslashes

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        | already covered by existing issue

In #30814, we base64_encoded messages because some transports (specifically DoctrineTransport + Postgresql & SQS) do not allow binary data.

The downside is that the messages become unreadable, which makes it much less convenient to debug your messages with 3rd party monitoring tools, for example.

This PR replaces base64_encode with addslashes. Another alternative (that I first tried in this PR) was to use a blob type, which Drupal does in its code (https://www.drupal.org/project/drupal/issues/690746). But, it still meant that binary data could cause problems with other transports, like SQS.

I also put all the serializer config under a nice, neat `serializer` key under messenger.

Best seen with `?w=1`.

Cheers!

Commits
-------

70b448d120 Reorganizing messenger serializer config and replacing base64_encode with addslashes
2019-04-15 22:19:39 +02:00
Fabien Potencier
9aedfebd87 bug #31040 [BrowserKit] Fixed BC-break introduced by rename of Client to Browser (Devristo)
This PR was squashed before being merged into the 4.3-dev branch (closes #31040).

Discussion
----------

[BrowserKit] Fixed BC-break introduced by rename of Client to Browser

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/31039
| License       | MIT
| Doc PR        |

Since #30541 the inheritance hierarchy of `\Symfony\Component\BrowserKit\Client` has changed. Notably the test.client no longer is an instance of `\Symfony\Component\BrowserKit\Client`.

This PR uses `class_alias` to fix the class hierarchy similarly as has been done in Twig. In this case I copied the approach of `Twig_TokenParser_AutoEscape` and `\Twig\TokenParser\AutoEscapeTokenParser`

Commits
-------

6a94dea5cd [BrowserKit] Fixed BC-break introduced by rename of Client to Browser
2019-04-15 22:15:34 +02:00
Chris Tanaskoski
6a94dea5cd [BrowserKit] Fixed BC-break introduced by rename of Client to Browser 2019-04-15 22:15:25 +02:00
Nicolas Grekas
8f699541f5 [HttpClient] fix too high timeout in test 2019-04-15 19:24:46 +02:00
Ryan Weaver
70b448d120 Reorganizing messenger serializer config and replacing base64_encode with addslashes 2019-04-15 10:26:02 -04:00
renanbr
54247ec05f Workaround for \DateInterval::createFromDateString() 2019-04-15 15:23:09 +02:00
Yonel Ceruto
f1d3bc0e62 Show all option normalizers on debug:form command 2019-04-15 09:14:41 -04:00
Nicolas Grekas
238f844c72 feature #30717 [Serializer] Use name converter when normalizing constraint violation list (norkunas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Serializer] Use name converter when normalizing constraint violation list

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | no
| New feature?  | yes <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | #...   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

When using name converter with serializer and the default ConstraintViolationListNormalizer, returned propertyPaths was not converted to the same format.

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

Commits
-------

dd93b707cc Use name converter when normalizing constraint violation list
2019-04-15 13:56:07 +02:00
Fabien Potencier
5d3d1a014c feature #28846 [Intl] Simplify API (ro0NL)
This PR was squashed before being merged into the 4.3-dev branch (closes #28846).

Discussion
----------

[Intl] Simplify API

| Q             | A
| ------------- | ---
| Branch?       | master
| 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 | #18368
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/issues/11221

Simplifies the Intl API. It greatly reduces the no. of boilerplate classes in this component. Very over complicated, much wow :)

Solving (IMHO):

```php
class LanguageBundle extends LanguageDataProvider implements LanguageBundleInterface
```

Which seems very over complicated just to provide static data.

```php
// before
Intl::getLanguageBundle()->getLanguageName() // string | null

// after
Languages::getName() // string
Languages::exists() // bool
```

I left out Canonicalization on puropose, that's a new topic to me.

- [x] Languages
- [x] Locales
- [x] Currencies
- [x] Regions
- [x] Scripts
- [ ] Timezones (#28831)
- [x] Update constraints
- [x] Update form types

Thoughts?

Commits
-------

d6b67d469a [Intl] Simplify API
2019-04-15 13:51:58 +02:00
Roland Franssen
d6b67d469a [Intl] Simplify API 2019-04-15 13:51:51 +02:00
Amrouche Hamza
9ade232533 [DoctrineBridge] [DX] Update exception text in ManagerRegistry::resetService to avoid confusion. 2019-04-15 11:42:18 +02:00
Nicolas Grekas
d88833d27a [Routing] fix trailing slash redirection with non-greedy trailing vars 2019-04-14 20:04:59 +02:00
Nicolas Grekas
a12656eaad [FrameworkBundle] decorate the ValidatorBuilder's translator with LegacyTranslatorProxy 2019-04-14 20:04:40 +02:00
Rokas Mikalkėnas
1c9a9cd9e0 Missing Lithuanian translations added to validator component. 2019-04-13 08:36:32 +02:00
Rokas Mikalkėnas
9ae73b11a6 Missing use statement added in UniqueValidator. 2019-04-13 00:07:37 +03:00
Nicolas Grekas
e45bc83f21 Merge branch '4.2'
* 4.2:
  Skip testing the phpunit-bridge on not-master branches when $deps is empty
  more tests
  [DI] Fixes: #28326 - Overriding services autowired by name under _defaults bind not working
  [DI] fix removing non-shared definition while inlining them
2019-04-12 17:33:39 +02:00
Nicolas Grekas
dc2edaffe2 Merge branch '3.4' into 4.2
* 3.4:
  Skip testing the phpunit-bridge on not-master branches when $deps is empty
  more tests
  [DI] Fixes: #28326 - Overriding services autowired by name under _defaults bind not working
2019-04-12 17:32:33 +02:00
Nicolas Grekas
08577f4398 [PhpUnitBridge] fix PHP 5.5 support 2019-04-12 17:26:05 +02:00
Nicolas Grekas
770c7ddec4 [PhpUnitBridge] CS fix 2019-04-12 16:49:44 +02:00
Nicolas Grekas
8297a75eb7 bug #31088 [DI] fix removing non-shared definition while inlining them (nicolas-grekas)
This PR was merged into the 4.2 branch.

Discussion
----------

[DI] fix removing non-shared definition while inlining them

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

I didn't manage to create a specific test case but this still has 100% coverage for the added lines and fixed the reproducer (and makes sense also :) )

Commits
-------

317e820694 [DI] fix removing non-shared definition while inlining them
2019-04-12 16:35:03 +02:00
Nicolas Grekas
3403a8e65a bug #29944 [DI] Overriding services autowired by name under _defaults bind not working (przemyslaw-bogusz, renanbr)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Overriding services autowired by name under _defaults bind not working

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

This is an implementation of ideas and suggestions of @nicolas-grekas and @GuilhemN.

Commits
-------

7e805eae2b more tests
35a40ace6f [DI] Fixes: #28326 - Overriding services autowired by name under _defaults bind not working
2019-04-12 16:33:47 +02:00
renanbr
7e805eae2b more tests 2019-04-12 16:27:23 +02:00
Przemysław Bogusz
35a40ace6f [DI] Fixes: #28326 - Overriding services autowired by name under _defaults bind not working 2019-04-12 16:15:59 +02:00
Amrouche Hamza
b34738bba6
[PhpUnitBridge] ClockMock does not mock gmdate() 2019-04-12 16:09:30 +02:00
Nicolas Grekas
2f73c2f66b fix 2019-04-12 15:55:35 +02:00
Nicolas Grekas
0cf183375a Merge branch '4.2'
* 4.2:
  [TwigBridge] fix tests
  [FrameworkBundle] Fix Controller deprecated when using composer --optimized
2019-04-12 15:50:47 +02:00
Nicolas Grekas
1d02ef2ccb Merge branch '3.4' into 4.2
* 3.4:
  [TwigBridge] fix tests
2019-04-12 15:50:35 +02:00
Nicolas Grekas
b11585e31f [PhpUnitBridge] fixes 2019-04-12 15:46:34 +02:00
Nicolas Grekas
33c6681585 [TwigBridge] fix tests 2019-04-12 15:39:20 +02:00
Valentin
340a2fb3f8 Keep preferred_choices order 2019-04-12 16:00:33 +03:00
Nicolas Grekas
317e820694 [DI] fix removing non-shared definition while inlining them 2019-04-12 11:55:35 +02:00
Fabien Potencier
a36fbe3d38 feature #29211 [PhpUnitBridge] Url encoded deprecations helper config (greg0ire)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[PhpUnitBridge] Url encoded deprecations helper config

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | #28048
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/10701

First stab at implementing a new way of configuring the deprecation error handler. Includes a refactoring to keep things manageable.

Rework of #24867, blocked by #29718

TODO:

- [x] make the code 5.5 compatible 😢
- [x] add more tests
- [x] deprecate modes (using echo :P)
- [x] test this on real life projects and add some screenshots
- [x] docs PR
- [x] handle `strict`
- [x] adapt existing CI config

# Quiet configuration

![quiet](https://user-images.githubusercontent.com/657779/49341318-fa78c900-f64b-11e8-9504-a8a9eac4baf8.png)

# Default configuration

![verbose](https://user-images.githubusercontent.com/657779/49341322-10868980-f64c-11e8-9d90-dc3f6a18c335.png)

Commits
-------

1c73f9cfed [PhpUnitBridge] Url encoded deprecations helper config
2019-04-12 11:11:22 +02:00
Fabien Potencier
9edd84bce0 bug #30967 [HttpClient] Document the state object that is passed around by the HttpClient (derrabus)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[HttpClient] Document the state object that is passed around by the HttpClient

| 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

In an attempt to make the code of the new HttpClient component more understandable, I've introduced internal classes that document the `$multi` object that is being passed around between *Client and *Response classes.

My goal is to make the code more accessible to potential contributors and static code analyzers.

Commits
-------

20f4eb3204 Document the state object that is passed around by the HttpClient.
2019-04-12 11:04:34 +02:00
Fabien Potencier
69b43fa8a8 bug #30993 [FrameworkBundle] Fix for Controller DEPRECATED when using composer --optimized (aweelex)
This PR was merged into the 4.2 branch.

Discussion
----------

[FrameworkBundle] Fix for Controller DEPRECATED  when using composer --optimized

| Q | A |
| --- | --- |
| Branch? | 4.2 |
| Bug fix? | Yes |
| New feature? | No |
| BC breaks? | No |
| Deprecations? | No |
| Tests pass? | Yes |
| Fixed tickets | --- |
| License | MIT |

Using `composer --optimize-autoload` causes `console cache:clear` (without warmup) to give DEPRECATED error, that stays in profiler.

I moved `@trigger_error` from beggining of the file to Controller __consctruct method.

Commits
-------

2ae2fd800d [FrameworkBundle] Fix Controller deprecated when using composer --optimized
2019-04-12 11:01:41 +02:00
Grégoire Paris
1c73f9cfed
[PhpUnitBridge] Url encoded deprecations helper config 2019-04-11 23:10:50 +02:00
rubenrua
027bd12884 CS Fixes: Not double split with one array argument
Keep to use the same CS in all the Symfony code base.

Use:
```php
$resolver->setDefaults([
    'compound' => false
]);
```

Instead of:
```php
$resolver->setDefaults(
    [
        'compound' => false,
    ]
);
```

Keep the double split when the method has two or more arguments.

I miss a PSR with this rule.
2019-04-11 16:45:23 +02:00
Nicolas Grekas
713aab79cc Merge branch '4.2'
* 4.2:
  Catch empty deprecation.log silently (fixes #31050)
  minor: the meaning of the data breach was not correct
  Optimize SVGs
  property normalizer should also pass format and context to isAllowedAttribute
2019-04-11 14:10:52 +02:00
Nicolas Grekas
ebe9ccf0cc Merge branch '3.4' into 4.2
* 3.4:
  Catch empty deprecation.log silently (fixes #31050)
2019-04-11 13:58:13 +02:00
Matthias Althaus
291c73a290 Catch empty deprecation.log silently (fixes #31050) 2019-04-11 13:43:50 +02:00
Nicolas Grekas
9399cb99a5 Merge branch '3.4' into 4.2
* 3.4:
  minor: the meaning of the data breach was not correct
  Optimize SVGs
  property normalizer should also pass format and context to isAllowedAttribute
2019-04-11 13:27:41 +02:00
Nicolas Grekas
5f4c27f0de minor #31067 Optimize SVGs (MartijnCuppens)
This PR was merged into the 3.4 branch.

Discussion
----------

Optimize SVGs

| Q             | A
| ------------- | ---
| Branch?       | 3.4 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | /   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | / <!-- required for new features -->

Used [svgo](https://github.com/svg/svgo) to optimize the svgs. I kept the `viewBox` attribute to keep the aspects when SVGs are rescaled.

I also added `insert_final_newline = false` to the `.editorconfig` file because the newlines are removed from the SVGs and there's only one line left.

Commits
-------

4614cea9d2 Optimize SVGs
2019-04-11 13:23:48 +02:00
Nicolas Grekas
bc9c89eb44 Merge branch '4.2'
* 4.2:
  CS Fixes: Not double split with one array argument
2019-04-11 13:18:55 +02:00
Nicolas Grekas
3d2bc481cc bug #31073 #30998 Fix deprecated setCircularReferenceHandler call (dhaarbrink)
This PR was squashed before being merged into the 4.3-dev branch (closes #31073).

Discussion
----------

#30998 Fix deprecated setCircularReferenceHandler call

| Q             | A
| ------------- | ---
| Branch?       | 4.2
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #30998
| License       | MIT

Instead of calling the `setCircularReferenceHandler()` method, it puts the handler in the default context.

Commits
-------

3a680402ce #30998 Fix deprecated setCircularReferenceHandler call
2019-04-11 13:04:26 +02:00
Dennis Haarbrink
3a680402ce #30998 Fix deprecated setCircularReferenceHandler call 2019-04-11 13:04:16 +02:00
Nicolas Grekas
2a1137a05c bug #31071 property normalizer should also pass format and context to isAllowedAttribute (dbu)
This PR was merged into the 3.4 branch.

Discussion
----------

property normalizer should also pass format and context to isAllowedAttribute

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | found while working on https://github.com/symfony/symfony/pull/30888
| License       | MIT
| Doc PR        | -

the context and format are optional parameters to `isAllowedAttribute`, but should be forwarded. due to this omission, the PropertyNormalizer was ignoring the 'attributes' context option (and does in version 4 also ignore the 'ignore_attributes' context option - that one is a property on the normalizer class in version 3 and therefore not ignored here)

Commits
-------

13e2fb735d property normalizer should also pass format and context to isAllowedAttribute
2019-04-11 13:03:39 +02:00
Hamza Amrouche
97ac9bae11 minor: the meaning of the data breach was not correct 2019-04-11 12:48:53 +02:00
Martijn Cuppens
4614cea9d2 Optimize SVGs 2019-04-11 11:48:14 +02:00
Pablo Ogando Ferreira
93dabbc96a CS Fixes: Not double split with one array argument 2019-04-11 09:45:22 +02:00
Nicolas Grekas
15fedec58b minor #31070 [Dotenv] Improve Dotenv messages (xuanquynh)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Dotenv] Improve Dotenv messages

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

This PR improves a little bit of some messages from https://github.com/symfony/symfony/pull/31062

The first, passive sentences may be more suitable here because the value couldn't change by itself. It is changed by us - human.

The second, if we use **The default value of $usePutenv" argument of "%s\'s constructor**, we have to pass `__CLASS__` as the second parameter of `sprintf` function instead of `__METHOD__`. So, I suggest using **The default value of $usePutenv" argument of "%s"**.

Finally, the deprecation warning of `Dotenv::__construct()` is very long. Let's separate it into 2 pieces for readable reason.

Commits
-------

e871a6a83a Improve Dotenv messages
2019-04-11 09:25:05 +02:00
Pol Dellaiera
526cad6909 Make sure that logged URL is the same as the one which is requested. 2019-04-11 09:17:46 +02:00
Fabien Potencier
751baaf3c7 bug #31024 [Mailer] fixed roundrobin test one dead which should recover (scuben, fabpot)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Mailer] fixed roundrobin test one dead which should recover

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | WIP    <!-- please add some, will be required by reviewers -->
| License       | MIT
| Doc PR        | n/a

The Test `testSendOneDeadButRecover` is not checking the recovery part of its job. I fixed that by adding more `send` calls and added another test so that both recoveries (within retry period and not within retry period) are covered.

The `RoundRobinTransport` had a bug where the transport is dead but not yet in the `retryPeriod`. In that case the transport would not have been added back to the stack and thus got lost. Fixed that but that required an additional check if all transports are dead to prevent an infinite loop.

Commits
-------

5d4d4e7a71 fixed roundrobin dead transport which should recover
ccbb171312 fixed roundrobin dead transport which should recover
2019-04-11 08:24:11 +02:00
David Buchmann
13e2fb735d property normalizer should also pass format and context to isAllowedAttribute 2019-04-11 07:44:34 +02:00
Quynh Xuan Nguyen
e871a6a83a Improve Dotenv messages 2019-04-11 08:53:16 +07:00
Nicolas Grekas
e0c4528237 [Dotenv] fix typos 2019-04-10 22:28:30 +02:00
Fabien Potencier
5d4d4e7a71 fixed roundrobin dead transport which should recover 2019-04-10 21:43:06 +02:00
Patrick Landolt
ccbb171312 fixed roundrobin dead transport which should recover 2019-04-10 21:43:06 +02:00
Fabien Potencier
7e2fbe13c8 Merge branch '4.2'
* 4.2:
  fixed bad merge
  Show more accurate message in profiler when missing stopwatch
  CS Fixes: Not double split with one array argument
  [Serializer] Add default object class resolver
  Remove redundant animation prefixes
  Remove redundant `box-sizing` prefixes
  [VarExporter] support PHP7.4 __serialize & __unserialize
  Rework firewall access denied rule
  MetadataAwareNameConverter: Do not assume that property names are strings
  [VarExporter] fix exporting classes with private constructors
  fixed CS
  Fix missing $extraDirs when open_basedir returns
2019-04-10 21:42:49 +02:00
Fabien Potencier
9ee6fc15e1 fixed bad merge 2019-04-10 21:42:23 +02:00
Fabien Potencier
b6c6338f71 feature #31062 [Dotenv] Deprecate useage of "putenv" (Nyholm)
This PR was squashed before being merged into the 4.3-dev branch (closes #31062).

Discussion
----------

[Dotenv] Deprecate useage of "putenv"

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | n/a

From discussions on https://github.com/symfony/recipes/pull/571, I think it is a good idea to make people opt-in to using `putenv`.

In Symfony 5.0 we will just change the value of the constructor. As an alternative, we could decide we want to remove `putenv` in Symfony 5.0. If so, I would also deprecate `$usePutenv=true`.

Commits
-------

8e45fc043e [Dotenv] Deprecate useage of \"putenv\"
2019-04-10 18:25:47 +02:00
Tobias Nyholm
8e45fc043e [Dotenv] Deprecate useage of \"putenv\" 2019-04-10 18:25:38 +02:00
Fabien Potencier
b13a23fe45 Merge branch '3.4' into 4.2
* 3.4:
  Show more accurate message in profiler when missing stopwatch
  CS Fixes: Not double split with one array argument
  Remove redundant animation prefixes
  Remove redundant `box-sizing` prefixes
  Rework firewall access denied rule
  fixed CS
  Fix missing $extraDirs when open_basedir returns
2019-04-10 18:20:36 +02:00
Fabien Potencier
32c448f639 minor #31064 CS Fixes: Not double split with one array argument (rubenrua)
This PR was merged into the 3.4 branch.

Discussion
----------

CS Fixes: Not double split with one array argument

| Q             | A
| ------------- | ---
| Branch?       |  3.4  (master from #31063)
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | None
| License       | MIT
| Doc PR        | None

Keep to use the same CS in all the Symfony code base.

Use:
```php
$resolver->setDefaults([
    'compound' => false
]);
```

Instead of:
```php
$resolver->setDefaults(
    [
        'compound' => false,
    ]
);
```

Keep the double split when the method has two or more arguments.

I miss a PSR with this rule.

Commits
-------

a56bf552ad CS Fixes: Not double split with one array argument
2019-04-10 18:18:38 +02:00
Fabien Potencier
f7cd81d805 bug #31059 Show more accurate message in profiler when missing stopwatch (linaori)
This PR was squashed before being merged into the 3.4 branch (closes #31059).

Discussion
----------

Show more accurate message in profiler when missing stopwatch

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

This adds a message to the profiler if the stopwatch component is not installed, instead of suggesting to check if debug is enabled (even if it is enabled).

I had to add a method in the collector to expose the value collected, which in theory adds a feature. Is there perhaps a way to expose this collected data _without_ a "BC break"? I don't think it breaks anything, though it does make the dependencies on the http-kernel a bit strict. The other solution is to ignore if it's null and only act if it's a boolean (feature detection).

Commits
-------

326aa86d6a Show more accurate message in profiler when missing stopwatch
2019-04-10 18:17:42 +02:00
Lynn
326aa86d6a Show more accurate message in profiler when missing stopwatch 2019-04-10 18:17:31 +02:00
Robin Chalas
a7ce547fdb minor #31011 [Security][TokenInterface] Prepare for the new serialization mechanism (fancyweb)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Security][TokenInterface] Prepare for the new serialization mechanism

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

Continuation of https://github.com/symfony/symfony/pull/30965

Commits
-------

e6455ea2d8 [Security][TokenInterface] Prepare for the new serialization mechanism
2019-04-10 18:09:22 +02:00
Thomas Calvet
e6455ea2d8 [Security][TokenInterface] Prepare for the new serialization mechanism 2019-04-10 18:01:24 +02:00
rubenrua
a56bf552ad CS Fixes: Not double split with one array argument
Keep to use the same CS in all the Symfony code base.

Use:
```php
$resolver->setDefaults([
    'compound' => false
]);
```

Instead of:
```php
$resolver->setDefaults(
    [
        'compound' => false,
    ]
);
```

Keep the double split when the method has two or more arguments.

I miss a PSR with this rule.
2019-04-10 18:00:48 +02:00
Fabien Potencier
b2f8f0d3a2 bug #31044 [HttpClient] Do not allow setting both json and body (gisostallenberg)
This PR was squashed before being merged into the 4.3-dev branch (closes #31044).

Discussion
----------

[HttpClient] Do not allow setting both json and body

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #30769
| License       | MIT
| Doc PR        | n/a

This will keep developers from using both the options `$options['body']` and `$options['json']`. Using both results in only json being the body of the request, which might lead to unexpected results.

Commits
-------

601adf5de7 [HttpClient] Do not allow setting both json and body
2019-04-10 17:10:52 +02:00
Giso Stallenberg
601adf5de7 [HttpClient] Do not allow setting both json and body 2019-04-10 17:10:32 +02:00
Nicolas Grekas
b09dfd9d8e feature #31021 [Cache] Added command for list all available cache pools (Nyholm)
This PR was squashed before being merged into the 4.3-dev branch (closes #31021).

Discussion
----------

[Cache] Added command for list all available cache pools

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony-docs/issues/9782
| License       | MIT
| Doc PR        |

Commits
-------

5c210e6fd5 [Cache] Added command for list all available cache pools
2019-04-10 13:38:41 +02:00
Tobias Nyholm
5c210e6fd5 [Cache] Added command for list all available cache pools 2019-04-10 13:38:35 +02:00
Fabien Potencier
98e0975113 bug #31026 [Serializer] Add default object class resolver (jdecool)
This PR was squashed before being merged into the 4.2 branch (closes #31026).

Discussion
----------

[Serializer] Add default object class resolver

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

The commit 1d8b5af3f0 introduce a BC break because before that commit the `extractAttributes` the `$object` can be a string which contain the fully qualified name of an object.

To fix the BC break and preserve the new feature, I suggest to create a default object class resolver if it is not set by the developer.

Commits
-------

dd5b8f16f5 [Serializer] Add default object class resolver
2019-04-10 13:09:12 +02:00
Jérémy DECOOL
dd5b8f16f5 [Serializer] Add default object class resolver 2019-04-10 13:09:05 +02:00
Alexander M. Turek
20f4eb3204 Document the state object that is passed around by the HttpClient. 2019-04-10 13:03:42 +02:00
Martijn Cuppens
3655bcfaf7
Remove redundant animation prefixes
CSS animations can be used safely without any prefixes
2019-04-10 12:58:43 +02:00
Fabien Potencier
de53bd6c67 bug #31031 [Serializer] MetadataAwareNameConverter: Do not assume that property names are strings (soyuka)
This PR was merged into the 4.2 branch.

Discussion
----------

[Serializer]  MetadataAwareNameConverter: Do not assume that property names are strings

| Q             | A
| ------------- | ---
| Branch?       | 4.2 (class introduced in v4.2.3)
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/api-platform/core/pull/2709
| License       | MIT
| Doc PR        | n/a

When this class was introduced, there was an assumption made about the type of `propertyNames` and therefore a `: ?string` return type was introduced in the fallbacks/normalization private methods. Because symfony doesn't use strict mode yet (compatibility issues with php IIRC), when using a non-string property name (for example the integer `0` which is a valid property name in an array), it will convert the integer to a string.
This is not good, especially if you have a name converter that returns the given property name (ie no transformation) you'll have it's type changed which isn't correct.

I've discovered this bug while working on adding this name converter in api platform (https://github.com/api-platform/core/pull/2709).

Commits
-------

af1e136ca0 MetadataAwareNameConverter: Do not assume that property names are strings
2019-04-10 12:55:09 +02:00
Martijn Cuppens
0cf3227011 Remove redundant box-sizing prefixes 2019-04-10 12:45:20 +02:00
Fabien Potencier
fd1408b138 bug #30423 [Security] Rework firewall's access denied rule (dimabory)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Rework firewall's access denied rule

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

Follow tickets provided above to reproduce bugs. (there are also some project examples)

~~In addition, I'm looking for someone who knows an answer to [this](https://github.com/symfony/symfony/issues/30099#issuecomment-468693492) regarding rework in this PR.~~

Commits
-------

5790859275 Rework firewall access denied rule
2019-04-10 08:03:21 +02:00
Nicolas Grekas
c7a504c822 [VarExporter] support PHP7.4 __serialize & __unserialize 2019-04-09 22:09:28 +02:00
Mikkel Paulson
4693422642 Improve test coverage from #30997
Test coverage added in #30997 did a good job of validating previous
behaviour, but didn't adequately cover the new callback logic. Added
coverage for new methods on the Question object.
2019-04-09 14:49:00 -04:00
Dmytro
5790859275 Rework firewall access denied rule 2019-04-09 18:04:58 +03:00
Fabien Potencier
4d9f5ee823 feature #31027 [Config] Deprecate TreeBuilder::root (gharlan)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Config] Deprecate TreeBuilder::root

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

Alternative idea to #31015. Or is the `root` method still needed?

It would look like this:

![Screenshot 2019-04-09 01 15 04](https://user-images.githubusercontent.com/330436/55762865-fbd85900-5a64-11e9-9680-0870c85d1c09.png)

Commits
-------

ff6bc79eba Deprecate TreeBuilder::root
2019-04-09 17:03:26 +02:00
Gregor Harlan
ff6bc79eba
Deprecate TreeBuilder::root 2019-04-09 12:34:11 +02:00
Pol Dellaiera
e77108d24e [HttpClient] Add tests - update code style nits. 2019-04-09 11:46:29 +02:00
soyuka
af1e136ca0 MetadataAwareNameConverter: Do not assume that property names are strings 2019-04-09 10:07:40 +02:00
Fabien Potencier
6a5de47ed7 bug #31028 Fixes unmapped parameter for an error message in HttpClientTrait (dbrumann)
This PR was merged into the 4.3-dev branch.

Discussion
----------

Fixes unmapped parameter for an error message in HttpClientTrait

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

Commits
-------

b9e2046821 Fixes sprintf unmapped parameter.
2019-04-09 08:06:22 +02:00
Robin Chalas
529211d7ed [Security] Replace Argon2*PasswordEncoder by SodiumPasswordEncoder
This reverts commit dc95a6fec6.
2019-04-08 22:34:55 +02:00
Nicolas Grekas
75b1157633 bug #31020 [VarExporter] fix exporting classes with private constructors (nicolas-grekas)
This PR was merged into the 4.2 branch.

Discussion
----------

[VarExporter] fix exporting classes with private constructors

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

Reported by @theofidry

Commits
-------

e354d54e7e [VarExporter] fix exporting classes with private constructors
2019-04-08 22:31:56 +02:00
Denis Brumann
b9e2046821
Fixes sprintf unmapped parameter. 2019-04-08 21:51:36 +02:00
Nicolas Grekas
e354d54e7e [VarExporter] fix exporting classes with private constructors 2019-04-08 20:04:40 +02:00
Robin Chalas
dc95a6fec6 [Security] Fix argon2 availability checks 2019-04-08 18:18:02 +02:00
Fabien Potencier
b93d2bf941 fixed CS 2019-04-08 18:15:54 +02:00
Florian Morello
e238c893e9 Fix missing $extraDirs when open_basedir returns 2019-04-08 18:14:48 +02:00
Fabien Potencier
d935f40ed0 minor #31013 fix tests (xabbuh)
This PR was merged into the 4.3-dev branch.

Discussion
----------

fix tests

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

* use legacy group when using the deprecated `hinclude_default_template`
  templating config option
* conflict with DependencyInjection 4.2 in the HttpKernel component to
  be able to rely on five values being retrieved from the values of the
  `BoundArgument` class
* let the TwigBundle conflict with versions of FrameworkBundle that do
  not ship the `url_helper` service

Commits
-------

682855fa7d fix tests
2019-04-08 18:11:07 +02:00
Fabien Potencier
4e1244ecdb feature #30997 [Console] Add callback support to Console\Question autocompleter (Mikkel Paulson)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Console] Add callback support to Console\Question autocompleter

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | minor edge case, see below
| Deprecations? | no
| Tests pass?   | yes (with expanded coverage)
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | symfony/symfony-docs#11349

Autocompletion is a useful feature, but it's not always possible to anticipate every input the user could provide in advance. For instance, if we're allowing the user to input a path to a file, it's not practical to populate an array with every file and directory in the filesystem, but we can easily build a callback function that populates its suggestions based on the path already inputted.

This change replaces the autocomplete logic that accepts an array of suggestions with an architecture that uses a callback function to populate suggestions in real time as the user provides input.

The first commit adds a test class covering all methods of the `Question` object, while the second commit modifies the `Question` object to accept and store a callback function. The existing `[gs]etAutocompleterValues()` methods are preserved, but instead of being referenced directly from the `QuestionHelper`, they create and call their own callbacks to emulate the current behaviour.

There is one edge case that is changed, as documented in the test: when a `Traversable` object is passed to `setAutocompleterValues()`, the return value of `getAutocompleterValues()` will be the unpacked (array) form of that object rather than the object itself. The unpacking is done lazily and cached on the callback function.

Commits
-------

caad562c11 [Console] Add callback support to Console\Question autocompleter
2019-04-08 17:52:58 +02:00
Mikkel Paulson
caad562c11 [Console] Add callback support to Console\Question autocompleter
In order to enable more dynamic use cases such as word-by-word
autocomplete and path-based autocomplete, update the autocomplete logic
of the Question object and its helper to accept a callback function.
This function is called on each keystroke and should return an array of
possibilities to present to the user.

The original logic only accepted an array, which required
implementations to anticipate in advance all possible input values.

This change is fully backwards-compatible, but reimplements the old
behaviour by initializing a "dumb" callback function that always returns
the same array regardless of input.
2019-04-08 17:48:46 +02:00
Christian Flothmann
682855fa7d fix tests
* use legacy group when using the deprecated `hinclude_default_template`
  templating config option
* conflict with DependencyInjection 4.2 in the HttpKernel component to
  be able to rely on five values being retrieved from the values of the
  `BoundArgument` class
* let the TwigBundle conflict with versions of FrameworkBundle that do
  not ship the `url_helper` service
2019-04-08 17:40:01 +02:00
Nicolas Grekas
fa308e21eb minor #30978 [HttpClient] Allow the HTTP_PROXY environment variable lookup with phpdbg (theofidry)
This PR was squashed before being merged into the 4.3-dev branch (closes #30978).

Discussion
----------

[HttpClient] Allow the HTTP_PROXY environment variable lookup with phpdbg

| 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

`phpdbg` and `embed` are two other legit PHP SAPI's hence should be allowed.

Commits
-------

fbd439e0bd [HttpClient] Allow the HTTP_PROXY environment variable lookup with phpdbg
2019-04-08 17:24:46 +02:00
Théo FIDRY
fbd439e0bd [HttpClient] Allow the HTTP_PROXY environment variable lookup with phpdbg 2019-04-08 17:24:39 +02:00
Christian Flothmann
d56ebefa98 Merge branch '4.2'
* 4.2:
  fix buildTableRows when Colspan is use with content too long
  take setIgnoredAttributes() deprecation into account
2019-04-08 17:16:54 +02:00
Fabien Potencier
87c4cc1301 minor #31008 [FrameworkBundle] for Psr18HttpClient configuration (nicolas-grekas)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[FrameworkBundle] for Psr18HttpClient configuration

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

No need for autowiring actually here.

Commits
-------

bf89907dce [FrameworkBundle] for Psr18HttpClient configuration
2019-04-08 16:25:33 +02:00
Fabien Potencier
c248646e59 bug #30852 [Console] fix buildTableRows when Colspan is use with content too long (Raulnet)
This PR was merged into the 4.2 branch.

Discussion
----------

[Console] fix buildTableRows when Colspan is use with content too long

| Q             | A
| ------------- | ---
| Branch?       |  4.2 for bug fixes
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes    ( new test added  TableTest::testWithColspanAndMaxWith)
| Fixed tickets |  https://github.com/symfony/symfony/issues/30701
| License       | MIT
| Doc PR        | no

<!-- fix for keeping ColumnMaxwith when Content is too long

Commits
-------

1cf9659b5f fix buildTableRows when Colspan is use with content too long
2019-04-08 16:23:48 +02:00
Nicolas Grekas
bf89907dce [FrameworkBundle] for Psr18HttpClient configuration 2019-04-08 16:21:17 +02:00
Fabien Potencier
f794e41544 minor #31005 [Serializer] take setIgnoredAttributes() deprecation into account (xabbuh)
This PR was merged into the 4.2 branch.

Discussion
----------

[Serializer] take setIgnoredAttributes() deprecation into account

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

Commits
-------

4134be127a take setIgnoredAttributes() deprecation into account
2019-04-08 16:14:28 +02:00
Fabien Potencier
9d3c86fdb6 Merge branch '4.2'
* 4.2:
  [serializer] validate that the specified callbacks and max_depth_handler are actually callable
  [Serializer] Respect ignored attributes in cache key of normalizer
  fix resetting the COLUMN environment variable
  Fix TestRunner compatibility to PhpUnit 8
  Fix dark themed componnents
  prevent mixup of the object to populate
2019-04-08 16:11:46 +02:00
Fabien Potencier
35b1deda6b feature #30959 [FrameworkBundle] [TwigBundle] Move the hinclude key away from templating (Simperfit)
This PR was squashed before being merged into the 4.3-dev branch (closes #30959).

Discussion
----------

[FrameworkBundle] [TwigBundle] Move the hinclude key away from templating

| Q             | A
| ------------- | ---
| Branch?       | master
| 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 | #30874 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | to do when pr is validated.

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

Maybe I shouldn't move directly the config key from templating to the other, but since the templating component has been deprecated we may change this directly without deprecating that key alone, WDYT ?

Commits
-------

4f39339fec [FrameworkBundle] [TwigBundle] Move the hinclude key away from templating
2019-04-08 16:08:51 +02:00
Amrouche Hamza
4f39339fec [FrameworkBundle] [TwigBundle] Move the hinclude key away from templating 2019-04-08 16:08:42 +02:00
Raulnet
1cf9659b5f fix buildTableRows when Colspan is use with content too long 2019-04-08 15:40:54 +02:00
David Buchmann
37891525f7 [serializer] validate that the specified callbacks and max_depth_handler are actually callable 2019-04-08 15:09:58 +02:00
Christian Flothmann
4134be127a take setIgnoredAttributes() deprecation into account 2019-04-08 13:47:38 +02:00
Christian Flothmann
ec41d76624 Merge branch '3.4' into 4.2
* 3.4:
  [Serializer] Respect ignored attributes in cache key of normalizer
  fix resetting the COLUMN environment variable
  Fix TestRunner compatibility to PhpUnit 8
  prevent mixup of the object to populate
2019-04-08 13:36:05 +02:00
Fabien Potencier
7a3060a867 bug #30907 [Serializer] Respect ignored attributes in cache key of normalizer (dbu)
This PR was squashed before being merged into the 3.4 branch (closes #30907).

Discussion
----------

[Serializer] Respect ignored attributes in cache key of normalizer

EUFOSSA

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

Do not share the attributes cache in object normalizer when using a different setting for the ignoredAttributes setting.

In Symfony 4.2, the setter is deprecated in favor of the ignored_attibutes option in the $context. When merging this up, we will however still need to respect the field as well for BC, the cache key does not look at the default context (apart from the deprecated modifiers, the default context is immutable)

There might be performance regression for some use cases, but also could be a performance improvement when using 'attributes' in the context with lists of objects of the same class.

Commits
-------

926d228877 [Serializer] Respect ignored attributes in cache key of normalizer
2019-04-08 12:10:13 +02:00
David Buchmann
926d228877 [Serializer] Respect ignored attributes in cache key of normalizer 2019-04-08 12:10:02 +02:00
Christian Flothmann
8fb2074972 fix resetting the COLUMN environment variable 2019-04-08 11:29:13 +02:00
Fabien Potencier
9b9d416cf6 bug #30973 [WebProfiler] Fix Javascript error when using custom stopwatch categories (curry684)
This PR was squashed before being merged into the 4.3-dev branch (closes #30973).

Discussion
----------

[WebProfiler] Fix Javascript error when using custom stopwatch categories

Fixes #30745

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #30745
| License       | MIT

Made the getter do lazy creation so it can dynamically adapt to whatever it's given.

Commits
-------

e991472a76 [WebProfiler] Fix Javascript error when using custom stopwatch categories
2019-04-08 11:00:23 +02:00
Niels Keurentjes
e991472a76 [WebProfiler] Fix Javascript error when using custom stopwatch categories 2019-04-08 11:00:04 +02:00
Nicolas Grekas
d7a8b3d5e1 bug #30085 Fix TestRunner compatibility to PhpUnit 8 (alexander-schranz)
This PR was squashed before being merged into the 3.4 branch (closes #30085).

Discussion
----------

Fix TestRunner compatibility to PhpUnit 8

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

Modify the installed phpunit version to be compatibility with the symfony custom TestRunner. This is sure not the best way but maybe currently the fastest way to support PhpUnit 8. The hack should be removed as soon as there is another way to implement a custom Runner.

Commits
-------

a0c66a399d Fix TestRunner compatibility to PhpUnit 8
2019-04-08 09:56:38 +02:00
Alexander Schranz
a0c66a399d Fix TestRunner compatibility to PhpUnit 8 2019-04-08 09:56:31 +02:00
Александр Ли
2ae2fd800d [FrameworkBundle] Fix Controller deprecated when using composer --optimized
Update Controller.php
Update Controller.php
2019-04-08 12:19:48 +05:00
Roland Franssen
d2f2e56472 Fix dark themed componnents 2019-04-08 09:12:55 +02:00
Fabien Potencier
f539932899 fixed CS 2019-04-08 08:16:24 +02:00
Fabien Potencier
fa7df09dbb feature #30968 [Security] Add Argon2idPasswordEncoder (chalasr)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Security] Add Argon2idPasswordEncoder

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

Currently we have a `Argon2iPasswordEncoder` that may hash passwords using `argon2id` instead of `argon2i` (platform-dependent) which is not good.
This deprecates producing/validating `argon2id` hashed passwords using the `Argon2iPasswordEncoder`, and adds a `Argon2idPasswordEncoder` able to produce/validate `argon2id` hashed passwords only.

#EUFOSSA

Commits
-------

0c82173b24 [Security] Add Argon2idPasswordEncoder
2019-04-08 08:14:55 +02:00
Fabien Potencier
b30f57e14b bug #30977 [serializer] prevent mixup in normalizer of the object to populate (dbu)
This PR was merged into the 3.4 branch.

Discussion
----------

[serializer] prevent mixup in normalizer of the object to populate

EUFOSSA

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

OBJECT_TO_POPULATE is meant to specify the top level object. The implementation left the option in the context and it would be used whenever we have the first element that matches the class. #30607 (to master) introduces the feature to also keep the instances of attributes to deeply populate an existing object tree. In both cases, we do not want the mix up to happen with what the current OBJECT_TO_POPULATE is.

Commits
-------

fdb668e051 prevent mixup of the object to populate
2019-04-08 08:05:24 +02:00
Fabien Potencier
5638d6adcc minor #30965 Prepare for the new serialization mechanism (fancyweb)
This PR was merged into the 4.3-dev branch.

Discussion
----------

Prepare for the new serialization mechanism

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

#eufossa

Should I maybe split this component by component ?

https://wiki.php.net/rfc/custom_object_serialization has been accepted.

Best viewed in "split" mode.

This work is kind of required for https://github.com/symfony/symfony/issues/30304 so we don't trigger 30 deprecations from our own code base.

Commits
-------

d412e77a9c Prepare for the new serialization mechanism
2019-04-08 08:01:37 +02:00
Fabien Potencier
35684187d5 bug #30995 [Mailer] allow user/pass on dsn while using failover/roundrobin (scuben)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Mailer] allow user/pass on dsn while using failover/roundrobin

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no <!-- 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 | n/a
| License       | MIT
| Doc PR        | n/a

this PR provides two things:
1. It is possible now to user `username` and `password` in a failover or round robin transport when using smtp
2. Fixed a type problem with `username` and `password` for the smtp transport as `getUsername()` cannot return `null` because of its signature but if no `username` is provided then the property would have been `null`. Fixed with setting an empty string as default. Same for `password`. (This was discovered by adding a test - yeah!)

Commits
-------

4518ac56a1 allow user/pass on dns while using failover/roundrobin and type fix for username/password
2019-04-08 07:54:46 +02:00
Fabien Potencier
e02cbe918a Merge branch '4.2'
* 4.2:
  Make tests independent from each other
2019-04-08 07:24:03 +02:00
Fabien Potencier
bbad6e8e58 Merge branch '3.4' into 4.2
* 3.4:
  Make tests independent from each other
2019-04-08 07:23:45 +02:00
Fabien Potencier
48bb7c999c minor #30986 Make tests independent from each other (greg0ire)
This PR was merged into the 3.4 branch.

Discussion
----------

Make tests independent from each other

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

Environment variables set in a test need to be restored to their
previous values or unset if we want to be able to run tests
independently.

Credits to @ostrolucky for spotting this issue, I'm available for help when merging this in more recent branch (issues may appear then).

Created during the EU-FOSSA hackathon

Commits
-------

00883fc409 Make tests independent from each other
2019-04-08 07:17:37 +02:00
Fabien Potencier
546b1146c4 fixed CS 2019-04-08 07:16:00 +02:00
Fabien Potencier
02e865b298 bug #30992 [TwigBridge][DependencyInjection] ignore null arguments (xabbuh)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[TwigBridge][DependencyInjection] ignore null arguments

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

Commits
-------

44eb7a0485 fix backwards compatibility breaks
2019-04-08 07:15:29 +02:00
Nicolas Grekas
408e4aa48e bug #30990 Allow env processor to resolve :: (jderusse)
This PR was merged into the 4.3-dev branch.

Discussion
----------

Allow env processor to resolve `::`

| 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        | N/A

The env processor resolve to null when no fallback are provided. ie. `env(default::NOT_EXISTS)`

Issue is that the regexp does not allow such pattern. thus made the feature unusable.

Commits
-------

6b6c24c618 Allow env processor to resolve `::`
2019-04-07 23:36:42 +02:00
Christian Flothmann
44eb7a0485 fix backwards compatibility breaks 2019-04-07 23:31:58 +02:00
Grégoire Paris
00883fc409
Make tests independent from each other
Environment variables set in a test need to be restored to their
previous values or unset if we want to be able to run tests
independently.
2019-04-07 23:05:09 +02:00
Patrick Landolt
4518ac56a1 allow user/pass on dns while using failover/roundrobin and type fix for username/password 2019-04-07 22:39:37 +02:00
Jérémy Derussé
6b6c24c618
Allow env processor to resolve :: 2019-04-07 22:36:28 +02:00
Christian Flothmann
2efd7b2149 Merge branch '4.2'
* 4.2:
  fix tests
  fix PHPUnit 4.8 compatibility
  [Debug] Fixed error handling when an error is already handled when another error is already handled (5)
  sync validator translations
2019-04-07 21:49:19 +02:00
Christian Flothmann
5b8a68d98d minor #30989 fix tests (xabbuh)
This PR was merged into the 4.2 branch.

Discussion
----------

fix tests

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

Commits
-------

27df966705 fix tests
2019-04-07 21:42:46 +02:00
Robin Chalas
0c82173b24 [Security] Add Argon2idPasswordEncoder 2019-04-07 21:35:55 +02:00
Christian Flothmann
27df966705 fix tests 2019-04-07 21:30:26 +02:00
Thomas Calvet
d412e77a9c Prepare for the new serialization mechanism 2019-04-07 20:20:37 +02:00
Christian Flothmann
397e4b8931 Merge branch '3.4' into 4.2
* 3.4:
  fix PHPUnit 4.8 compatibility
  [Debug] Fixed error handling when an error is already handled when another error is already handled (5)
  sync validator translations
2019-04-07 20:00:57 +02:00
Christian Flothmann
64fa13bf44 fix PHPUnit 4.8 compatibility 2019-04-07 19:26:29 +02:00
Fabien Potencier
615cc10b70 minor #30946 [Validator] sync validator translations (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] sync validator translations

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

#FOSSHackathons #EUFOSSA

Commits
-------

83f675d9f3 sync validator translations
2019-04-07 18:44:15 +02:00
Christophe Coevoet
9f3ce4832b Merge branch '4.2'
* 4.2:
  [Form] Fix tests
  Fix the configurability of CoreExtension deps in standalone usage
  [Cache] fix using ProxyAdapter inside TagAwareAdapter
2019-04-07 15:57:40 +02:00
Christophe Coevoet
393c6b390c Merge branch '3.4' into 4.2
* 3.4:
  [Form] Fix tests
  Fix the configurability of CoreExtension deps in standalone usage
  [Cache] fix using ProxyAdapter inside TagAwareAdapter
2019-04-07 15:57:20 +02:00
Fabien Potencier
cd54e0f232 bug #30976 [Debug] Fixed error handling when an error is already handled when another error is already handled (5) (lyrixx)
This PR was merged into the 3.4 branch.

Discussion
----------

[Debug] Fixed error handling when an error is already handled when another error is already handled (5)

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

---

Please, don't ask how to reproduce it :)

Commits
-------

a36c7315f4 [Debug] Fixed error handling when an error is already handled when another error is already handled (5)
2019-04-07 15:50:27 +02:00
Christophe Coevoet
c68ef4648c minor #30966 [DoctrineBridge] Deprecated using IdReader when optimization is not possible (HeahDude)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[DoctrineBridge] Deprecated using IdReader when optimization is not possible

| Q             | A
| ------------- | ---
| Branch?       | master
| 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 | ~
| License       | MIT
| Doc PR        | ~

Follow up of #30962. (Review only the second commit until #30962 is merged).

Commits
-------

a234c8913e [DoctrineBridge] Deprecated using IdReader when optimization is not possible
2019-04-07 15:40:33 +02:00
Jules Pietri
a234c8913e [DoctrineBridge] Deprecated using IdReader when optimization is not possible 2019-04-07 15:30:06 +02:00
Robin Chalas
35418be8c4 [Form] Fix tests 2019-04-07 15:12:50 +02:00
Nicolas Grekas
d8b03ee437 bug #30979 Fix the configurability of CoreExtension deps in standalone usage (stof)
This PR was squashed before being merged into the 3.4 branch (closes #30979).

Discussion
----------

Fix the configurability of CoreExtension deps in standalone usage

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | not yet, but will allow fixing them
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

When using the Forms entrypoint to configure the component, there was no chance to configure dependencies of the CoreExtension, as the one registered without argument was first and would win.
The builder now delays the prepending of the CoreExtension to do it only if the CoreExtension is not registered explicitly.

We discovered that when trying to fix tests for the FileType, where we wanted to pass a Translator to it.

Commits
-------

934118b131 Fix the configurability of CoreExtension deps in standalone usage
2019-04-07 15:12:19 +02:00
Christophe Coevoet
934118b131 Fix the configurability of CoreExtension deps in standalone usage 2019-04-07 15:12:11 +02:00
Nicolas Grekas
c274dffc8b feature #30963 [Serializer] Experimental for ObjectListExtractor (joelwurtz)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Serializer] Experimental for ObjectListExtractor

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

Related to #30818

I want to mark this class as `@expiremental` until we have the full refactoring done of the Serializer, also this would allow change needed if some behavior was not correctly taken into care in 4.3

Mark also `final` for the default implementation as we don't want that to be extendable and user should use composition over inheritance.

Commits
-------

b0cdf45464 Set object list extractor as expiremental, and use final for default implementation
2019-04-07 14:59:03 +02:00
Nicolas Grekas
47e571b3fc feature #30933 [Routing][ObjectRouteLoader] Allow invokable route loader services (fancyweb)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Routing][ObjectRouteLoader] Allow invokable route loader services

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/pull/11333

#eufossa

Fall back by default on the `__invoke` method when it is not configured.

Using a regex is easier to check that the format is valid, at least for the time we have to supports the single column notation.

TODO :
- [x] Changelog entry
- [x] Doc PR

Commits
-------

5bf7ad44e1 [Routing][ObjectRouteLoader] Allow invokable route loader services
2019-04-07 14:52:56 +02:00
David Buchmann
fdb668e051 prevent mixup of the object to populate 2019-04-07 14:49:34 +02:00
Grégoire Pineau
a36c7315f4 [Debug] Fixed error handling when an error is already handled when another error is already handled (5) 2019-04-07 14:43:40 +02:00
Joel Wurtz
b0cdf45464
Set object list extractor as expiremental, and use final for default implementation 2019-04-07 14:24:52 +02:00
Nicolas Grekas
77320cb645 bug #30918 [Cache] fix using ProxyAdapter inside TagAwareAdapter (dmaicher)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] fix using ProxyAdapter inside TagAwareAdapter

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

EUFOSSA

After some debugging this is my first attempt to fix this issue @nicolas-grekas 😊 Let's discuss it.

without the fix the test fails like this:

```
Testing Symfony\Component\Cache\Tests\Adapter\TagAwareAndProxyAdapterIntegrationTest
F                                                                   1 / 1 (100%)

Time: 28 ms, Memory: 4.00MB

There was 1 failure:

1) Symfony\Component\Cache\Tests\Adapter\TagAwareAndProxyAdapterIntegrationTest::testIntegration
Failed asserting that Array &0 (
    'tag1' => 0
    'tag2' => 0
) is identical to 'bar'.

/var/www/symfony/src/Symfony/Component/Cache/Tests/Adapter/TagAwareAndProxyAdapterIntegrationTest.php:26

FAILURES!
Tests: 1, Assertions: 1, Failures: 1.

Commits
-------

98b9be9b6a [Cache] fix using ProxyAdapter inside TagAwareAdapter
2019-04-07 14:23:14 +02:00
Nicolas Grekas
c6505d3a97 feature #30897 [DIC] Add a require env var processor (mpdude)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[DIC] Add a `require` env var processor

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | symfony/symfony-docs#11313

This adds a new `require` processor that will `require()` the PHP file given as input value and return the value `return`ed from that file. Leverages opcaching (yay!).

#EUFOSSA

Commits
-------

03da3a22b1 Add a `require` env var processor
2019-04-07 14:20:55 +02:00
Christian Flothmann
83f675d9f3 sync validator translations 2019-04-07 13:52:58 +02:00
Nicolas Grekas
226b36e99a feature #30964 [HttpKernel] Add a "short" trace header format, make header configurable (mpdude)
This PR was squashed before being merged into the 4.3-dev branch (closes #30964).

Discussion
----------

[HttpKernel] Add a "short" trace header format, make header configurable

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        | symfony/symfony-docs#11340

This pull requests adds the first usage of `array_key_first` to the Symfony code base. Additionally, it makes it possible to configure the `HttpCache` to also add a "trace" header in production.

The `HttpCache` is a convenient, low-barrier yet performant way of accelerating the application. By having the "trace" information returned as a header in production as well, you can write it to server log files. For example, with Apache you can use `%{X-Symfony-Cache}o` in the `LogFormat` directive to log response headers.

With the information in the log files, you can easily process it from logfile processing/system metrics tools to find out about cache performance, efficiency and the URLs that might need extra cache tweaking.

<img width="1040" alt="Bildschirmfoto 2019-04-07 um 11 43 23" src="https://user-images.githubusercontent.com/1202333/55681763-6e90e980-592a-11e9-900f-e096350531c2.png">

The "short" format will only output information for the main request to avoid leaking internal URLs for ESI subrequests. I also chose a concise format like `stale/valid/store` because that's much easier to parse out of logfiles (no whitespace, no need for quotes etc.).

If you're not comfortable with having `Symfony` in the header name that way, the header name can be changed through a configuration setting as well.

#FOSSHackathon

Commits
-------

9a2fcc9392 [HttpKernel] Add a \"short\" trace header format, make header configurable
2019-04-07 13:45:14 +02:00
Matthias Pigulla
9a2fcc9392 [HttpKernel] Add a \"short\" trace header format, make header configurable 2019-04-07 13:44:57 +02:00
Tomas
dd93b707cc Use name converter when normalizing constraint violation list 2019-04-07 14:21:30 +03:00
Nicolas Grekas
b0989aaffc feature #29935 [DI] Fix bad error message for unused bind under _defaults (przemyslaw-bogusz)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[DI] Fix bad error message for unused bind under _defaults

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27828
| License       | MIT

**Sidenote**: I originally included the fix in #29897, but I decided to close the previous PR and divide it into two separate PRs for clarity.

**Description:**
With this fix, the message regarding an unused bind will have a clear information about the type of the bind (defined under __defaults_, __instanceof_ or _per service_), as well as the name of the file, in which it was configurated. It's for, both, YAML and XML configurations.

For the core team, please note, that the fix assumes a possibility of definings binds under __instanceof_, which was introduced in #27806. But since fixes are merged into other branches, I thought that it might be necessary to inlude this possibility. If this case requires making separate fixes for different branches, I will gladly do it.

Commits
-------

35bf4203e8 [DI] Fix bad error message for unused bind under _defaults
2019-04-07 12:29:22 +02:00
Fabien Potencier
3df05e0877 feature #30962 [DoctrineBridge] Deprecated implicit optimization in DoctrineChoiceLoader (HeahDude)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[DoctrineBridge] Deprecated implicit optimization in DoctrineChoiceLoader

| Q             | A
| ------------- | ---
| Branch?       | master
| 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 | ~
| License       | MIT
| Doc PR        | ~

#EUFOSSA

Big thanks to @stof for the help with writing the test!

## Description
It happens that the `IdReader` is created by the `DoctrineType` and cached for each entity class case.
But the type already resolves whether or not it should use it, only when we can optimize query thanks to a single id field when defining the `choice_value` option: https://github.com/symfony/symfony/blob/master/src/Symfony/Bridge/Doctrine/Form/Type/DoctrineType.php#L188.

This PR is a first step to optimize the choice loading process.

Commits
-------

287c39b9ea [DoctrineBridge] Deprecated implicit optimization in DoctrineChoiceLoader
2019-04-07 12:26:36 +02:00
Przemysław Bogusz
35bf4203e8 [DI] Fix bad error message for unused bind under _defaults 2019-04-07 12:22:52 +02:00
Jules Pietri
287c39b9ea [DoctrineBridge] Deprecated implicit optimization in DoctrineChoiceLoader 2019-04-07 12:14:41 +02:00
Nicolas Grekas
4447f87c2e Merge branch '4.2'
* 4.2:
  fix translating file validation error message
  [Validator] Add missing Hungarian translations
  Improving deprecation message of the Twig templates directory src/Resources/views
  [3.4] [Validator] Add missing french validation translations.
  [Validator] Only traverse arrays that are cascaded into
  Handle case where no translations were found
  [Validator] Translate unique collection message to Hungarian
  fix tests
  Run test in separate process
  Use a class name that does not actually exist
  [Profiler] Fix dark theme elements color
  fix horizontal spacing of inlined Bootstrap forms
  [Translator] Warm up the translations cache in dev
  turn failed file uploads into form errors
2019-04-07 11:58:10 +02:00
Nicolas Grekas
ecb52bc9f1 Merge branch '3.4' into 4.2
* 3.4:
  fix translating file validation error message
  [Validator] Add missing Hungarian translations
  [3.4] [Validator] Add missing french validation translations.
  [Validator] Only traverse arrays that are cascaded into
  Handle case where no translations were found
  [Validator] Translate unique collection message to Hungarian
  fix tests
  Run test in separate process
  Use a class name that does not actually exist
  fix horizontal spacing of inlined Bootstrap forms
  [Translator] Warm up the translations cache in dev
  turn failed file uploads into form errors
2019-04-07 11:56:43 +02:00
Fabien Potencier
ca290396fb minor #30943 [Asset] PathPackage : use parent getUrl Method instead of duplicating code (tiecoders)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Asset] PathPackage : use parent getUrl Method instead of duplicating code

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

Use parent getUrl method instead of duplicating code.

Commits
-------

0c2a2bf536 ASSET-PathPackage-Enhancement  - Use parent getUrl method instead of duplicating code.
2019-04-07 11:43:31 +02:00
Fabien Potencier
04eed543af minor #30944 Fix Lock test suite (jderusse)
This PR was merged into the 4.3-dev branch.

Discussion
----------

Fix Lock test suite

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

Commits
-------

1f66e7b2be Fix Lock test suite
2019-04-07 11:31:45 +02:00
Christian Flothmann
9c41842756 fix translating file validation error message 2019-04-07 11:31:05 +02:00
Fabien Potencier
76906ab6e8 minor #30953 [Form] Refactor DefaultChoiceListFactory (vudaltsov)
This PR was merged into the 4.3-dev branch.

Discussion
----------

[Form] Refactor DefaultChoiceListFactory

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

A small optimization (remove unnecessary `foreach` calls) and a naming improvement.

ping @HeahDude , @stof

#EUFOSSA

Commits
-------

77424c8557 Refactor DefaultChoiceListFactory
2019-04-07 11:26:33 +02:00
Fabien Potencier
2b01eaaa30 feature #30862 [Routing] UrlHelper to get absolute URL for a path (vudaltsov)
This PR was squashed before being merged into the 4.3-dev branch (closes #30862).

Discussion
----------

[Routing] UrlHelper to get absolute URL for a path

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | todo

I noticed that I need to generate absolute urls quite often. For example when normalizing uploads in API. I found Twig's `absolute_url()` really helpful, but obviously `Symfony\Bridge\Twig\Extension\HttpFoundationExtension` cannot be used as a normalizer's argument service.

In this PR I propose to extract `HttpFoundationExtension::generateAbsoluteUrl` and `HttpFoundationExtension::generateRelativePath` to separate interfaces which could be used on their own. Although this could be just a final class helper, I thought that we might leave a possibility for decoration here. That's why I created interfaces.

- [x] Split `HttpFoundationExtension` into two interfaces
- [x] Deprecate `HttpFoundationExtension::generateAbsoluteUrl` and `HttpFoundationExtension::generateRelativePath`
- [x] Add service definitions
- [x] Fix tests
- [ ] Add docs

Commits
-------

388d8f548c [Routing] UrlHelper to get absolute URL for a path
2019-04-07 11:25:07 +02:00
Valentin
388d8f548c [Routing] UrlHelper to get absolute URL for a path 2019-04-07 11:24:57 +02:00
Valentin
77424c8557 Refactor DefaultChoiceListFactory 2019-04-07 11:13:09 +02:00