Commit Graph

22232 Commits

Author SHA1 Message Date
Nicolas Grekas
24b6848ea7 [Serializer] fix CS 2018-06-11 15:57:31 +02:00
Nicolas Grekas
90afbf73ac Merge branch '4.1'
* 4.1:
  fix deps
  fixed CS
  [FrameworkBundle] fix for allowing single colon controller notation
2018-06-11 15:22:42 +02:00
Nicolas Grekas
66601613b2 Merge branch '4.0' into 4.1
* 4.0:
  fix deps
2018-06-11 15:22:23 +02:00
Nicolas Grekas
9dc1875780 Merge branch '3.4' into 4.0
* 3.4:
  fix deps
2018-06-11 15:21:24 +02:00
Nicolas Grekas
14bbcdb496 fix deps 2018-06-11 15:18:57 +02:00
Fabien Potencier
205d161c00 feature #27031 [Cache] Use sub-second accuracy for internal expiry calculations (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Use sub-second accuracy for internal expiry calculations

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

Embeds #26929, #27009 and #27028, let's focus on the 4th commit for now.

This is my last significant PR in the Cache series :)

By using integer expiries internally, our current implementations are sensitive to abrupt transitions when time() goes to next second: `$s = time(); sleep(1); echo time() - $s;` *can* display 2 from time to time.
This means that we do expire items earlier than required by the expiration settings on items.
This also means that there is no way to have a sub-second expiry. For remote backends, that's fine, but for ArrayAdapter, that's a limitation we can remove.

This PR replaces calls to `time()` by `microtime(true)`, providing more accurate timing measurements internally.

Commits
-------

08554ea18c [Cache] Use sub-second accuracy for internal expiry calculations
2018-06-11 15:14:37 +02:00
Nicolas Grekas
68729cc68a [Cache] Fix expiry comparisons in array-based pools 2018-06-11 15:10:52 +02:00
Nicolas Grekas
169b13c348 Merge branch '4.1'
* 4.1:
  fixed CS
  Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener
  fixed CS
  Avoid migration on stateless firewalls
  [Serializer] deserialize from xml: Fix a collection that contains the only one element
  [HttpKernel] Log/Collect exceptions at prio 0
  [PhpUnitBridge] Fix error on some Windows OS
  [DI] Deduplicate generated proxy classes
  [Routing] fix matching host patterns, utf8 prefixes and non-capturing groups
2018-06-11 14:56:48 +02:00
Nicolas Grekas
8bbda2c82b Merge branch '4.0' into 4.1
* 4.0:
  fixed CS
  Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener
  fixed CS
  Avoid migration on stateless firewalls
  [Serializer] deserialize from xml: Fix a collection that contains the only one element
  [PhpUnitBridge] Fix error on some Windows OS
  [DI] Deduplicate generated proxy classes
2018-06-11 14:56:28 +02:00
Nicolas Grekas
e540a16f24 Merge branch '3.4' into 4.0
* 3.4:
  fixed CS
  Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener
  fixed CS
  Avoid migration on stateless firewalls
  [Serializer] deserialize from xml: Fix a collection that contains the only one element
  [PhpUnitBridge] Fix error on some Windows OS
  [DI] Deduplicate generated proxy classes
2018-06-11 14:55:40 +02:00
Nicolas Grekas
873abdad12 Merge branch '2.8' into 3.4
* 2.8:
  fixed CS
  Avoid migration on stateless firewalls
2018-06-11 14:53:53 +02:00
Nicolas Grekas
08554ea18c [Cache] Use sub-second accuracy for internal expiry calculations 2018-06-11 14:32:29 +02:00
Nicolas Grekas
51381e530a [Cache] Unconditionally use PhpFilesAdapter for system pools 2018-06-11 09:57:54 +02:00
Fabien Potencier
7e3b7b0b50 feature #27009 [Cache] Add stampede protection via probabilistic early expiration (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Add stampede protection via probabilistic early expiration

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

This PR implements [probabilistic early expiration](https://en.wikipedia.org/wiki/Cache_stampede#Probabilistic_early_expiration) on top of `$cache->get($key, $callback);`

It adds a 3rd arg to `CacheInterface::get`:
> float $beta A float that controls the likelyness of triggering early expiration. 0 disables it, INF forces immediate expiration. The default is implementation dependend but should typically be 1.0, which should provide optimal stampede protection.

Commits
-------

13523ad985 [Cache] Add stampede protection via probabilistic early expiration
2018-06-11 09:05:59 +02:00
Nicolas Grekas
13523ad985 [Cache] Add stampede protection via probabilistic early expiration 2018-06-10 18:44:41 +02:00
Fabien Potencier
697a6a0ae4 fixed CS 2018-06-10 12:33:24 +02:00
Fabien Potencier
f96f4c5ab5 bug #27556 Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener (weaverryan)
This PR was squashed before being merged into the 3.4 branch (closes #27556).

Discussion
----------

Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | Related to #27395
| License       | MIT
| Doc PR        | symfony/symfony-docs#9860

This is the sister PR to #27452, which covered all the other authentication listeners.

Commits
-------

c06f3229de Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener
2018-06-10 12:32:37 +02:00
Ryan Weaver
c06f3229de Avoiding session migration for stateless firewall UsernamePasswordJsonAuthenticationListener 2018-06-10 12:32:26 +02:00
Fabien Potencier
5c2b2bb2ce fixed CS 2018-06-10 12:30:11 +02:00
Fabien Potencier
d2757de3b9 bug #27452 Avoid migration on stateless firewalls (weaverryan)
This PR was squashed before being merged into the 2.8 branch (closes #27452).

Discussion
----------

Avoid migration on stateless firewalls

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | Related to #27395
| License       | MIT
| Doc PR        | symfony/symfony-docs#9860

This is a proof-of-concept. Once we agree / are happy, I need to add this to all of the other authentication mechanisms that recently got the session migration code & add tests.

Basically, this avoids migrating the session if the firewall is stateless. There were 2 options to do this:

A) Make the `SessionAuthenticationStrategy` aware of all stateless firewalls. **This is the current approach**
or
B) Make each individual authentication listener aware whether or not *its* firewall is stateless.

Commits
-------

cca73bb564 Avoid migration on stateless firewalls
2018-06-10 12:27:47 +02:00
Ryan Weaver
cca73bb564 Avoid migration on stateless firewalls 2018-06-10 12:27:33 +02:00
Fabien Potencier
f36930f21e bug #27568 [DI] Deduplicate generated proxy classes (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Deduplicate generated proxy classes

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

Commits
-------

322f58b334 [DI] Deduplicate generated proxy classes
2018-06-10 12:04:52 +02:00
Fabien Potencier
836f1216a3 bug #27511 [Routing] fix matching host patterns, utf8 prefixes and non-capturing groups (nicolas-grekas)
This PR was merged into the 4.1 branch.

Discussion
----------

[Routing] fix matching host patterns, utf8 prefixes and non-capturing groups

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #27448, #27461, #27504, #27512
| License       | MIT
| Doc PR        | -

Commits
-------

465b15caa8 [Routing] fix matching host patterns, utf8 prefixes and non-capturing groups
2018-06-10 11:55:51 +02:00
Fabien Potencier
ac70edf8cd bug #27326 [Serializer] deserialize from xml: Fix a collection that contains the only one element (webnet-fr)
This PR was squashed before being merged into the 3.4 branch (closes #27326).

Discussion
----------

[Serializer] deserialize from xml: Fix a collection that contains the only one element

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

In xml when parent node (`restaurants`) contains several children nodes with the same tag (`restaurant`) it is clear that the children form a collection:

```
restaurants = {array} [1]
 restaurant = {array} [2]
  0 = {array} [2]
   name = "Some restaurant name"
   type = "Chinese"
  1 = {array} [2]
   name = "Another restaurant name"
   type = "Italian"
```

Afterwards the object denormalizer has no problem to create a collection of restaurants.

But when there is only one child (`restaurant`) the decoded normalized array will not contain a collection:

```
restaurants = {array} [1]
 restaurant = {array} [2]
  name = "Some restaurant name"
  type = "Chinese"
```

In this situation the object denormalizer threw unexpected exception. This PR modifies `AbstractObjectNormalizer` that is it will fill a collection containing the sole element properly.

Commits
-------

1f346f446d [Serializer] deserialize from xml: Fix a collection that contains the only one element
2018-06-10 11:53:47 +02:00
Webnet team
1f346f446d [Serializer] deserialize from xml: Fix a collection that contains the only one element 2018-06-10 11:53:40 +02:00
Roland Franssen
85b832bcc9 [HttpKernel] Log/Collect exceptions at prio 0 2018-06-10 11:25:14 +02:00
Nicolas Grekas
322f58b334 [DI] Deduplicate generated proxy classes 2018-06-09 21:22:19 +02:00
Nicolas Grekas
84ada0c0c1 Merge branch '4.1'
* 4.1:
  [FrameworkBundle] decouple some cache-warmer's test from internal details
  bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode
  Remove released semaphore
2018-06-09 00:51:43 +02:00
Nicolas Grekas
28af1a62d1 Merge branch '4.0' into 4.1
* 4.0:
  [FrameworkBundle] decouple some cache-warmer's test from internal details
  bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode
  Remove released semaphore
2018-06-09 00:51:37 +02:00
Nicolas Grekas
a250e67097 Merge branch '3.4' into 4.0
* 3.4:
  [FrameworkBundle] decouple some cache-warmer's test from internal details
  bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode
  Remove released semaphore
2018-06-09 00:51:16 +02:00
Nicolas Grekas
7f2cb7361a bug #27357 [Lock] Remove released semaphore (jderusse)
This PR was merged into the 3.4 branch.

Discussion
----------

[Lock] Remove released semaphore

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

This PR remove the semaphore with `sem_remove`. By removing without releasing the semaphore, all pending blocking acquiring will fail that's why the acquire method has also been update to handle such case

Commits
-------

77b9f90a32 Remove released semaphore
2018-06-09 00:46:17 +02:00
Nicolas Grekas
88098f3cba bug #27416 TagAwareAdapter over non-binary memcached connections corrupts memcache (Aleksey Prilipko)
This PR was merged into the 3.4 branch.

Discussion
----------

TagAwareAdapter over non-binary memcached connections corrupts memcache

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

TagAwareAdapter uses non-ascii symbols in key names. It breaks memcached connections in non-binary mode.

Commits
-------

67d4e6dd29 bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode
2018-06-09 00:45:16 +02:00
Nicolas Grekas
1b2bd8f419 Merge branch '4.1'
* 4.1:
  [Cache][Security] Use Throwable where possible
  revert #27545
  Update Finder.php
  [FrameworkBundle] remove dead code in CachePoolClearerPass
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:40:00 +02:00
Nicolas Grekas
302b0d41ee Merge branch '4.0' into 4.1
* 4.0:
  [Cache][Security] Use Throwable where possible
  revert #27545
  Update Finder.php
  [FrameworkBundle] remove dead code in CachePoolClearerPass
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:39:36 +02:00
Nicolas Grekas
ca48f4c0f0 Merge branch '3.4' into 4.0
* 3.4:
  revert #27545
  Update Finder.php
  [FrameworkBundle] remove dead code in CachePoolClearerPass
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:39:19 +02:00
Nicolas Grekas
9586c4334e Merge branch '2.8' into 3.4
* 2.8:
  revert #27545
  Update Finder.php
  Fix security-core cross-dependencies, fixes #27507
  Pass previous exception to FatalErrorException
2018-06-08 11:38:38 +02:00
Nicolas Grekas
9786ec8e19 [Cache][Security] Use Throwable where possible 2018-06-08 11:29:49 +02:00
Nicolas Grekas
465b15caa8 [Routing] fix matching host patterns, utf8 prefixes and non-capturing groups 2018-06-08 10:42:17 +02:00
Christian Flothmann
8fd4b441c4 revert #27545
The SplFileInfo class indeed does exist in the Symfony\Component\Finder
namespace.
2018-06-08 09:55:24 +02:00
Fabien Potencier
e2effa3141 minor #27532 Fix security-core cross-dependencies, fixes #27507 (stephank)
This PR was merged into the 2.8 branch.

Discussion
----------

Fix security-core cross-dependencies, fixes #27507

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

Based on earlier changes in #27295

Commits
-------

725d774a16 Fix security-core cross-dependencies, fixes #27507
2018-06-08 08:37:32 +02:00
Tarmo Leppänen
a74ee8d594 Update Finder.php
Corrected return type which causes following error with (psalm)[https://getpsalm.org/]
```
ERROR: PossiblyInvalidArgument - src/Command/Utils/CheckVendorDependencies.php:170:62 - Argument 1 of iterator_to_array expects Traversable, possibly different type array<mixed, Symfony\Component\Finder\SplFileInfo>|Iterator provided $directories = array_map($closure, iterator_to_array($finder->getIterator()));
```
2018-06-07 23:32:28 +02:00
Stéphan Kochen
725d774a16 Fix security-core cross-dependencies, fixes #27507 2018-06-07 10:54:04 +02:00
Fabien Potencier
ae30a80f77 bug #27514 [Debug] Pass previous exception to FatalErrorException (pmontoya)
This PR was merged into the 2.8 branch.

Discussion
----------

[Debug] Pass previous exception to FatalErrorException

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

Add a previous parameter to FatalErrorException.
Call \ErrorException with this parameter.
Update parent::__constructor for inherited classes with default parameters and the new one

Commits
-------

7f9780b5df Pass previous exception to FatalErrorException
2018-06-06 15:30:44 +02:00
Nicolas Grekas
50c4384caf Merge branch '4.1'
* 4.1:
  Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
2018-06-06 12:57:26 +02:00
Nicolas Grekas
72f7ac0441 Merge branch '4.0' into 4.1
* 4.0:
  Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
2018-06-06 12:57:03 +02:00
Nicolas Grekas
59cd2777cb Merge branch '3.4' into 4.0
* 3.4:
  Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
2018-06-06 12:52:25 +02:00
Nicolas Grekas
4435144a24 bug #27516 Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)" (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"

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

This reverts commit b213c5a758, reversing
changes made to 61af0e3a25.

This breaks BC and is more like a new feature, let's move this on master.

Commits
-------

c6acad719d Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
2018-06-06 12:47:46 +02:00
Nicolas Grekas
8ec22e5e88 Merge branch '4.1'
* 4.1:
  [FrameworkBundle] Fix test-container on kernel reboot, revert to returning the real container from Client::getContainer()
  Remove mentions of "beta" in composer.json files
  [DI] Ignore missing tree root nodes on validate
  [WebProfilerBundle] fixed getSession when no session has been set deprecation warnings
  bug #27299 [Cache] memcache connect should not add duplicate entries on sequential calls
  [Router] regression when matching a route
  [FrameworkBundle][SecurityBundle] Remove no-longer necessary Bundle::registerCommands override
  [Routing] Don't reorder past variable-length placeholders
  [DebugBundle] DebugBundle::registerCommands should be noop
  [BrowserKit] Fix a BC break in Client affecting Panthère
  [DX] Improve exception message when AbstractController::getParameter fails
  simple-phpunit: remove outdated appveryor workaround
2018-06-06 11:59:09 +02:00
Nicolas Grekas
c9118b9f29 Merge branch '4.0' into 4.1
* 4.0:
  Remove mentions of "beta" in composer.json files
  bug #27299 [Cache] memcache connect should not add duplicate entries on sequential calls
  simple-phpunit: remove outdated appveryor workaround
2018-06-06 11:58:49 +02:00
Nicolas Grekas
b99a5a4926 Merge branch '3.4' into 4.0
* 3.4:
  Remove mentions of "beta" in composer.json files
  bug #27299 [Cache] memcache connect should not add duplicate entries on sequential calls
  simple-phpunit: remove outdated appveryor workaround
2018-06-06 11:57:47 +02:00
Nicolas Grekas
51f36e73a0 Merge branch '2.8' into 3.4
* 2.8:
  Remove mentions of "beta" in composer.json files
2018-06-06 11:56:41 +02:00
Nicolas Grekas
c6acad719d Revert "bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)"
This reverts commit b213c5a758, reversing
changes made to 61af0e3a25.
2018-06-06 11:42:07 +02:00
Pascal Montoya
7f9780b5df
Pass previous exception to FatalErrorException 2018-06-06 10:34:52 +02:00
Thomas Perez
f03b8bba9d CacheWarmerAggregate handle deprecations logs 2018-06-06 00:11:23 +02:00
Tobias Schultze
d8739d183e feature #27471 [DI] Improve performance of removing/inlining passes (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Improve performance of removing/inlining passes

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

Here is an optimization to reclaim some compilation time by optimizing the analysis of unused and inlined services.

This PR removes any use case for `RepeatedPass`, instead:
- `RemoveUnusedDefinitionsPass` works in one run, removing all private services that are unreachable from public services
-  `InlineServiceDefinitionsPass` reduces the number of nodes to analyze per iteration using `AnalyzeServiceReferencesPass` on a duplicated container internally.

https://blackfire.io/profiles/compare/00723822-6c09-431c-b98d-4a4197d044fc/graph?settings%5Bdimension%5D=wt&settings%5Bdisplay%5D=focused&settings%5BtabPane%5D=nodes&selected=Symfony%5CComponent%5CDependencyInjection%5CCompiler%5CRepeatedPass%3A%3Aprocess&callname=Symfony%5CComponent%5CDependencyInjection%5CCompiler%5CRepeatedPass%3A%3Aprocess

![image](https://user-images.githubusercontent.com/243674/40884496-c31e780e-6714-11e8-8218-967c4b25b9ce.png)

Commits
-------

cf375e5286 [DI] Improve performance of removing/inlining passes
2018-06-05 21:28:56 +02:00
Nicolas Grekas
cf375e5286 [DI] Improve performance of removing/inlining passes 2018-06-05 13:59:51 +02:00
Nicolas Grekas
6a0b75fb9b Remove mentions of "beta" in composer.json files 2018-06-05 10:24:18 +02:00
Aleksey Prilipko
67d4e6dd29 bug #27405 [Cache] TagAwareAdapter should not corrupt memcached connection in ascii mode 2018-06-05 17:08:01 +10:00
Jérémy Derussé
77b9f90a32
Remove released semaphore 2018-06-05 07:35:41 +02:00
Fabien Potencier
8130f22f4a bug #27472 [DI] Ignore missing tree root nodes on validate (ro0NL)
This PR was squashed before being merged into the 4.1 branch (closes #27472).

Discussion
----------

[DI] Ignore missing tree root nodes on validate

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | technically yes
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | no
| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #27450
| 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
-------

b3cdfc64b5 [DI] Ignore missing tree root nodes on validate
2018-06-05 07:03:36 +02:00
Roland Franssen
b3cdfc64b5 [DI] Ignore missing tree root nodes on validate 2018-06-05 07:03:28 +02:00
Fabien Potencier
4cd64771c9 minor #27481 [DI] Don't generate factories for errored services (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Don't generate factories for errored services

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

Spotted while comparing the dumped container of Blackfire with Symfony 4.0 vs 4.1.

Commits
-------

a6b6206a62 [DI] Don't generate factories for errored services
2018-06-05 06:56:14 +02:00
Aleksey Prilipko
af0699012a bug #27299 [Cache] memcache connect should not add duplicate entries on sequential calls 2018-06-04 22:06:44 +02:00
Nicolas Grekas
fa022f05be feature #27077 [DependencyInjection] add ServiceSubscriberTrait (kbond)
This PR was squashed before being merged into the 4.2-dev branch (closes #27077).

Discussion
----------

[DependencyInjection] add ServiceSubscriberTrait

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

This allows you to easily configure Service Subscribers with the following convention:

```php
class MyService implements ServiceSubscriberInterface
{
    use ServiceSubscriberTrait;

    public function doSomething()
    {
        // $this->router() ...
    }

    private function router(): RouterInterface
    {
        return $this->container->get(__METHOD__);
    }
}
```

This also allows you to create helper traits like `RouterAware`, `LoggerAware` etc... and compose your services with them (*not* using `__METHOD__` in traits because it doesn't behave as expected.).

```php
trait LoggerAware
{
    private function logger(): LoggerInterface
    {
        return $this->container->get(__CLASS__.'::'.__FUNCTION__);
    }
}
```

```php
trait RouterAware
{
    private function router(): RouterInterface
    {
        return $this->container->get(__CLASS__.'::'.__FUNCTION__);
    }
}
```

```php
class MyService implements ServiceSubscriberInterface
{
    use ServiceSubscriberTrait, LoggerAware, RouterAware;

    public function doSomething()
    {
        // $this->router() ...
        // $this->logger() ...
    }
}
```

Commits
-------

238e793431 [DependencyInjection] add ServiceSubscriberTrait
2018-06-04 21:55:57 +02:00
Kevin Bond
238e793431 [DependencyInjection] add ServiceSubscriberTrait 2018-06-04 21:55:50 +02:00
Nicolas Grekas
a6b6206a62 [DI] Don't generate factories for errored services 2018-06-04 21:50:03 +02:00
Nicolas Grekas
2521e7ba81 bug #27498 [Routing] Don't reorder past variable-length placeholders (nanocom, nicolas-grekas)
This PR was merged into the 4.1 branch.

Discussion
----------

[Routing] Don't reorder past variable-length placeholders

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

Commits
-------

44616d9bcc [Router] regression when matching a route
7a750d4508 [Routing] Don't reorder past variable-length placeholders
2018-06-04 21:26:49 +02:00
Arnaud Kleinpeter
44616d9bcc [Router] regression when matching a route 2018-06-04 19:55:59 +02:00
Nicolas Grekas
7a750d4508 [Routing] Don't reorder past variable-length placeholders 2018-06-04 19:55:59 +02:00
Kévin Dunglas
e3aa90f852 [BrowserKit] Fix a BC break in Client affecting Panthère 2018-06-04 19:31:56 +02:00
Nicolas Grekas
b51b17d7e8 Merge branch '4.1'
* 4.1:
  [DI] Remove default env type check on validate
  [FrameworkBundle][TwigBridge] Fix BC break from strong dependency on CSRF token storage
2018-06-03 23:37:29 +02:00
Roland Franssen
a0015a18ec [DI] Remove default env type check on validate 2018-06-03 23:36:42 +02:00
Nicolas Grekas
146e01cb44 [HttpKernel] fix session tracking in surrogate master requests 2018-06-01 15:46:26 +02:00
Fabien Potencier
c81f88f38b feature #27398 [Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface

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

Actually, there is no downside in using a taggable cache pool as a backend for CacheInterface.
This means we can simplify things and remove the TaggableCacheInterface and keep only CacheInterface (master-only).

Commits
-------

c250fbdda0 [Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface
2018-05-31 16:26:45 +02:00
Yonel Ceruto
f8746ce8bd Add ability to deprecate options 2018-05-31 07:26:55 -04:00
Nicolas Grekas
5abffbbd07 Merge branch '4.1'
* 4.1: (22 commits)
  [HttpKernel] Fix restoring trusted proxies in tests
  Update UPGRADE-4.0.md
  [Messenger] Fix suggested enqueue adapter package
  bumped Symfony version to 4.1.1
  updated VERSION for 4.1.0
  updated CHANGELOG for 4.1.0
  Insert correct parameter_bag service in AbstractController
  Revert "feature #26702 Mark ExceptionInterfaces throwable (ostrolucky)"
  CODEOWNERS: some more rules
  removed unneeded comments in tests
  removed unneeded comments in tests
  Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs
  [HttpKernel] fix registering IDE links
  update UPGRADE-4.1 for feature #26332 Form field help option
  [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
  [Process] Consider \"executable\" suffixes first on Windows
  Triggering RememberMe's loginFail() when token cannot be created
  bumped Symfony version to 4.1.0
  updated VERSION for 4.1.0-BETA3
  updated CHANGELOG for 4.1.0-BETA3
  ...
2018-05-31 12:18:23 +02:00
Nicolas Grekas
8bbd7389a3 Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] Fix restoring trusted proxies in tests
  Update UPGRADE-4.0.md
  CODEOWNERS: some more rules
  removed unneeded comments in tests
  removed unneeded comments in tests
  Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs
  [HttpKernel] fix registering IDE links
  [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
  [Process] Consider \"executable\" suffixes first on Windows
  Triggering RememberMe's loginFail() when token cannot be created
  [Serializer] Fix serializer tries to denormalize null values on nullable properties
  [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING
2018-05-31 12:17:53 +02:00
Nicolas Grekas
b2e93cfb8a Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Fix restoring trusted proxies in tests
  Update UPGRADE-4.0.md
  CODEOWNERS: some more rules
  removed unneeded comments in tests
  removed unneeded comments in tests
  Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs
  [HttpKernel] fix registering IDE links
  [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
  [Process] Consider \"executable\" suffixes first on Windows
  Triggering RememberMe's loginFail() when token cannot be created
  [Serializer] Fix serializer tries to denormalize null values on nullable properties
  [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING
2018-05-31 12:16:04 +02:00
Nicolas Grekas
143bdfc073 Merge branch '2.8' into 3.4
* 2.8:
  [HttpKernel] Fix restoring trusted proxies in tests
  CODEOWNERS: some more rules
2018-05-31 12:13:22 +02:00
Nicolas Grekas
efe9beb186 [HttpKernel] Fix restoring trusted proxies in tests 2018-05-31 12:02:37 +02:00
Fabien Potencier
1356fe7b58 minor #27406 [Security] Add missing upgrade note about GuardAuthenticationListener-related deprecation (DonCallisto)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Add missing upgrade note about GuardAuthenticationListener-related deprecation

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

This https://github.com/symfony/symfony/blob/3.4/src/Symfony/Component/Security/Guard/Firewall/GuardAuthenticationListener.php#L127 was not reported.

Commits
-------

c09ca94a28 Update UPGRADE-4.0.md
2018-05-31 09:38:11 +02:00
DonCallisto
c09ca94a28 Update UPGRADE-4.0.md
This https://github.com/symfony/symfony/blob/3.4/src/Symfony/Component/Security/Guard/Firewall/GuardAuthenticationListener.php#L127 was not reported.
2018-05-31 09:29:12 +02:00
Samuel ROZE
59375662a3 feature #27343 [Messenger][Profiler] Show dispatch caller (ogizanagi)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Messenger][Profiler] Show dispatch caller

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

Just something I missed on my checklist in the first PR:

![mai-22-2018 19-51-52](https://user-images.githubusercontent.com/2211145/40380514-a0ba3326-5df9-11e8-9dd6-82a42dc7ccae.gif)

Commits
-------

1c2f43f17c [Messenger][Profiler] Show dispatch caller
2018-05-31 09:25:34 +02:00
Maxime Steinhausser
16ebf43740 bug #27389 [Serializer] Fix serializer tries to denormalize null values on nullable properties (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] Fix serializer tries to denormalize null values on nullable properties

| 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 | #27384   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

ca314889e7 [Serializer] Fix serializer tries to denormalize null values on nullable properties
2018-05-30 20:05:22 +02:00
Maxime Steinhausser
f5703dc6b3 [Messenger] Fix suggested enqueue adapter package 2018-05-30 19:32:47 +02:00
Fabien Potencier
52647b86bf bumped Symfony version to 4.1.1 2018-05-30 15:07:50 +02:00
Fabien Potencier
1d9e422693 updated VERSION for 4.1.0 2018-05-30 14:52:34 +02:00
Maxime Steinhausser
1c2f43f17c [Messenger][Profiler] Show dispatch caller 2018-05-30 12:45:35 +02:00
Nicolas Grekas
2ddb89b7a3 Revert "feature #26702 Mark ExceptionInterfaces throwable (ostrolucky)"
This reverts commit 9fda6d3ee3, reversing
changes made to ca53d3e0fd.
2018-05-30 09:26:09 +02:00
Fabien Potencier
28c8c85da1 removed unneeded comments in tests 2018-05-30 06:26:49 +02:00
Fabien Potencier
10580f1efe Merge branch '2.8' into 3.4
* 2.8:
  removed unneeded comments in tests
  Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs
  [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
  [Process] Consider \"executable\" suffixes first on Windows
  Triggering RememberMe's loginFail() when token cannot be created
2018-05-30 06:24:30 +02:00
Fabien Potencier
09c660d454 removed unneeded comments in tests 2018-05-30 06:18:42 +02:00
Fabien Potencier
3bade96ff2 feature #27024 [Finder] added "use natural sort" option (vyshkant)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Finder] added "use natural sort" option

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

Added `$useNaturalSort` optional argument to `Finder::sortByName()` method. If it is specified and equals to `true`, ["natural sort order" algorithm](https://en.wikipedia.org/wiki/Natural_sort_order) will be applied, which means that `strnatcmp` function will be used instead of `strcmp` (see #26930 for details).

Commits
-------

e697c7d272 [Finder] added "use natural sort" option
2018-05-30 06:00:02 +02:00
Fabien Potencier
3114ffb0ae bug #27272 [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING (upyx)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING

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

Hello!
There is fix for #27259 issue. It changes priority of `AddConsoleCommandPass` to `TYPE_BEFORE_REMOVING` as @chalasr advised. I'm not sure about side effects by that.

Commits
-------

e36099503f [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING
2018-05-30 05:54:26 +02:00
Davide Borsatto
479aa9074b Change PHPDoc in ResponseHeaderBag::getCookies() to help IDEs 2018-05-29 13:28:37 +02:00
Nicolas Grekas
c250fbdda0 [Cache] Remove TaggableCacheInterface, alias cache.app.taggable to CacheInterface 2018-05-28 21:56:05 +02:00
Nicolas Grekas
92e3023195 [HttpKernel] fix registering IDE links 2018-05-28 17:16:05 +02:00
Fabien Potencier
518ec864e9 bug #26973 [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer. (kmadejski)
This PR was squashed before being merged into the 2.8 branch (closes #26973).

Discussion
----------

[HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.

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

SubRequest used in `InlineFragmentRendered` explicitly sets `$server['REMOTE_ADDR']` to `127.0.0.1`. Therefore, it's required to configure `127.0.0.1` address in TRUSTED_PROXIES environment variable. Without that, `Request::isFromTrustedProxy()` will return false.
The current behavior might be a little bit problematic, for instance, in case where images are rendered through subrequests. These might end-up with an incorrect schema in URL (`http` instead of `https`).

Commits
-------

18f55feef8 [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer.
2018-05-27 09:44:41 +02:00
Kamil Madejski
18f55feef8 [HttpKernel] Set first trusted proxy as REMOTE_ADDR in InlineFragmentRenderer. 2018-05-27 09:44:31 +02:00
Fabien Potencier
dc0ac87b89 bug #27303 [Process] Consider "executable" suffixes first on Windows (sanmai)
This PR was squashed before being merged into the 2.8 branch (closes #27303).

Discussion
----------

[Process] Consider "executable" suffixes first on Windows

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

Executable finder should consider "executable" suffixes first on Windows because we basically ignore executability on Windows (on the lines below changed), which leads, for example, to finding usually-non-executable `phpunit` file first where both `phpunit` and `phpunit.bat` are present.

I may miss something here, so please tell me if this makes any sense.

Same change against master: #27301

Commits
-------

9372e7a813 [Process] Consider \"executable\" suffixes first on Windows
2018-05-27 09:40:52 +02:00
Alexey Kopytko
9372e7a813 [Process] Consider \"executable\" suffixes first on Windows 2018-05-27 09:40:41 +02:00
Fabien Potencier
f557f943ba feature #26981 No more support for custom anon/remember tokens based on FQCN (Iltar van der Berg)
This PR was squashed before being merged into the 4.2-dev branch (closes #26981).

Discussion
----------

No more support for custom anon/remember tokens based on FQCN

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

This PR deprecates the ability to configure a custom anonymous and remember me token class, via the AuthenticationTrustResolver. The only change required _if_ you have changed the token classes like this, is to extend the Anonymous/RememberMe token classes.

Commits
-------

860d4549c2 No more support for custom anon/remember tokens based on FQCN
2018-05-27 09:21:43 +02:00
Iltar van der Berg
860d4549c2 No more support for custom anon/remember tokens based on FQCN 2018-05-27 09:19:43 +02:00
Ryan Weaver
e3412e6a67 Triggering RememberMe's loginFail() when token cannot be created 2018-05-27 09:16:31 +02:00
Fabien Potencier
62adf93109 bumped Symfony version to 4.1.0 2018-05-26 17:55:46 +02:00
Fabien Potencier
ce538ca559 updated VERSION for 4.1.0-BETA3 2018-05-26 17:53:24 +02:00
Maxime Steinhausser
ca314889e7 [Serializer] Fix serializer tries to denormalize null values on nullable properties 2018-05-26 11:53:53 +02:00
Nicolas Grekas
e077c798f0 Merge branch '4.1'
* 4.1:
  [Routing] Account for greediness when merging route patterns
2018-05-25 23:27:57 +02:00
Nicolas Grekas
d5a8237b1c [Routing] Account for greediness when merging route patterns 2018-05-25 23:14:53 +02:00
Nicolas Grekas
ee22169caa Merge branch '4.1'
* 4.1:
  [HttpKernel] fix test
2018-05-25 17:22:45 +02:00
Nicolas Grekas
2ed650332f Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] fix test
2018-05-25 17:22:41 +02:00
Nicolas Grekas
a453bdf921 Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] fix test
2018-05-25 17:22:18 +02:00
Nicolas Grekas
6fc7fdb182 [HttpKernel] fix test 2018-05-25 17:22:00 +02:00
Nicolas Grekas
b1a41a4812 Merge branch '4.1'
* 4.1:
  [HttpKernel] Dont reset start time when not needed
2018-05-25 17:07:57 +02:00
Nicolas Grekas
84748d6420 Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] Dont reset start time when not needed
2018-05-25 17:07:41 +02:00
Nicolas Grekas
3a2f37f15d Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Dont reset start time when not needed
2018-05-25 17:07:09 +02:00
Nicolas Grekas
9de5014b27 [HttpKernel] Dont reset start time when not needed 2018-05-25 17:06:28 +02:00
Nicolas Grekas
201b472009 Merge branch '4.1'
* 4.1: (26 commits)
  Revert "bug #27312 Supress deprecation notices thrown when getting private servies from container in tests (arderyp)"
  [HttpKernel] reset kernel start time on reboot
  Add code of Conduct links in our README
  bumped Symfony version to 4.0.12
  [FrameworkBundle] Fix using test.service_container when Client is rebooted
  [DI] never inline lazy services
  updated VERSION for 4.0.11
  updated CHANGELOG for 4.0.11
  bumped Symfony version to 3.4.12
  updated VERSION for 3.4.11
  updated CHANGELOG for 3.4.11
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
  Tweak Argon2 test config
  [HttpFoundation] Fix cookie test with xdebug
  [FrameworkBundle] cleanup generated test container
  [Serializer] Check the value of enable_max_depth if defined
  ...
2018-05-25 16:55:42 +02:00
Nicolas Grekas
d4d137de53 Merge branch '4.0' into 4.1
* 4.0:
  [HttpKernel] reset kernel start time on reboot
  Add code of Conduct links in our README
  bumped Symfony version to 4.0.12
  [DI] never inline lazy services
  updated VERSION for 4.0.11
  updated CHANGELOG for 4.0.11
  bumped Symfony version to 3.4.12
  updated VERSION for 3.4.11
  updated CHANGELOG for 3.4.11
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
  [HttpFoundation] Fix cookie test with xdebug
  [Serializer] Check the value of enable_max_depth if defined
  [DI] remove dead code
  [PhpUnitBridge] silence some stderr outputs
  [Validator] Update sl translation
2018-05-25 16:55:38 +02:00
Nicolas Grekas
101ff69e1a Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] reset kernel start time on reboot
  Add code of Conduct links in our README
  [DI] never inline lazy services
  bumped Symfony version to 3.4.12
  updated VERSION for 3.4.11
  updated CHANGELOG for 3.4.11
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
  [HttpFoundation] Fix cookie test with xdebug
  [Serializer] Check the value of enable_max_depth if defined
  [DI] remove dead code
  [PhpUnitBridge] silence some stderr outputs
  [Validator] Update sl translation
2018-05-25 16:54:15 +02:00
Nicolas Grekas
bf20260025 Merge branch '2.8' into 3.4
* 2.8:
  Add code of Conduct links in our README
  [DI] never inline lazy services
  Default testsuite to latest PHPUnit 6.*
  [Github] Update the pull-request template
  bumped Symfony version to 2.8.42
  updated VERSION for 2.8.41
  updated CHANGELOG for 2.8.41
2018-05-25 16:50:57 +02:00
Nicolas Grekas
d314735919 feature #27336 [Security][SecurityBundle] FirewallMap/FirewallContext deprecations (chalasr)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Security][SecurityBundle] FirewallMap/FirewallContext deprecations

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes/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 -->

Next to #24805.

Commits
-------

a71ba78478 [Security][SecurityBundle] FirewallMap/FirewallContext deprecations
2018-05-25 16:45:07 +02:00
Nicolas Grekas
79bd461d59 bug #27344 [HttpKernel] reset kernel start time on reboot (kiler129)
This PR was squashed before being merged into the 3.4 branch (closes #27344).

Discussion
----------

[HttpKernel] reset kernel start time on reboot

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

I created branch from 3.4, since the furthest thing I could find for the reboot feature was a4fc49294e and it originated during stabilization phase of 3.4.

ping @nicolas-grekas

Commits
-------

b7feef00ae [HttpKernel] reset kernel start time on reboot
2018-05-25 16:43:55 +02:00
kiler129
b7feef00ae [HttpKernel] reset kernel start time on reboot 2018-05-25 16:43:44 +02:00
Nicolas Grekas
7064a77e87 minor #27347 [Validator] Update sl translation (petk)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Update sl translation

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

This patch updates Slovenian sl_SI translation for the 3.4 branches and up to master.

Commits
-------

a7a1325eab [Validator] Update sl translation
2018-05-25 16:42:15 +02:00
Nicolas Grekas
cb106fa2ff bug #27365 [Serializer] Check the value of enable_max_depth if defined (dunglas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] Check the value of enable_max_depth if defined

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| 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   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

Because it confuses some users that `['enable_max_depth' => false]` actually triggers the check.

Commits
-------

e88e0f30f1 [Serializer] Check the value of enable_max_depth if defined
2018-05-25 16:39:07 +02:00
Nicolas Grekas
3d310ab2ef minor #27363 [DI] remove dead code (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] remove dead code

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

1314a952cd [DI] remove dead code
2018-05-25 16:37:08 +02:00
Nicolas Grekas
e2ba3af1ec minor #27369 [HttpFoundation] Fix cookie test with xdebug (ostrolucky)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Fix cookie test with xdebug

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

Here's the failure without this patch:

```
Testing Symfony\Component\HttpFoundation\Tests\ResponseFunctionalTest
F.....                                                              6 / 6 (100%)

Time: 1.07 seconds, Memory: 4.00MB

There was 1 failure:

1) Symfony\Component\HttpFoundation\Tests\ResponseFunctionalTest::testCookie with data set #0 ('cookie_max_age')
Failed asserting that string matches format description.
--- Expected
+++ Actual
@@ @@

 Warning: Expiry date cannot have a year greater than 9999 in /home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/cookie_max_age.php on line 10

+Call Stack:
+    0.0004     390392   1. {main}() /home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/cookie_max_age.php:0
+    0.0178     500960   2. setcookie() /home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/cookie_max_age.php:10
+
+
 Array
 (
     [0] => Content-Type: text/plain; charset=utf-8
     [1] => Cache-Control: no-cache, private
     [2] => Date: Sat, 12 Nov 1955 20:04:00 GMT
-    [3] => Set-Cookie: foo=bar; expires=Sat, 01-Jan-10000 02:46:40 GMT; Max-Age=%d; path=/
+    [3] => Set-Cookie: foo=bar; expires=Sat, 01-Jan-10000 02:46:40 GMT; Max-Age=251875115405; path=/
 )
 shutdown

/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php:49
```

Commits
-------

47f0e732d9 [HttpFoundation] Fix cookie test with xdebug
2018-05-25 16:35:31 +02:00
Nicolas Grekas
0f06410315 minor #27349 [Security] Fix missing use in UserInterface (jvasseur)
This PR was merged into the 4.1 branch.

Discussion
----------

[Security] Fix missing use in UserInterface

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

Fix missing `Role` use used in the `getRoles` return type.

Commits
-------

3e0a0f4cb5 Fix missing use in UserInterface
2018-05-25 16:31:27 +02:00
Nicolas Grekas
7d23ac529f bug #27350 [HttpKernel] fix deprecation in AbstractTestSessionListener (alekitto)
This PR was merged into the 4.1 branch.

Discussion
----------

[HttpKernel] fix deprecation in AbstractTestSessionListener

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

After #26564 functional tests began to emit a deprecation warning because of `getSession()` being called without verifying the existence of a session.

Commits
-------

0ecaefe179 [HttpKernel] fix deprecation in AbstractTestSessionListener
2018-05-25 16:30:50 +02:00
Nicolas Grekas
402fc23f3f minor #27371 Tweak Argon2 test config (ostrolucky)
This PR was merged into the 4.1 branch.

Discussion
----------

Tweak Argon2 test config

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

Memory cost 8 seems to be lowest value accepted on my machine

```
Testing Symfony\Component\Security\Core\Tests\Encoder\Argon2iPasswordEncoderTest
E....                                                               5 / 5 (100%)

Time: 114 ms, Memory: 4.00MB

There was 1 error:

1) Symfony\Component\Security\Core\Tests\Encoder\Argon2iPasswordEncoderTest::testValidationWithConfig
password_hash(): Memory cost is outside of allowed memory range

/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/Security/Core/Encoder/Argon2iPasswordEncoder.php:105
/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/Security/Core/Encoder/Argon2iPasswordEncoder.php:67
/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/Security/Core/Tests/Encoder/Argon2iPasswordEncoderTest.php:34
```

Commits
-------

0e74f73af5 Tweak Argon2 test config
2018-05-25 16:28:36 +02:00
Fabien Potencier
3de52144af bumped Symfony version to 4.0.12 2018-05-25 16:06:48 +02:00
Nicolas Grekas
3b4d7ab56c [DI] never inline lazy services 2018-05-25 15:50:34 +02:00
Fabien Potencier
a981742931 updated VERSION for 4.0.11 2018-05-25 15:32:52 +02:00
Fabien Potencier
f918da9819 bumped Symfony version to 3.4.12 2018-05-25 15:32:08 +02:00
Fabien Potencier
136824a749 updated VERSION for 3.4.11 2018-05-25 15:16:28 +02:00
Fabien Potencier
37846d453a bumped Symfony version to 2.8.42 2018-05-25 14:30:40 +02:00
Fabien Potencier
786970f17d updated VERSION for 2.8.41 2018-05-25 14:02:50 +02:00
Nicolas Grekas
0fba5b1660 Merge branch '4.1'
* 4.1:
  [DI] fix undefined offset in InlineServiceDefinitionsPass
  [Security/Http] Fix deps conflict
2018-05-25 13:58:16 +02:00
Nicolas Grekas
930b960125 Merge branch '4.0' into 4.1
* 4.0:
  [DI] fix undefined offset in InlineServiceDefinitionsPass
  [Security/Http] Fix deps conflict
2018-05-25 13:58:10 +02:00
Nicolas Grekas
aa66a47233 Merge branch '3.4' into 4.0
* 3.4:
  [DI] fix undefined offset in InlineServiceDefinitionsPass
  [Security/Http] Fix deps conflict
2018-05-25 13:57:52 +02:00
Nicolas Grekas
5eb17e55d2 [DI] fix undefined offset in InlineServiceDefinitionsPass 2018-05-25 13:57:15 +02:00
Nicolas Grekas
f14cd770b6 [Security/Http] Fix deps conflict 2018-05-25 13:50:55 +02:00
Nicolas Grekas
29fa8119b9 Merge branch '4.1'
* 4.1:
  [SecurityBundle] fix test
  [DI] Fix bad exception on uninitialized references to non-shared services
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:09:34 +02:00
Nicolas Grekas
3dd22cb4c8 Merge branch '4.0' into 4.1
* 4.0:
  [DI] Fix bad exception on uninitialized references to non-shared services
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:09:16 +02:00
Nicolas Grekas
2b8932f1cd Merge branch '3.4' into 4.0
* 3.4:
  [DI] Fix bad exception on uninitialized references to non-shared services
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:08:56 +02:00
Nicolas Grekas
993c028185 Merge branch '2.8' into 3.4
* 2.8:
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:07:31 +02:00
Nicolas Grekas
46c2d4b3b0 bug #27364 [DI] Fix bad exception on uninitialized references to non-shared services (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix bad exception on uninitialized references to non-shared services

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

This restriction is unneeded complexity that prevents legit use cases (see linked issue #27360).

Commits
-------

8bba68f811 [DI] Fix bad exception on uninitialized references to non-shared services
2018-05-25 13:02:29 +02:00
Fabien Potencier
ca6cc78c7e Merge branch '2.7' into 2.8
* 2.7:
  [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 13:00:14 +02:00
Fabien Potencier
ab32125187 bug #27359 [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Fix perf issue during MimeTypeGuesser intialization

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

introduced in #26886

![image](https://user-images.githubusercontent.com/243674/40451947-918f5358-5ee0-11e8-9f1a-cf707bf3cefa.png)

Commits
-------

f8e7a18d1b [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization
2018-05-25 12:53:06 +02:00
Gabriel Ostrolucký
0e74f73af5
Tweak Argon2 test config
Memory cost 8 seems to be lowest value accepted on my machine

```
Testing Symfony\Component\Security\Core\Tests\Encoder\Argon2iPasswordEncoderTest
E....                                                               5 / 5 (100%)

Time: 114 ms, Memory: 4.00MB

There was 1 error:

1) Symfony\Component\Security\Core\Tests\Encoder\Argon2iPasswordEncoderTest::testValidationWithConfig
password_hash(): Memory cost is outside of allowed memory range

/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/Security/Core/Encoder/Argon2iPasswordEncoder.php:105
/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/Security/Core/Encoder/Argon2iPasswordEncoder.php:67
/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/Security/Core/Tests/Encoder/Argon2iPasswordEncoderTest.php:34
```
2018-05-24 23:41:30 +02:00
Gabriel Ostrolucký
47f0e732d9
[HttpFoundation] Fix cookie test with xdebug
Here's the failure without this patch:

```
Testing Symfony\Component\HttpFoundation\Tests\ResponseFunctionalTest
F.....                                                              6 / 6 (100%)

Time: 1.07 seconds, Memory: 4.00MB

There was 1 failure:

1) Symfony\Component\HttpFoundation\Tests\ResponseFunctionalTest::testCookie with data set #0 ('cookie_max_age')
Failed asserting that string matches format description.
--- Expected
+++ Actual
@@ @@
 
 Warning: Expiry date cannot have a year greater than 9999 in /home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/cookie_max_age.php on line 10
 
+Call Stack:
+    0.0004     390392   1. {main}() /home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/cookie_max_age.php:0
+    0.0178     500960   2. setcookie() /home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/Fixtures/response-functional/cookie_max_age.php:10
+
+
 Array
 (
     [0] => Content-Type: text/plain; charset=utf-8
     [1] => Cache-Control: no-cache, private
     [2] => Date: Sat, 12 Nov 1955 20:04:00 GMT
-    [3] => Set-Cookie: foo=bar; expires=Sat, 01-Jan-10000 02:46:40 GMT; Max-Age=%d; path=/
+    [3] => Set-Cookie: foo=bar; expires=Sat, 01-Jan-10000 02:46:40 GMT; Max-Age=251875115405; path=/
 )
 shutdown

/home/gadelat/PhpstormProjects/symfony/src/Symfony/Component/HttpFoundation/Tests/ResponseFunctionalTest.php:49
```
2018-05-24 22:59:06 +02:00
Fabien Potencier
777727829d added missing constraint 2018-05-24 20:20:58 +02:00
Fabien Potencier
2276ada8ea Merge branch '4.1'
* 4.1:
  simplified code
2018-05-24 17:52:49 +02:00
Fabien Potencier
ccd5c278db Merge branch '4.0' into 4.1
* 4.0:
  simplified code
2018-05-24 17:52:41 +02:00
Fabien Potencier
86f164b6ff Merge branch '3.4' into 4.0
* 3.4:
  simplified code
2018-05-24 17:52:33 +02:00
Fabien Potencier
91c25689d2 simplified code 2018-05-24 17:52:07 +02:00
Fabien Potencier
562b1f195f Merge branch '4.1'
* 4.1:
  clear CSRF tokens when the user is logged out
2018-05-24 15:20:17 +02:00
Fabien Potencier
3626bd1214 Merge branch '4.0' into 4.1
* 4.0:
  clear CSRF tokens when the user is logged out
2018-05-24 15:20:06 +02:00
Fabien Potencier
99c9b2d4c0 Merge branch '3.4' into 4.0
* 3.4:
  clear CSRF tokens when the user is logged out
2018-05-24 15:19:09 +02:00
Fabien Potencier
fd29c8c204 Merge branch '2.8' into 3.4
* 2.8:
2018-05-24 15:17:49 +02:00
Fabien Potencier
2111742676 Merge branch '2.7' into 2.8
* 2.7:
  clear CSRF tokens when the user is logged out
2018-05-24 14:58:29 +02:00
Fabien Potencier
ebc2819d1d Merge branch '2.8' into 3.4
* 2.8:
  clear CSRF tokens when the user is logged out
2018-05-24 14:51:10 +02:00
Fabien Potencier
a5d0b571fa Merge branch '2.7' into 2.8
* 2.7:
  clear CSRF tokens when the user is logged out
2018-05-24 14:44:24 +02:00
Christian Flothmann
4b91c171af clear CSRF tokens when the user is logged out 2018-05-24 14:39:52 +02:00
Nicolas Grekas
8bba68f811 [DI] Fix bad exception on uninitialized references to non-shared services 2018-05-24 14:02:14 +02:00
Kévin Dunglas
e88e0f30f1
[Serializer] Check the value of enable_max_depth if defined 2018-05-24 13:51:58 +02:00
Nicolas Grekas
1314a952cd [DI] remove dead code 2018-05-24 09:11:23 +02:00
Nicolas Grekas
f8e7a18d1b [HttpFoundation] Fix perf issue during MimeTypeGuesser intialization 2018-05-23 23:23:26 +02:00
Fabien Potencier
dbac70964e Merge branch '4.1'
* 4.1:
  migrating session for UsernamePasswordJsonAuthenticationListener
  migrating session for UsernamePasswordJsonAuthenticationListener
  Adding session authentication strategy to Guard to avoid session fixation
  Adding session strategy to ALL listeners to avoid *any* possible fixation
  [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode
2018-05-23 17:10:58 +02:00
Fabien Potencier
a4bb5a8bdb Merge branch '4.0' into 4.1
* 4.0:
  migrating session for UsernamePasswordJsonAuthenticationListener
2018-05-23 17:06:59 +02:00
Fabien Potencier
ef7b3d0a1d Merge branch '3.4' into 4.0
* 3.4:
  migrating session for UsernamePasswordJsonAuthenticationListener
  Adding session authentication strategy to Guard to avoid session fixation
  Adding session strategy to ALL listeners to avoid *any* possible fixation
  [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode
2018-05-23 16:59:06 +02:00
Ryan Weaver
891ae6b28b migrating session for UsernamePasswordJsonAuthenticationListener 2018-05-23 16:58:28 +02:00
Fabien Potencier
73432d5fbb Merge branch '2.8' into 3.4
* 2.8:
  Adding session authentication strategy to Guard to avoid session fixation
  Adding session strategy to ALL listeners to avoid *any* possible fixation
  [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode
2018-05-23 16:55:09 +02:00
Fabien Potencier
1bb544fd58 Merge branch '4.0' into 4.1
* 4.0:
  migrating session for UsernamePasswordJsonAuthenticationListener
  Adding session authentication strategy to Guard to avoid session fixation
  Adding session strategy to ALL listeners to avoid *any* possible fixation
2018-05-23 15:57:18 +02:00
Fabien Potencier
24263715ef Merge branch '3.4' into 4.0
* 3.4:
  migrating session for UsernamePasswordJsonAuthenticationListener
  Adding session authentication strategy to Guard to avoid session fixation
  Adding session strategy to ALL listeners to avoid *any* possible fixation
2018-05-23 15:57:09 +02:00
Fabien Potencier
b5fef05c1b security #cve-2018-11385 migrating session for UsernamePasswordJsonAuthenticationListener
* cve-2018-11385-3.4:
  migrating session for UsernamePasswordJsonAuthenticationListener
2018-05-23 15:56:36 +02:00
Ryan Weaver
625fece149 migrating session for UsernamePasswordJsonAuthenticationListener 2018-05-23 15:56:29 +02:00
Fabien Potencier
d9b0f47d3d Merge branch '2.8' into 3.4
* 2.8:
  Adding session authentication strategy to Guard to avoid session fixation
  Adding session strategy to ALL listeners to avoid *any* possible fixation
2018-05-23 15:56:03 +02:00
Fabien Potencier
fad1e1f2ea security #cve-2018-11385 Adding session authentication strategy to Guard to avoid session fixation
* cve-2018-11385-2.8:
  Adding session authentication strategy to Guard to avoid session fixation
2018-05-23 15:51:54 +02:00
Ryan Weaver
f2e83ba44d Adding session authentication strategy to Guard to avoid session
fixation
2018-05-23 15:51:48 +02:00
Fabien Potencier
a1a5fa8b2f Merge branch '2.7' into 2.8
* 2.7:
  Adding session strategy to ALL listeners to avoid *any* possible fixation
2018-05-23 15:51:01 +02:00
Ryan Weaver
a5855e8c97 Adding session strategy to ALL listeners to avoid *any* possible
fixation
2018-05-23 15:49:30 +02:00
Fabien Potencier
b9d83eed67 Merge branch '4.0' into 4.1
* 4.0:
  [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode
2018-05-23 15:44:09 +02:00
Fabien Potencier
aaa3719b7e Merge branch '3.4' into 4.0
* 3.4:
  [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode
2018-05-23 15:43:56 +02:00
Fabien Potencier
e9be01c9a1 Merge branch '2.8' into 3.4
* 2.8:
  [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode
2018-05-23 15:43:28 +02:00
Nicolas Grekas
948a50aa18 Merge branch '4.1'
* 4.1: (21 commits)
  Fixed content trace CSS in profiler
  [Form] fix tests on old phpunit versions
  [FrameworkBundle] fix typo in CacheClearCommand
  [Serializer] Fix and improve constraintViolationListNormalizer's RFC7807 compliance
  bumped Symfony version to 4.1.0
  updated VERSION for 4.1.0-BETA2
  updated CHANGELOG for 4.1.0-BETA2
  bumped Symfony version to 4.0.11
  updated VERSION for 4.0.10
  updated CHANGELOG for 4.0.10
  bumped Symfony version to 3.4.11
  updated VERSION for 3.4.10
  updated CHANGELOG for 3.4.10
  bumped Symfony version to 2.8.41
  updated VERSION for 2.8.40
  updated CHANGELOG for 2.8.40
  bumped Symfony version to 2.7.48
  updated VERSION for 2.7.47
  update CONTRIBUTORS for 2.7.47
  updated CHANGELOG for 2.7.47
  ...
2018-05-23 15:33:53 +02:00
Nicolas Grekas
755815993d Merge branch '4.0' into 4.1
* 4.0:
  Fixed content trace CSS in profiler
  [Form] fix tests on old phpunit versions
  [FrameworkBundle] fix typo in CacheClearCommand
  bumped Symfony version to 4.0.11
  updated VERSION for 4.0.10
  updated CHANGELOG for 4.0.10
  bumped Symfony version to 3.4.11
  updated VERSION for 3.4.10
  updated CHANGELOG for 3.4.10
  bumped Symfony version to 2.8.41
  updated VERSION for 2.8.40
  updated CHANGELOG for 2.8.40
  bumped Symfony version to 2.7.48
  updated VERSION for 2.7.47
  update CONTRIBUTORS for 2.7.47
  updated CHANGELOG for 2.7.47
  fixed test
2018-05-23 15:33:23 +02:00
Fabien Potencier
abc802390b Merge branch '2.7' into 2.8
* 2.7:
  [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode
2018-05-23 15:29:24 +02:00
Nicolas Grekas
0cf874e23e [HttpFoundation] Break infinite loop in PdoSessionHandler when MySQL is in loose mode 2018-05-23 14:36:15 +02:00
Jérôme
3e0a0f4cb5
Fix missing use in UserInterface
Fix missing Role use used for getRoles return type.
2018-05-23 12:02:33 +02:00
Alessandro Chitolina
0ecaefe179
[HttpKernel] fix deprecation in AbstractTestSessionListener 2018-05-23 10:30:03 +02:00
Peter Kokot
a7a1325eab [Validator] Update sl translation 2018-05-23 08:22:59 +02:00
Sergey Rabochiy
e36099503f [FrameworkBundle] Change priority of AddConsoleCommandPass to TYPE_BEFORE_REMOVING 2018-05-23 12:02:55 +07:00
Nicolas Grekas
388737232b Merge branch '3.4' into 4.0
* 3.4:
  [Form] fix tests on old phpunit versions
  [FrameworkBundle] fix typo in CacheClearCommand
  bumped Symfony version to 3.4.11
  updated VERSION for 3.4.10
  updated CHANGELOG for 3.4.10
  fixed test
2018-05-22 15:00:37 +02:00
Nicolas Grekas
208d1d1306 [Form] fix tests on old phpunit versions 2018-05-22 14:52:11 +02:00
Robin Chalas
a71ba78478 [Security][SecurityBundle] FirewallMap/FirewallContext deprecations 2018-05-22 12:07:18 +02:00
Nicolas Grekas
57a1dd1c57 fix deps=low 2018-05-21 20:43:31 +02:00
Nicolas Grekas
eceabeecc5 feature #27157 [DI] Select specific key from an array resolved env var (bobvandevijver)
This PR was squashed before being merged into the 4.2-dev branch (closes #27157).

Discussion
----------

[DI] Select specific key from an array resolved env var

| 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 | Discussed in #25643    <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#9734 <!-- required for new features -->

<!--
Write a short README entry for your feature/bugfix here (replace this comment block.)
This will help people understand your PR and can be used as a start of the Doc PR.
Additionally:
 - Bug fixes must be submitted against the lowest branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the master branch.
-->

As discussed in #25643, it would be convenient to have an key processor for environment variables which have been read from for example a JSON file.

The main advantage of this feature lies in specifying a single file for your secrets, that can be directly used in your configuration, without leaking them into your env.

## Example
**.secrets.json**
```json
{
  "database_password": "xxx"
}
```
**.env**
```env
APP_SECRETS=/opt/application/.secrets.json
DATABASE_URL=mysql://myuser:%database_password%@localhost:3306/mydb
```
**services.yaml**
```yaml
parameters:
  database_password: '%env(key:database_password:json:file:APP_SECRETS)%'
```

This example configuration will result in a `database_password` parameter being filled with `xxx`, and due to Doctrine defaults, the database url will be resolved with the correct password.

Commits
-------

42186a2bac [DI] Select specific key from an array resolved env var
2018-05-21 20:16:25 +02:00
Bob van de Vijver
42186a2bac [DI] Select specific key from an array resolved env var 2018-05-21 20:16:14 +02:00
Nicolas Grekas
f827fecca9 feature #27165 [DI] Allow binding by type+name (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] Allow binding by type+name

| 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 would allow to bind by type + argument name, e.g.:
```yaml
bind:
  Psr\Log\LoggerInterface $logger: @logger
```

Allows more precise targets for bindings as it will match only if both the type and the name match.
Works with scalar/array types also for consistency.

Commits
-------

32fc58df8b [DI] Allow binding by type+name
2018-05-21 20:14:38 +02:00
Nicolas Grekas
bd6769e391 feature #26929 [Cache] Add [Taggable]CacheInterface, the easiest way to use a cache (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[Cache] Add [Taggable]CacheInterface, the easiest way to use a cache

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

This feature is a no-brainer, yet it provides a wonderful DX when using a cache:

by type-hinting the new `CacheInterface` or  `TaggableCacheInterface`, you get access to:

```php
public function get(string $key, callable $callback);
```

`$callback` is called when `$key` is not found in the cache pool.
It is given one arguments: a `CacheItemInterface $item` (a `CacheItem` for a `TaggableCacheInterface`), and should return the corresponding value.

```php
$value = $cache->get($key, function (CacheItemInterface $item) {
    $item->expiresAfter(3600);
    return $this->computeValue();
});
```

or for tags, on a `TaggableCacheInterface $cache`:
```php
$value = $cache->get($key, function (CacheItem $item) {
    $item->tag('foo_tag');
    return $this->computeValue();
});
```

Plain simple, I love it, why didn't we have the idea earlier, isn't it ?! :)

Commits
-------

589ff697f4 [Cache] Add [Taggable]CacheInterface, the easiest way to use a cache
2018-05-21 19:51:44 +02:00
Fabien Potencier
7fb7cf26ad bug #27292 [Serializer] Fix and improve constraintViolationListNormalizer's RFC7807 compliance (dunglas)
This PR was squashed before being merged into the 4.1 branch (closes #27292).

Discussion
----------

[Serializer] Fix and improve constraintViolationListNormalizer's RFC7807 compliance

| Q             | A
| ------------- | ---
| Branch?       | 4.1
| Bug fix?      | yes
| New feature?  | no <!-- don't forget to update src/**/CHANGELOG.md files -->
| BC breaks?    | no     <!-- see https://symfony.com/bc -->
| Deprecations? | yes| Tests pass?   | yes    <!-- please add some, will be required by reviewers -->
| Fixed tickets | https://github.com/symfony/symfony/pull/22150#discussion_r188674031
| License       | MIT
| Doc PR        | todo

This PR fixes and improves [RFC 7807](https://tools.ietf.org/html/rfc7807#section-3.2) compliance of `ConstraintViolationListNormalizer` (introduced in 4.1):

* As recommended, use a specific namespace for Symfony validation error (`http://symfony.com/doc/current/validation.html`, because it already exists and gives information about the error.
* Allow to set all properties defined in the RFC using the serialization context
* Remove the `detail` key if no detail is provided (according to the spec)
* Change the Symfony specific extension to use the same terminology than the RFC itself (type and title)
* Use the proper `urn:uuid` scheme (RFC 4122) for the UUID code (more standard, and improve hypermedia capabilities).

ping @teohhanhui

Commits
-------

3c789c610a [Serializer] Fix and improve constraintViolationListNormalizer's RFC7807 compliance
2018-05-21 17:32:37 +02:00
Kévin Dunglas
3c789c610a [Serializer] Fix and improve constraintViolationListNormalizer's RFC7807 compliance 2018-05-21 17:32:31 +02:00
Fabien Potencier
72fb10057f bumped Symfony version to 4.1.0 2018-05-21 16:30:52 +02:00
Fabien Potencier
ae8513b01c updated VERSION for 4.1.0-BETA2 2018-05-21 16:27:45 +02:00
Fabien Potencier
47529b51e4 bumped Symfony version to 4.0.11 2018-05-21 16:04:59 +02:00
Fabien Potencier
1313ba3f46 updated VERSION for 4.0.10 2018-05-21 16:02:31 +02:00
Fabien Potencier
52270d1e5a bumped Symfony version to 3.4.11 2018-05-21 16:00:59 +02:00
Fabien Potencier
7be0b084a5 updated VERSION for 3.4.10 2018-05-21 15:44:03 +02:00
Fabien Potencier
6d4de55666 bumped Symfony version to 2.8.41 2018-05-21 15:43:22 +02:00
Fabien Potencier
ca80b59dc1 updated VERSION for 2.8.40 2018-05-21 15:17:29 +02:00
Fabien Potencier
84bba75ad1 bumped Symfony version to 2.7.48 2018-05-21 13:56:57 +02:00
Fabien Potencier
e55c38be00 updated VERSION for 2.7.47 2018-05-21 13:48:33 +02:00
Fabien Potencier
1f4100d635 Merge branch '4.1'
* 4.1:
  Supress deprecation notices thrown when getting private servies from container in tests
  Uses `protected` for test functions
  [Messenger] Allow to scope handlers per bus
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Messenger] implement several senders using a ChainSender
  [Lock] Skip test if posix extension is not installed
  fix bug when imported routes are prefixed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  Select alternatives on missing receiver arg or typo
  fix rounding from string
2018-05-21 12:10:22 +02:00
Fabien Potencier
af4372220c Merge branch '4.0' into 4.1
* 4.0:
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Lock] Skip test if posix extension is not installed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  fix rounding from string
2018-05-21 12:10:11 +02:00
Fabien Potencier
4d8a71d321 Merge branch '3.4' into 4.0
* 3.4:
  do not mock the session in token storage tests
  [DependencyInjection] resolve array env vars
  Add Occitan plural rule
  Fix security/* cross-dependencies
  [Lock] Skip test if posix extension is not installed
  [DI] Allow defining bindings on ChildDefinition
  use strict compare in url validator
  Disallow illegal characters like "." in session.name
  [HttpKernel] do file_exists() check instead of silent notice
  fix rounding from string
2018-05-21 12:09:47 +02:00
Fabien Potencier
793d1fe71a Merge branch '2.8' into 3.4
* 2.8:
  do not mock the session in token storage tests
  Add Occitan plural rule
  Fix security/* cross-dependencies
  Disallow illegal characters like "." in session.name
  fix rounding from string
2018-05-21 12:06:52 +02:00
Fabien Potencier
e336711cd9 Merge branch '2.7' into 2.8
* 2.7:
  do not mock the session in token storage tests
  Add Occitan plural rule
  Disallow illegal characters like "." in session.name
  fix rounding from string
2018-05-21 11:59:10 +02:00
Maxime Steinhausser
6e43838c5d [Messenger] Activation middleware decorator 2018-05-20 13:30:39 +02:00
Samuel ROZE
fd810cdee0 Uses protected for test functions 2018-05-20 10:26:34 +01:00
Maxime Steinhausser
9d658e915e [Messenger] Allow to scope handlers per bus 2018-05-19 12:07:07 +02:00
Christian Flothmann
919f93d91c do not mock the session in token storage tests 2018-05-18 20:00:42 +02:00
Nicolas Grekas
9dbf399247 [Security/Core] Add "is_granted()" to security expressions, deprecate "has_role()" 2018-05-18 17:34:07 +02:00
Nicolas Grekas
589ff697f4 [Cache] Add [Taggable]CacheInterface, the easiest way to use a cache 2018-05-18 14:27:36 +02:00
Fabien Potencier
2ae7ad9fe1 updated CHANGELOG 2018-05-18 08:10:24 +02:00
Fabien Potencier
07cfa93fc1 removed unneeded private methods 2018-05-18 08:08:04 +02:00
Fabien Potencier
ca050f6cc3 feature #27069 [LDAP] Add "applyOperations" method to EntryManager (mablae)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[LDAP] Add "applyOperations" method to EntryManager

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

This PR adds a new method called `applyOperations` to the LDAP `EntryManager` class.
Internally it is mapping the new `UpdateOperation` object to the `ldap_modify_batch` method.

Tests green against openldap.

Thanks for any feedback.

Todo:

  * [x] Add Docs PR

Commits
-------

8fc09c73c6 Add applyOperations batch method to EntryManager
2018-05-18 08:06:16 +02:00
Fabien Potencier
dd2c4c5a70 minor #27249 [HttpKernel] do file_exists() check instead of silent notice (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] do file_exists() check instead of silent notice

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

Commits
-------

f8cde70ba1 [HttpKernel] do file_exists() check instead of silent notice
2018-05-18 04:03:52 +02:00
Fabien Potencier
81cef4b774 bug #27264 [Validator] Use strict type in URL validator (mimol91)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Use strict type in URL validator

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

Using `checkDNS` option with value `true` generate error `Warning: checkdnsrr(): Type '1' not supported`.
In SF 3.4  it was mark as depreciation and silently converted to `ANY`  https://github.com/symfony/symfony/blob/v3.4.9/src/Symfony/Component/Validator/Constraints/UrlValidator.php#L79

~~Test are failing on `Symfony\Component\HttpKernel\Tests\ControllerMetadata\ArgumentMetadataFactoryTest::testSignature1` - I think its not related~~

Commits
-------

2400e71962 use strict compare in url validator
2018-05-18 04:00:55 +02:00
Fabien Potencier
4f9d907064 bug #27267 [DependencyInjection] resolve array env vars (jamesthomasonjr)
This PR was squashed before being merged into the 3.4 branch (closes #27267).

Discussion
----------

[DependencyInjection] resolve array env vars

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

## Why
This bugfix solves a problem where environment variables resolved as an array would cause an error while compiling the container if they aren't the last parameter in the ParameterBag: the next parameter to be resolved would fail at the `stripos()` check. More information about the bug is available at #27239

## Tests
- This PR modifies existing ContainerBuilder tests to make use of the EnvVarProcessor to resolve json strings into arrays, instead of relying upon a TestingEnvPlaceholderParameterBag class.
  - I would liked to have kept EnvVarProcessor logic out of the ContainerBuilder tests, but it was the interaction between the ContainerBuilder and EnvVarProcessor that caused the bug
- This PR adds a new ContainerBuilder test to verify that an environment variable resolved into an array doesn't cause an error when the next variable attempts to be resolved

## Code
- ~This PR adds an `\is_string()` sanity check before the `stripos()` method call so that only a string are passed into `stripos()`~
- This PR also adds a `$completed` flag so that completely resolved environment variables (currently only determined by `$placeholder === $value`) can break out of the loop early (handled via `break 2;`

Commits
-------

4c3b950dc2 [DependencyInjection] resolve array env vars
2018-05-18 03:58:36 +02:00
Thomason, James
4c3b950dc2 [DependencyInjection] resolve array env vars 2018-05-18 03:58:30 +02:00
Fabien Potencier
5b41c79150 feature #27118 [BrowserKit] Adds support for meta refresh (jhedstrom)
This PR was squashed before being merged into the 4.2-dev branch (closes #27118).

Discussion
----------

[BrowserKit] Adds support for meta refresh

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

This adds support for following redirects defined by the `http-equiv=refresh` meta tag, such as

```
<meta http-equiv="Refresh" content="0; URL=http://example.com/somewhere">
```
Additional background at https://github.com/jhedstrom/drupalextension/pull/325#issuecomment-349724176
<!--
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
-------

1c64c8267d [BrowserKit] Adds support for meta refresh
2018-05-18 03:41:34 +02:00
Jonathan Hedstrom
1c64c8267d [BrowserKit] Adds support for meta refresh 2018-05-18 03:41:27 +02:00
Robin Chalas
c29f34ed73 minor #27278 [Lock] Skip test if posix extension is not installed (ostrolucky)
This PR was merged into the 3.4 branch.

Discussion
----------

[Lock] Skip test if posix extension is not installed

This isn't installed by default on Fedora

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

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

97cbea0 [Lock] Skip test if posix extension is not installed
2018-05-17 13:42:52 +02:00
Fabien Potencier
05d69bb739 bug #26781 [Form] Fix precision of MoneyToLocalizedStringTransformer's divisions on transform() (syastrebov)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Fix precision of MoneyToLocalizedStringTransformer's divisions on transform()

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

Related issue https://github.com/symfony/symfony/issues/21026.
Previous PR https://github.com/symfony/symfony/pull/24036.
Similar fix for `transform()` method.

Commits
-------

f94b7aadd3 fix rounding from string
2018-05-17 12:49:33 +02:00
Fabien Potencier
20cc065de0 bug #27270 [Routing] Fix adding name prefix to canonical route names (ismail1432)
This PR was merged into the 4.1 branch.

Discussion
----------

[Routing] Fix adding name prefix to canonical route names

| Q             | A
| ------------- | ---
| Branch?       | 4.1 for bug fixes <!-- 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 | #27244    <!-- #-prefixed issue number(s), if any -->
| License       | MIT

This PR resolve the [bug](https://github.com/symfony/symfony/issues/27244) in the [prefix imported routes name](https://symfony.com/blog/new-in-symfony-4-1-prefix-imported-route-names) feature. Reviews are always welcomed moreover as I touch a key element ( the `_canonical_route` attribute ). I need an expert in the Routing component to avoid side effect
Thanks

Commits
-------

cb5ce8f32e fix bug when imported routes are prefixed
2018-05-17 12:36:03 +02:00
Kyle
0de3a61cfc Add Occitan plural rule 2018-05-17 12:34:06 +02:00
Fabien Potencier
4f4c1725f0 feature #27268 [DI] fine tune dumped factories (nicolas-grekas)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI] fine tune dumped factories

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

Here is an optimization we forgot in the dumped container: when a private service is referenced once, there is no need to keep it in the internal registry as it will never be reused. This should help a bit the garbage collection process.

Commits
-------

88ecd0dc9a [DI] fine tune dumped factories
2018-05-17 12:31:10 +02:00
Fabien Potencier
c280f8aa27 bug #27271 [DI] Allow defining bindings on ChildDefinition (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Allow defining bindings on ChildDefinition

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

Spotted by @stof while trying to put https://github.com/symfony/monolog-bundle/pull/254 into practice.
Binding log channels doesn't work because we put this artificial restriction in place.
Let's allow ChildDefinition to have bindings (but only at the DI extension level, loaders still forbid defining them at their level because of the parent vs _defaults ambiguity.)

Commits
-------

1c3b1055df [DI] Allow defining bindings on ChildDefinition
2018-05-17 12:22:44 +02:00
Nicolas Grekas
44cef5a69d Fix security/* cross-dependencies 2018-05-17 12:20:34 +02:00
Samuel ROZE
160c97e57e feature #27230 [Messenger] Select alternatives on missing receiver arg or typo (yceruto)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Select alternatives on missing receiver arg or typo

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

If there is more than one receiver available - `bin/console messenger:consume-messages`:
![messenger_consume_missing](https://user-images.githubusercontent.com/2028198/39895594-d4f652c6-5478-11e8-87cf-a1e08e681320.png)

If typo and there is similarities - `bin/console messenger:consume-messages amq`:
![messenger_consume_typo](https://user-images.githubusercontent.com/2028198/39895599-d9f0705e-5478-11e8-9d6b-59d62930d4cb.png)

requires https://github.com/symfony/symfony/pull/27224

Commits
-------

54c2541d94 Select alternatives on missing receiver arg or typo
2018-05-17 08:19:04 +01:00
Samuel ROZE
f1967aa37d minor #27002 [Messenger] implement several senders using a ChainSender (Tobion)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] implement several senders using a ChainSender

| 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 |
| License       | MIT
| Doc PR        |

Commits
-------

198925ee4e [Messenger] implement several senders using a ChainSender
2018-05-17 08:12:54 +01:00
Nicolas Grekas
7a8b706084 Merge branch '4.1'
* 4.1:
  [DI] Fix hidding service in autowiring errors
2018-05-16 18:37:07 +02:00
Nicolas Grekas
68eda49322 [DI] Fix hidding service in autowiring errors 2018-05-16 18:27:27 +02:00
Nicolas Grekas
61fc221e70 Merge branch '4.1'
* 4.1: (22 commits)
  Fix CS
  [PropertyInfo] fix resolving parent|self type hints
  fixed CS
  fix merge
  [Security] Fix logout
  Cleanup 2 tests for the HttpException classes
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Config] Fix tests when path contains UTF chars
  [DI] Shared services should not be inlined in non-shared ones
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Cache][Lock] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  fixed CS
  fixed CS
  fixed CS
  [FrameworkBundle] Fix cache:clear on vagrant
  [HttpKernel] Handle NoConfigurationException "onKernelException()"
  Fix misses calculation when calling getItems
  [DI] Display previous error messages when throwing unused bindings
  ...
2018-05-16 16:42:13 +02:00
Nicolas Grekas
71a1e29c82 Fix CS 2018-05-16 16:41:07 +02:00
Nicolas Grekas
205b097802 Merge branch '4.0' into 4.1
* 4.0: (21 commits)
  [PropertyInfo] fix resolving parent|self type hints
  fixed CS
  fix merge
  [Security] Fix logout
  Cleanup 2 tests for the HttpException classes
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Config] Fix tests when path contains UTF chars
  [DI] Shared services should not be inlined in non-shared ones
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Cache][Lock] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  fixed CS
  fixed CS
  fixed CS
  [FrameworkBundle] Fix cache:clear on vagrant
  [HttpKernel] Handle NoConfigurationException "onKernelException()"
  Fix misses calculation when calling getItems
  [DI] Display previous error messages when throwing unused bindings
  Fixed return type
  ...
2018-05-16 16:33:22 +02:00
Nicolas Grekas
544af2dd8b Merge branch '3.4' into 4.0
* 3.4:
  [PropertyInfo] fix resolving parent|self type hints
  fixed CS
2018-05-16 16:21:07 +02:00
Nicolas Grekas
5327957ff9 bug #27287 [PropertyInfo] fix resolving parent|self type hints (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[PropertyInfo] fix resolving parent|self type hints

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

Commits
-------

88a3b90860 [PropertyInfo] fix resolving parent|self type hints
2018-05-16 16:13:01 +02:00
Nicolas Grekas
2a10cc6047 bug #27281 [HttpKernel] Fix dealing with self/parent in ArgumentMetadataFactory (fabpot)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Fix dealing with self/parent in ArgumentMetadataFactory

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

Applies CS fixes that where merged on 4.0 to 3.4, embeds a fix in ArgumentMetadataFactory, which couldn't deal with self/parent type hints.

Commits
-------

ba5cb1a245 fixed CS
2018-05-16 16:03:39 +02:00
Nicolas Grekas
88a3b90860 [PropertyInfo] fix resolving parent|self type hints 2018-05-16 15:47:24 +02:00
Tobias Schultze
198925ee4e [Messenger] implement several senders using a ChainSender 2018-05-16 15:12:01 +02:00
Fabien Potencier
ba5cb1a245 fixed CS 2018-05-16 14:49:49 +02:00
Nicolas Grekas
8c430fbeb2 Merge branch '3.4' into 4.0
* 3.4:
  fix merge
  [Security] Fix logout
  Cleanup 2 tests for the HttpException classes
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Config] Fix tests when path contains UTF chars
  [DI] Shared services should not be inlined in non-shared ones
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Cache][Lock] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  [DI] Display previous error messages when throwing unused bindings
  Suppress warnings when open_basedir is non-empty
2018-05-16 11:05:32 +02:00
Nicolas Grekas
86a9c73026 Merge branch '2.8' into 3.4
* 2.8:
  [Security] Fix logout
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  Suppress warnings when open_basedir is non-empty
2018-05-16 10:49:21 +02:00
Gabriel Ostrolucký
97cbea005e [Lock] Skip test if posix extension is not installed
This isn't installed by default on Fedora
2018-05-16 10:09:04 +02:00
Nicolas Grekas
a8122f8271 Merge branch '2.7' into 2.8
* 2.7:
  [Security] Fix logout
  #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later
  [Profiler] Remove propel & event_listener_loading category identifiers
  [Filesystem] Fix usages of error_get_last()
  [Debug] Fix populating error_get_last() for handled silent errors
  Suppress warnings when open_basedir is non-empty
2018-05-15 23:17:45 +02:00
MatTheCat
9e88eb5aa9 [Security] Fix logout 2018-05-15 17:39:41 +02:00
Nicolas Grekas
88ecd0dc9a [DI] fine tune dumped factories 2018-05-15 12:01:07 +02:00
smaine
cb5ce8f32e fix bug when imported routes are prefixed 2018-05-15 11:43:27 +02:00
Nicolas Grekas
10a2d39365 bug #27265 [DI] Shared services should not be inlined in non-shared ones (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Shared services should not be inlined in non-shared ones

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

[Already good on 2.7/2.8.](https://github.com/symfony/symfony/blob/2.7/src/Symfony/Component/DependencyInjection/Compiler/InlineServiceDefinitionsPass.php#L152)

Commits
-------

6f8b8625f4 [DI] Shared services should not be inlined in non-shared ones
2018-05-15 10:55:40 +02:00
Nicolas Grekas
932dbd232d minor #27243 [Config] Fix tests when path contains UTF chars (ostrolucky)
This PR was merged into the 3.4 branch.

Discussion
----------

[Config] Fix tests when path contains UTF chars

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

Commits
-------

b2a97ea00f [Config] Fix tests when path contains UTF chars
2018-05-15 10:54:45 +02:00
Nicolas Grekas
b7feafcf58 bug #27141 [Process] Suppress warnings when open_basedir is non-empty (cbj4074)
This PR was merged into the 2.7 branch.

Discussion
----------

[Process] Suppress warnings when open_basedir is non-empty

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

If PHP is configured *with a non-empty open_basedir* value that does not permit access to the target location, these calls to is_executable() throw warnings.

While Symfony may not raise exceptions for warnings in production environments, other frameworks (such as Laravel) do, in which case any of these checks causes a show-stopping 500 error.

We fixed a similar issue in the ExecutableFinder class via symfony/symfony#16182 .

This has always been an issue, but 709e15e7a3 made it more likely that a warning is triggered.

Commits
-------

34f136e01b Suppress warnings when open_basedir is non-empty
2018-05-15 10:20:41 +02:00
Nicolas Grekas
1c3b1055df [DI] Allow defining bindings on ChildDefinition 2018-05-15 09:24:59 +02:00
ncou
5516b329af Cleanup 2 tests for the HttpException classes 2018-05-15 06:59:59 +02:00
Samuel ROZE
4a7e6fa9bc Merge branch '4.1'
* 4.1:
  [Messenger] Middleware factories support in config
  [HttpKernel] Make TraceableValueResolver $stopwatch mandatory
  [Messenger] Improve the profiler panel
  [Workflow] Added DefinitionBuilder::setMetadataStore().
  [Messenger][DX] Uses custom method names for handlers
  [Messenger] remove autoconfiguration for Sender/ReceiverInterface
  [Messenger] Make sure default receiver name is set before command configuration
  [HttpKernel] Fix services are no longer injected into __invoke controllers method
  Rename tag attribute "name" by "alias"
  Autoconfiguring TransportFactoryInterface classes
  [Messenger] Fix new AMQP Transport test with Envelope
  Fixed return senders based on the message parents/interfaces
  [Messenger] Make sure Sender and Receiver locators have valid services
  [Workflow] add is deprecated since Symfony 4.1. Use addWorkflow() instead
  [Messenger] Fix TraceableBus with envelope
  Ensure the envelope is passed back and can be altered Ensure that the middlewares can also update the message within the envelope
  feature #26945 [Messenger] Support configuring messages when dispatching (ogizanagi)
  Add more tests around the AMQP transport
2018-05-14 20:20:21 +01:00
Samuel ROZE
f59ce97eff feature #27128 [Messenger] Middleware factories support in config (ogizanagi)
This PR was squashed before being merged into the 4.1 branch (closes #27128).

Discussion
----------

[Messenger] Middleware factories support in config

| 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 | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo

Following https://github.com/symfony/symfony/pull/26864, this would allow to configure easily the middlewares by using an abstract factory definition to which are provided simple arguments (just scalars, no services references).

For instance, here is how the DoctrineBundle would benefit from such a feature (also solving the wiring of the `DoctrineTransactionMiddleware` reverted in https://github.com/symfony/symfony/pull/26684):

```yaml
framework:
    messenger:
      buses:
        default:
          middleware:
            - logger
            - doctrine_transaction_middleware: ['entity_manager_name']
```

where `doctrine_transaction_middleware` would be an abstract factory definition provided by the doctrine bundle:

```yml
services:

    doctrine.orm.messenger.middleware_factory.transaction:
      class: Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddlewareFactory
      arguments: ['@doctrine']

    doctrine_transaction_middleware:
      class: Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware
      factory: ['@doctrine.orm.messenger.middleware_factory.transaction', 'createMiddleware']
      abstract: true
      # the default arguments to use when none provided from config.
      # i.e:
      #   middlewares:
      #     - doctrine_transaction_middleware: ~
      arguments: ['default']
```

and is interpreted as:

```yml
buses:
    default:
        middleware:
            -
                id: logger
                arguments: {  }
            -
                id: doctrine_transaction_middleware
                arguments:
                    - entity_manager_name
        default_middleware: true
```

---

<details>

<summary>Here is the whole config reference with these changes: </summary>

```yaml
# Messenger configuration
messenger:
    enabled:              true
    routing:

        # Prototype
        message_class:
            senders:              []
    serializer:
        enabled:              true
        format:               json
        context:

            # Prototype
            name:                 ~
    encoder:              messenger.transport.serializer
    decoder:              messenger.transport.serializer
    adapters:

        # Prototype
        name:
            dsn:                  ~
            options:              []
    default_bus:          null
    buses:

        # Prototype
        name:
            default_middleware:  true
            middleware:

                # Prototype
                -
                    id:                   ~ # Required
                    arguments:            []
```

</details>

Commits
-------

f5ef421474 [Messenger] Middleware factories support in config
2018-05-14 20:17:15 +01:00
Maxime Steinhausser
f5ef421474 [Messenger] Middleware factories support in config 2018-05-14 20:17:01 +01:00
Oleg Andreyev
9cda96b8b5 #27250 limiting GET_LOCK key up to 64 char due to changes in MySQL 5.7.5 and later 2018-05-14 20:29:47 +03:00
Adam Szaraniec
2400e71962 use strict compare in url validator 2018-05-14 21:15:07 +04:00
Gabriel Ostrolucký
b2a97ea00f [Config] Fix tests when path contains UTF chars 2018-05-14 18:49:53 +02:00
Nicolas Grekas
6f8b8625f4 [DI] Shared services should not be inlined in non-shared ones 2018-05-14 18:07:37 +02:00
Fabien Potencier
5f0e2d6671 bug #27214 [HttpKernel] Fix services are no longer injected into __invoke controllers method (ogizanagi)
This PR was merged into the 4.1 branch.

Discussion
----------

[HttpKernel] Fix services are no longer injected into __invoke controllers method

| Q             | A
| ------------- | ---
| Branch?       | 4.1 <!-- 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 | #27208   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

_TL;DR:_ The `RemoveEmptyControllerArgumentLocatorsPass` is the one adding the `Controller::_invoke` => `Controller` shortcut missing from the service locator. It isn't properly executed on some cases. This fixes it.

Since https://github.com/symfony/symfony/pull/26833, the resolvers are decorated by a `TraceableValueResolver`, which usually isn't much an issue to deal within passes. But the `RemoveEmptyControllerArgumentLocatorsPass` happens late (`TYPE_BEFORE_REMOVING`), when decoration inheritance is already resolved, so accessing `$controllerLocator = $container->getDefinition((string) $serviceResolver->getArgument(0));` isn't accessing the controller locator, but the decorated service instead.

Commits
-------

ee44903fd0 [HttpKernel] Fix services are no longer injected into __invoke controllers method
2018-05-14 08:47:00 +02:00
Fabien Potencier
30ffb61b1f bug #27237 [Debug] Fix populating error_get_last() for handled silent errors (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Debug] Fix populating error_get_last() for handled silent errors

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

When a userland error handler doesn't return `false`, `error_get_last()` is not updated, so we cannot see the real last error, but the previous one.

See https://3v4l.org/Smmt7

Commits
-------

d7e612d2ac [Debug] Fix populating error_get_last() for handled silent errors
2018-05-14 08:44:24 +02:00
Fabien Potencier
906a05c43f minor #27252 [HttpKernel] Make TraceableValueResolver $stopwatch mandatory (ogizanagi)
This PR was merged into the 4.1 branch.

Discussion
----------

[HttpKernel] Make TraceableValueResolver $stopwatch mandatory

| Q             | A
| ------------- | ---
| Branch?       | 4.1 <!-- see below -->
| 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 | https://github.com/symfony/symfony/pull/26833#discussion_r181997515   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

I understand why this was suggested in https://github.com/symfony/symfony/pull/26833#discussion_r181997515, but as stated by @iltar , I don't think it makes sense to register a traceable resolver instantiating a Stopwatch itself, as there is no way to fetch it and wouldn't be a shared instance, probably defeating the feature and registering a useless decorator.
Instead, let's make the stopwatch mandatory and make the service id to use in the pass configurable.

Commits
-------

585ae7c646 [HttpKernel] Make TraceableValueResolver $stopwatch mandatory
2018-05-14 08:40:41 +02:00
Fabien Potencier
fb881194b6 bug #27232 [Cache][Lock] Fix usages of error_get_last() (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache][Lock] Fix usages of error_get_last()

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

When a userland error handler doesn't return `false`, `error_get_last()` is not updated, so we cannot see the real last error, but the previous one.

See https://3v4l.org/Smmt7

Commits
-------

7904784a94 [Cache][Lock] Fix usages of error_get_last()
2018-05-14 08:38:31 +02:00
Fabien Potencier
15b03a8981 bug #27236 [Filesystem] Fix usages of error_get_last() (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Filesystem] Fix usages of error_get_last()

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

Same as #27232 for 2.7.
When a userland error handler doesn't return `false`, `error_get_last()` is not updated, so we cannot see the real last error, but the previous one.

See https://3v4l.org/Smmt7

Commits
-------

9d015c7c50 [Filesystem] Fix usages of error_get_last()
2018-05-14 08:36:14 +02:00
Maxime Steinhausser
585ae7c646 [HttpKernel] Make TraceableValueResolver $stopwatch mandatory 2018-05-13 20:52:09 +02:00
Nicolas Grekas
9d015c7c50 [Filesystem] Fix usages of error_get_last() 2018-05-13 17:44:36 +02:00
Malte Blättermann
8fc09c73c6 Add applyOperations batch method to EntryManager
Also introduce new UpdateOperation class.
2018-05-13 14:10:34 +02:00
Nicolas Grekas
f8cde70ba1 [HttpKernel] do file_exists() check instead of silent notice 2018-05-13 13:51:16 +02:00
Fabien Potencier
8335537446 feature #27202 [Messenger] Improve the profiler panel (ogizanagi)
This PR was squashed before being merged into the 4.1 branch (closes #27202).

Discussion
----------

[Messenger] Improve the profiler panel

| Q             | A
| ------------- | ---
| Branch?       | 4.1 <!-- 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 | N/A   <!-- #26597  issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

This is an attempt to enhance the profiler panel a bit.

**with the following messages dispatched:**

```php
$queryBus->dispatch(Envelope::wrap(new GetGreetingsQuery('Hello you'))
    ->with(new JustAFriendOfMine())
    ->with(new AndHisPlusO̶n̶e̶Eleven())
);
$commandBus->dispatch(new SendGiftCommand());
$queryBus->dispatch(new GetGreetingsQuery('Exterminate!'));
```

## Before

<img width="1084" alt="screenshot 2018-05-12 a 13 57 57" src="https://user-images.githubusercontent.com/2211145/39957055-8a0f009e-55ec-11e8-9d8e-bf79aad4b420.PNG">

🐛calls order are wrong here, fixed in this PR

## After

### collapsed

<!-- <img width="1083" alt="screenshot 2018-05-10 a 23 51 07" src="https://user-images.githubusercontent.com/2211145/39896093-19a8c7ee-54ad-11e8-8dcb-4e165ffd2eae.PNG">-->

<img width="1085" alt="screenshot 2018-05-12 a 13 18 35" src="https://user-images.githubusercontent.com/2211145/39956802-9d4c38a2-55e7-11e8-8425-ad090c0871b6.PNG">
<img width="1085" alt="screenshot 2018-05-12 a 13 26 44" src="https://user-images.githubusercontent.com/2211145/39956827-25d9e426-55e8-11e8-9116-160603649f33.PNG">

📝 _When loading the page, all messages details are collapsed by default but the first one per tab._

### expanded

<!-- <img width="1083" alt="screenshot 2018-05-10 a 23 13 39" src="https://user-images.githubusercontent.com/2211145/39894779-42c9cc9a-54a8-11e8-9529-6292481536d4.PNG"> -->

<img width="1086" alt="screenshot 2018-05-12 a 13 49 42" src="https://user-images.githubusercontent.com/2211145/39956981-639fc3d6-55eb-11e8-9224-a48f591db3da.PNG">

### live

<!-- ![mai-10-2018 23-16-17](https://user-images.githubusercontent.com/2211145/39894789-4b8fa138-54a8-11e8-986c-fccf6cd0234f.gif) -->

![mai-12-2018 13-55-40](https://user-images.githubusercontent.com/2211145/39957041-37f17b34-55ec-11e8-8569-a733a104bf82.gif)

### toolbar (with exceptions)

<img width="284" alt="screenshot 2018-05-10 a 23 18 32" src="https://user-images.githubusercontent.com/2211145/39895011-0467f2a0-54a9-11e8-9d78-25461cf71c41.PNG">

## Notes

- Table headers are clickable, so you can jump directly to the message class in the code
- Reversing headers/rows allows to have a wider space for dumps and allows to add more entries in the future. This is an issue we already have with the Validator panel (when there is both an invalid value as object and a constraint violation dumped) which I'd like to revamp soon.
- ~~I wonder if we should keep the dispatched messages in call order, or if we can segregate by bus (using tabs?).~~
- ~~we could add a left container listing messages classes only, allowing to show details of a single message dispatched on a right container (similar to what the Form panel does). I'll probably suggest the same for the Validator panel.~~

Commits
-------

3d19578297 [Messenger] Improve the profiler panel
2018-05-13 08:14:37 +02:00
Maxime Steinhausser
3d19578297 [Messenger] Improve the profiler panel 2018-05-13 08:14:09 +02:00
Fabien Potencier
98934e4c77 bug #27191 [DI] Display previous error messages when throwing unused bindings (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Display previous error messages when throwing unused bindings

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

As reported by @jvasseur, confirmation + review welcome.

Commits
-------

f2231b584e [DI] Display previous error messages when throwing unused bindings
2018-05-12 11:34:41 +02:00
Nicolas Grekas
7904784a94 [Cache][Lock] Fix usages of error_get_last() 2018-05-11 10:42:54 -07:00
Nicolas Grekas
d7e612d2ac [Debug] Fix populating error_get_last() for handled silent errors 2018-05-11 10:00:11 -07:00
Fabien Potencier
c54faf4111 minor #27190 [Workflow] Added DefinitionBuilder::setMetadataStore(). (vudaltsov)
This PR was squashed before being merged into the 4.1 branch (closes #27190).

Discussion
----------

[Workflow] Added DefinitionBuilder::setMetadataStore().

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

This PR complements #26092.

Commits
-------

2882f8d8c8 [Workflow] Added DefinitionBuilder::setMetadataStore().
2018-05-11 18:37:28 +02:00
Valentin
2882f8d8c8 [Workflow] Added DefinitionBuilder::setMetadataStore(). 2018-05-11 18:37:20 +02:00
Fabien Potencier
4f3afd53a8 fixed CS 2018-05-11 17:58:37 +02:00
Fabien Potencier
f5e6a61a82 Merge branch '3.4' into 4.0
* 3.4:
  fixed CS
  fixed CS
  [FrameworkBundle] Fix cache:clear on vagrant
  [HttpKernel] Handle NoConfigurationException "onKernelException()"
  Fix misses calculation when calling getItems
  Fixed return type
2018-05-11 17:53:11 +02:00
Fabien Potencier
7b7f75994f Merge branch '2.8' into 3.4
* 2.8:
  fixed CS
  fixed CS
  Fixed return type
2018-05-11 17:52:51 +02:00
Fabien Potencier
df43c1e99d fixed CS 2018-05-11 17:51:28 +02:00
Fabien Potencier
1f3aa51b5f Merge branch '2.7' into 2.8
* 2.7:
  fixed CS
  Fixed return type
2018-05-11 17:48:50 +02:00
Fabien Potencier
8072eed4bf fixed CS 2018-05-11 17:48:19 +02:00
Fabien Potencier
9ef517d2a4 bug #27222 [WebProfilerBundle][Cache] Fix misses calculation when calling getItems (fsevestre)
This PR was merged into the 3.4 branch.

Discussion
----------

[WebProfilerBundle][Cache] Fix misses calculation when calling getItems

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

Hello,

This PR fixes a bug in the misses calculation in the cache data collector when calling the `getItems` method.

Found this while trying to understand why I had an inconsistency in the profiler:
![misses](https://user-images.githubusercontent.com/4130750/39875423-e6212f60-5470-11e8-87be-c075ee76aeaa.png)

Commits
-------

3d1ab6df13 Fix misses calculation when calling getItems
2018-05-11 17:32:25 +02:00
Yonel Ceruto
54c2541d94 Select alternatives on missing receiver arg or typo 2018-05-11 09:46:46 -04:00
Samuel ROZE
982fc66760 feature #27034 [Messenger][DX] Uses custom method names for handlers (sroze)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger][DX] Uses custom method names for handlers

| 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/pull/26685#issuecomment-383888657
| License       | MIT
| Doc PR        | ø

This has been discussed mostly in the [`MessageHandlerInterface` pull-request](https://github.com/symfony/symfony/pull/26685). For consistency reasons and convenience, this PR adds the ability to configure the method to be used on handlers:
```php
use Symfony\Component\Messenger\Handler\MessageSubscriberInterface;
use Symfony\Component\Messenger\Handler\MessageSubscriberConfiguration;

class CreateNumberMessageHandler implements MessageSubscriberInterface
{
    /**
     * {@inheritdoc}
     */
    public static function getHandledMessages(): array
    {
        return [
            CreateNumber::class => ['createNumber', 10],
            AnotherMessage::class => 'anotherMethod',
        ];
    }

    public function createNumber(CreateNumber $command)
    {
        // ...
    }
}
```

Commits
-------

2461e5119a [Messenger][DX] Uses custom method names for handlers
2018-05-11 15:17:34 +02:00
Samuel ROZE
2461e5119a [Messenger][DX] Uses custom method names for handlers 2018-05-11 15:00:51 +02:00
Tobias Schultze
497ce74f9e bug #27229 [Messenger] Rename tag attribute "name" by "alias" (yceruto)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Rename tag attribute "name" by "alias"

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

As "name" is a reserved attribute in YAML and XML schema it makes impossible to register manually a custom Sender or Receiver with another "name" attribute.

> The file ".../demos/messenger-flex/config/services.yaml" does not contain valid YAML.
Duplicate key "name" detected at line 30 (near "- { name: 'messenger.receiver', name: 'mail' }").

Commits
-------

1ef27a7e6a Rename tag attribute "name" by "alias"
2018-05-11 11:17:32 +02:00
Yonel Ceruto
63871c9ce4 [Messenger] Make sure default receiver name is set before command configuration 2018-05-11 09:42:20 +02:00
Maxime Steinhausser
ee44903fd0 [HttpKernel] Fix services are no longer injected into __invoke controllers method 2018-05-10 23:46:14 +02:00
Yonel Ceruto
1ef27a7e6a Rename tag attribute "name" by "alias" 2018-05-10 17:13:07 -04:00
Nicolas Grekas
db6ef38ea9 [HttpKernel] Handle NoConfigurationException "onKernelException()" 2018-05-10 11:44:29 -07:00
Samuel ROZE
3cc4a701e6 bug #27220 [Messenger] Fix new AMQP Transport test with Envelope & fix contract (ogizanagi)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Fix new AMQP Transport test with Envelope & fix contract

| Q             | A
| ------------- | ---
| Branch?       | 4.1 <!-- 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 | https://travis-ci.org/symfony/symfony/jobs/377246434#L3685-L3686, https://ci.appveyor.com/project/fabpot/symfony/build/1.0.36261#L297   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

7223bd75f9 [Messenger] Fix new AMQP Transport test with Envelope
2018-05-10 17:06:07 +02:00
Samuel ROZE
d013ab6f71 bug #27184 [Messenger] Fix return senders based on the message parents/interfaces (yceruto)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Fix return senders based on the message parents/interfaces

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

c3d4536203/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php (L1494-L1499)

According to the code a message interface is supported into routing configuration, but it doesn't work when `SendMessageMiddleware` gets the mapping senders for the current object message.

This PR tries to fix it.

Commits
-------

41e25abf8c Fixed return senders based on the message parents/interfaces
2018-05-10 17:05:13 +02:00
fsevestre
3d1ab6df13
Fix misses calculation when calling getItems 2018-05-10 16:33:41 +02:00
Maxime Steinhausser
7223bd75f9 [Messenger] Fix new AMQP Transport test with Envelope 2018-05-10 14:29:23 +02:00
Samuel ROZE
ebbe1adebc minor #27206 [Messenger] Add more tests around the AMQP transport (sroze)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Add more tests around the AMQP transport

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

Adding more tests to the AMQP transport/factory. These should have captured the following 3 bugs: #27198, #27197, #27196.

Commits
-------

faf9382223 Add more tests around the AMQP transport
2018-05-10 08:14:28 +01:00
Yonel Ceruto
41e25abf8c Fixed return senders based on the message parents/interfaces 2018-05-09 15:16:14 -04:00
Samuel ROZE
64a4a2b47f minor #27200 [Messenger] Make sure Sender and Receiver locators have valid services (yceruto)
This PR was squashed before being merged into the 4.1 branch (closes #27200).

Discussion
----------

[Messenger] Make sure Sender and Receiver locators have valid services

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

This make sure that Sender and Receiver locators have valid services. Also adds minor improvements into consume command.

Commits
-------

301ce5f839 [Messenger] Make sure Sender and Receiver locators have valid services
2018-05-09 19:57:59 +01:00
Yonel Ceruto
301ce5f839 [Messenger] Make sure Sender and Receiver locators have valid services 2018-05-09 19:57:45 +01:00
Nicolas Grekas
f2231b584e [DI] Display previous error messages when throwing unused bindings 2018-05-09 11:49:38 -07:00
Fabien Potencier
226e2f3949 feature #27075 [DI][DX] Allow exclude to be an array of patterns (magnetik)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[DI][DX] Allow exclude to be an array of patterns

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

This is basically continuing #24428.

In YAML before:
```yaml
AppBundle\:
  resource: '../../src/AppBundle/*'
  exclude: '../../src/AppBundle/{Entity,Payload,Repository}'
```

in YAML after:

```yaml
AppBundle\:
  resource: '../../src/AppBundle/*'
  exclude:
    - '../../src/AppBundle/{Entity,Payload,Repository}'
    - '../../src/AppBundle/Event/*Event.php'
```

In XML before:
```xml
<prototype namespace="App\" resource="../src/*" exclude="../src/{Entity,Migrations,Tests}" />
```

in XML after:

```xml
<prototype namespace="App\" resource="../src/*">
  <exclude>../src/{Entity,Migrations,Tests}</exclude>
  <exclude>../src/Yolo</exclude>
</prototype>
```

In PHP before:
```php
$di->load(Prototype::class.'\\', '../Prototype')
        ->autoconfigure()
        ->exclude('../Prototype/{OtherDir,BadClasses}')
```

In PHP after:
```php
    $di->load(Prototype::class.'\\', '../Prototype')
        ->autoconfigure()
        ->exclude(['../Prototype/OtherDir', '../Prototype/BadClasses'])
```

Everything is backward compatible.
Maybe a decision about handling both attribute exclude and element exclude in XML should be taken.

Commits
-------

3ae3a03f41 [DI][DX] Allow exclude to be an array of patterns (taking #24428 over)
2018-05-09 18:25:25 +02:00
Baptiste Lafontaine
3ae3a03f41 [DI][DX] Allow exclude to be an array of patterns (taking #24428 over) 2018-05-09 18:00:53 +02:00
Maxime Steinhausser
21e49d21d8 [Messenger] Fix TraceableBus with envelope 2018-05-09 15:46:48 +01:00
Samuel ROZE
599f32c085 Ensure the envelope is passed back and can be altered
Ensure that the middlewares can also update the message within the envelope
2018-05-09 15:46:48 +01:00
Samuel ROZE
7c33cb27ab feature #26945 [Messenger] Support configuring messages when dispatching (ogizanagi)
This reverts commit 76b17b0e0f.
2018-05-09 15:46:25 +01:00
Samuel ROZE
cb2a77b24b Merge branch '4.1'
* 4.1:
  [Messenger][DX] Uses a default receiver when only one is defined
  fix deps
  [Profiler] Join using ';\n'
  Rename the command `DebugCommand`
  [Messenger] Add debug:messenger CLI command
  [Messenger] Fix default bus name
  Fix the transport factory after moving it
  [Messenger] Fix AMQP Transport factory & TransportFactoryInterface
  Fix AmqpTransport
  [Profiler] Fix dump makes toolbar disappear
  Improved exception on invalid message type
  bumped Symfony version to 4.1.0
  updated VERSION for 4.1.0-BETA1
  updated CHANGELOG for 4.1.0-BETA1
  [Messenger] Add TransportInterface as first class citizen sender+receiver
2018-05-09 15:43:48 +01:00
Samuel ROZE
e0f225bd85 minor #27203 [Messenger][DX] Uses a default receiver when only one is defined (sroze)
This PR was squashed before being merged into the 4.1 branch (closes #27203).

Discussion
----------

[Messenger][DX] Uses a default receiver when only one is defined

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

When using only one receiver, as a developer, it makes no sense for me to have to precise the receiver name when using the `messenger:consume-messages` command. This is the change:

```patch
- bin/console messenger:consume-messages default
+ bin/console messenger:consume-messages
```

If I have more than one transport configured, I'll get the following message:

>
>  You have 0 or more than one receiver (no default have been found). You need to specify the receiver name with an argument.
>

Commits
-------

8315b868d5 [Messenger][DX] Uses a default receiver when only one is defined
2018-05-09 15:41:23 +01:00
Samuel ROZE
8315b868d5 [Messenger][DX] Uses a default receiver when only one is defined 2018-05-09 15:41:15 +01:00
Samuel ROZE
6207d70964 feature #26803 [Messenger] Add debug:messenger CLI command (ro0NL, sroze)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Add debug:messenger CLI command

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

Adds a `debug:messenger` CLI command to expose message classes that can be dispatched. Heavily inspired by `debug:autowiring`.

Commits
-------

7f87309c10 fix deps
290c7eb1bc Rename the command `DebugCommand`
9847b83723 [Messenger] Add debug:messenger CLI command
2018-05-09 15:39:20 +01:00
Samuel ROZE
9ce5941ee1 minor #27192 [Messenger] Improved exception on invalid message type (yceruto)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Improved exception on invalid message type

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

before:
![invalid_message_type_before](https://user-images.githubusercontent.com/2028198/39728992-91f592e6-5227-11e8-8a29-b13d1fed82f8.png)

after:
![invalid_message_type_after](https://user-images.githubusercontent.com/2028198/39728982-8ba5b790-5227-11e8-949d-64265b702fa7.png)

Commits
-------

01fe64856f Improved exception on invalid message type
2018-05-09 13:10:57 +01:00
Samuel ROZE
290c7eb1bc Rename the command DebugCommand 2018-05-09 09:31:45 +01:00
Roland Franssen
9847b83723 [Messenger] Add debug:messenger CLI command 2018-05-09 09:27:25 +01:00
Samuel ROZE
faf9382223 Add more tests around the AMQP transport 2018-05-09 09:02:39 +01:00
Fabien Potencier
d264fcea24 feature #27138 [HttpKernel] Better exception page when the controller returns nothing (lyrixx)
This PR was merged into the 4.2-dev branch.

Discussion
----------

[HttpKernel] Better exception page when the controller returns nothing

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

---

Before:

![before](https://user-images.githubusercontent.com/408368/39580501-9c8d5e0a-4ee9-11e8-84a9-aad8566da4b6.png)

after:

![after](https://user-images.githubusercontent.com/408368/39580504-a23e3b76-4ee9-11e8-9a89-01e519b94a20.png)

Commits
-------

f1e9aa4ed8 [HttpKernel] Better exception page when the controller returns nothing
2018-05-09 07:57:23 +02:00
Samuel ROZE
ef2c091787 bug #27197 [Messenger] Fix AMQP Transport factory & TransportFactoryInterface (ogizanagi)
This PR was merged into the 4.1 branch.

Discussion
----------

[Messenger] Fix AMQP Transport factory & TransportFactoryInterface

| Q             | A
| ------------- | ---
| Branch?       | 4.1 <!-- 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 | #27164  <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Seems like we did review a bit fast here 😅

Commits
-------

98967cd73a [Messenger] Fix AMQP Transport factory & TransportFactoryInterface
2018-05-08 16:21:30 +01:00
Maxime Steinhausser
98967cd73a [Messenger] Fix AMQP Transport factory & TransportFactoryInterface 2018-05-08 17:08:45 +02:00
Yonel Ceruto
b8a4d5a232 Fix AmqpTransport 2018-05-08 10:54:44 -04:00
Yonel Ceruto
01fe64856f Improved exception on invalid message type 2018-05-08 06:58:53 -04:00
Tarmo Leppänen
5539f9d6c8 Fixed return type 2018-05-07 11:38:54 -07:00
Fabien Potencier
c3d4536203 bumped Symfony version to 4.1.0 2018-05-07 18:01:53 +02:00
Fabien Potencier
b11eaae882 updated VERSION for 4.1.0-BETA1 2018-05-07 17:30:06 +02:00
Fabien Potencier
016d556262 updated version to 4.2 2018-05-07 16:51:25 +02:00
Nicolas Grekas
379b8eb56b [Messenger] Add TransportInterface as first class citizen sender+receiver 2018-05-07 07:49:40 -07:00
Samuel ROZE
76b17b0e0f Revert "feature #26945 [Messenger] Support configuring messages when dispatching (ogizanagi)"
This reverts commit e7a0b80cb2, reversing
changes made to 388d684d75.
2018-05-07 15:33:34 +01:00
Samuel ROZE
e7a0b80cb2 feature #26945 [Messenger] Support configuring messages when dispatching (ogizanagi)
This PR was squashed before being merged into the 4.1-dev branch (closes #26945).

Discussion
----------

[Messenger] Support configuring messages when dispatching

| 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?   | see CI checks    <!-- please add some, will be required by reviewers -->
| Fixed tickets | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo

For now, this is mainly a RFC to get your opinion on such a feature (so it misses proper tests).
Supporting wrapped messages out-of-the-box would mainly allow to easily create middlewares that should act only or be configured differently for specific messages (by using wrappers instead of making messages implements specific interfaces and without requiring dedicated buses). For instance, I might want to track specific messages and expose metrics about it.

The Symfony Serializer transport (relates to #26900) and Validator middleware serve as guinea pigs for sample purpose here. But despite message validation usually is simple as it matches one use-case and won't require specific validation groups in most cases, I still think it can be useful sometimes. Also there is the case of the [`AllValidator` which currently requires using a `GroupSequence`](https://github.com/symfony/symfony/pull/26477) as a workaround, but that could also be specified directly in message metadata instead.

## Latest updates

PR updated to use a flat version of configurations instead of wrappers, using an `Envelope` wrapper and a list of envelope items.
Usage:

```php
$message = Envelope::wrap(new DummyMessage('Hello'))
    ->with(new SerializerConfiguration(array(ObjectNormalizer::GROUPS => array('foo'))))
    ->with(new ValidationConfiguration(array('foo', 'bar')))
;
```

~~By default, Messenger protagonists receive the original message. But each of them can opt-in to receive the envelope instead, by implementing `EnvelopeReaderInterface`.
Then, they can read configurations from it and forward the original message or the envelope to another party.~~

Senders, encoders/decoders & receivers always get an `Envelope`.
Middlewares & handlers always get a message. But middlewares can opt-in to receive the envelope instead, by implementing `EnvelopeReaderInterface`.

Commits
-------

749054a1e8 [Messenger] Support configuring messages when dispatching
2018-05-07 14:50:19 +01:00
Maxime Steinhausser
749054a1e8 [Messenger] Support configuring messages when dispatching 2018-05-07 14:50:10 +01:00
Samuel ROZE
388d684d75 bug #27177 Rename middlewares to middleware (fabpot, sroze)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Rename middlewares to middleware

| 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

`middleware` is uncountable in English (like software or information). So, I've removed the `s` everywhere. We can probably be a bit more explicit if we think it makes thing easier to understand like I've done in one class, like `middlewareHandler`.

Commits
-------

9ae7c11805 Do not fix the `middleware` XML name anymore
52e7500edb removed usage of middlewares
2018-05-07 14:02:32 +01:00
Fabien Potencier
559c914e1b minor #27178 [Messenger] Add missing @experimental annotations (sroze)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Add missing `@experimental` annotations

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

So we have all the Messenger interfaces tagged with `@experimental`.

Commits
-------

7f875cb52b Add missing `@experimental` annotations
2018-05-07 14:39:43 +02:00
Fabien Potencier
52e7500edb removed usage of middlewares 2018-05-07 13:37:49 +02:00
Samuel ROZE
7f875cb52b Add missing @experimental annotations 2018-05-07 11:19:29 +02:00
Fabien Potencier
df0296934d feature #27168 [HttpKernel] Add Kernel::getAnnotatedClassesToCompile() (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpKernel] Add Kernel::getAnnotatedClassesToCompile()

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

Now that apps are usually bundle-less, we're missing a way to defined the classes to parse annotations for. Here is a PR fixing this by allowing ppl to define a new `getAnnotatedClassesToCompile()` on their kernel when needed.

Commits
-------

1d2a49aeb6 [HttpKernel] Add Kernel::getAnnotatedClassesToCompile()
2018-05-07 11:18:05 +02:00
Grégoire Pineau
f1e9aa4ed8 [HttpKernel] Better exception page when the controller returns nothing 2018-05-07 10:40:50 +02:00
Fabien Potencier
9d5f50d7b6 bug #27162 [FrameworkBundle][Messenger] Remove convention-based service id generation for buses (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[FrameworkBundle][Messenger] Remove convention-based service id generation for buses

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

Service ids for buses are user facing ids: ppl *will* have to deal with them when wiring their services.
Like for cache pools, we should ask ppl to declare them using full identifiers, instead of having a convention-based way to turn a name into and id (which is something nobody will be able to remember at some point.)

Commits
-------

c7a0045cbd [FrameworkBundle][Messenger] Remove convention-based service id generation for buses
2018-05-07 10:35:29 +02:00
Fabien Potencier
8123bb102b Merge branch '4.0'
* 4.0:
  use brace-style regex delimiters
  Fixed typo RecursiveIterator -> RecursiveIteratorIterator
  [Cache] fix logic for fetching tag versions on TagAwareAdapter
  [FrameworkBundle] Remove dead code
  [FrameworkBundle] Use the correct service id for CachePoolPruneCommand in its compiler pass
  Hide short exception trace by default
  [Doctrine Bridge] fix priority for doctrine event listeners
  [Validator] make phpdoc of ObjectInitializerInterface interface more accurate
  [Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0
2018-05-07 09:14:12 +02:00
Fabien Potencier
956c2f8091 Merge branch '3.4' into 4.0
* 3.4:
  use brace-style regex delimiters
  Fixed typo RecursiveIterator -> RecursiveIteratorIterator
  [Cache] fix logic for fetching tag versions on TagAwareAdapter
  [FrameworkBundle] Use the correct service id for CachePoolPruneCommand in its compiler pass
  Hide short exception trace by default
  [Doctrine Bridge] fix priority for doctrine event listeners
  [Validator] make phpdoc of ObjectInitializerInterface interface more accurate
  [Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0
2018-05-07 09:12:24 +02:00
Fabien Potencier
40bcd7722b Merge branch '2.8' into 3.4
* 2.8:
  use brace-style regex delimiters
  Fixed typo RecursiveIterator -> RecursiveIteratorIterator
  [Validator] make phpdoc of ObjectInitializerInterface interface more accurate
2018-05-07 09:00:50 +02:00
Fabien Potencier
c2cccaf9c4 Merge branch '2.7' into 2.8
* 2.7:
  use brace-style regex delimiters
  Fixed typo RecursiveIterator -> RecursiveIteratorIterator
  [Validator] make phpdoc of ObjectInitializerInterface interface more accurate
2018-05-07 08:57:27 +02:00
Fabien Potencier
423a638f3a bug #27152 [HttpFoundation] use brace-style regex delimiters (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] use brace-style regex delimiters

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

Commits
-------

ae62d9bc81 use brace-style regex delimiters
2018-05-06 19:34:00 +02:00
Christian Flothmann
ae62d9bc81 use brace-style regex delimiters 2018-05-06 18:57:33 +02:00
Nicolas Grekas
c7a0045cbd [FrameworkBundle][Messenger] Remove convention-based service id generation for buses 2018-05-06 08:37:23 -07:00
Nicolas Grekas
32fc58df8b [DI] Allow binding by type+name 2018-05-06 08:21:25 -07:00
Valentin Udaltsov
b11dccebd2
Fixed typo RecursiveIterator -> RecursiveIteratorIterator 2018-05-06 17:23:59 +03:00
Nicolas Grekas
1d2a49aeb6 [HttpKernel] Add Kernel::getAnnotatedClassesToCompile() 2018-05-05 15:25:19 -07:00
David Maicher
d3790cadcd [Cache] fix logic for fetching tag versions on TagAwareAdapter 2018-05-04 19:07:04 -07:00
Nicolas Grekas
5434780d58 [Messenger] Rename TolerateNoHandler to AllowNoHandlerMiddleware 2018-05-04 16:04:01 -07:00
Simon DELICATA
5536ee1b3e Add a new time limit receiver 2018-05-04 13:09:11 +02:00
Nicolas Grekas
47da23c7cb minor #27129 [Messenger] Rename Adapters to Transports (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #27129).

Discussion
----------

[Messenger] Rename Adapters to Transports

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

Last of our tasks on the "plan to beta", renaming "adapters" to "transports". This is a term that makes more sense and is commonly used within the "queue community".

Commits
-------

13b747565f [Messenger] Rename Adapters to Transports
2018-05-03 17:10:25 -07:00
Samuel ROZE
13b747565f [Messenger] Rename Adapters to Transports 2018-05-03 17:09:35 -07:00
Nicolas Grekas
926f240ebe minor #27122 [DI] Minor performance tweak in PriorityTaggedServiceTrait (iltar)
This PR was squashed before being merged into the 4.1-dev branch (closes #27122).

Discussion
----------

[DI] Minor performance tweak in PriorityTaggedServiceTrait

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

When this feature was added, we were limited to older php versions that didn't have the argument unpacking feature. This should improve performance a little (also came up with php inspections).

Commits
-------

94314f9d55 [DI] Minor performance tweak in PriorityTaggedServiceTrait
2018-05-03 17:04:24 -07:00
Iltar van der Berg
94314f9d55 [DI] Minor performance tweak in PriorityTaggedServiceTrait 2018-05-03 17:03:52 -07:00
Nicolas Grekas
ce7f9bccdf minor #27123 [DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider (jvasseur)
This PR was squashed before being merged into the 4.1-dev branch (closes #27123).

Discussion
----------

[DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider

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

The DebugBundle is using the SourceContextProvider class that was introduced in v4.1

Commits
-------

b0b9060237 [DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider
2018-05-03 17:01:38 -07:00
Jérôme
b0b9060237 [DebugBundle][HttpKernel] Update var-dumper requirement for components using SourceContextProvider 2018-05-03 17:01:20 -07:00
Yonel Ceruto
11f3c455d4 Hide short exception trace by default 2018-05-03 19:18:14 -04:00
Ben Johnson
34f136e01b
Suppress warnings when open_basedir is non-empty
If PHP is configured *with a non-empty open_basedir* value that does not permit access to the target location, these calls to is_executable() throw warnings.

While Symfony may not raise exceptions for warnings in production environments, other frameworks (such as Laravel) do, in which case any of these checks causes a show-stopping 500 error.

We fixed a similar issue in the ExecutableFinder class via symfony/symfony#16182 .

This has always been an issue, but 709e15e7a37cb7ed6199548dc70dc33168e6cb2d made it more likely that a warning is triggered.
2018-05-03 12:50:56 -04:00
Christian Flothmann
667924c98a fix deprecation message 2018-05-03 10:46:26 +02:00
Kévin Dunglas
50fd769ea7
feature #27105 [Serializer] Add ->hasCacheableSupportsMethod() to CacheableSupportsMethodInterface (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Serializer] Add ->hasCacheableSupportsMethod() to CacheableSupportsMethodInterface

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

Enhances the interface introduced in #27049 to make it possible to dynamically define if "supports" methods are cacheable.

Commits
-------

04b369215c [Serializer] Add ->hasCacheableSupportsMethod() to CacheableSupportsMethodInterface
2018-05-03 08:19:37 +02:00
Nicolas Grekas
95ceeab3d7 minor #27115 [Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0 (hhamon)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0

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

d2c5813239 [Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0
2018-05-01 16:10:18 -07:00
Nicolas Grekas
ffb07c6a99 minor #27116 [Validator] make phpdoc of ObjectInitializerInterface interface more accurate (hhamon)
This PR was merged into the 2.7 branch.

Discussion
----------

[Validator] make phpdoc of ObjectInitializerInterface interface more accurate

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

Commits
-------

30970c7a9b [Validator] make phpdoc of ObjectInitializerInterface interface more accurate
2018-05-01 16:09:27 -07:00
Nicolas Grekas
7183c59c20 Merge branch '4.0'
* 4.0:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
  bumped Symfony version to 4.0.10
  updated VERSION for 4.0.9
  updated CHANGELOG for 4.0.9
  bumped Symfony version to 3.4.10
  updated VERSION for 3.4.9
  updated CHANGELOG for 3.4.9
2018-05-01 16:02:13 -07:00
Nicolas Grekas
a488d555ff Merge branch '3.4' into 4.0
* 3.4:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
  bumped Symfony version to 3.4.10
  updated VERSION for 3.4.9
  updated CHANGELOG for 3.4.9
  Add CODE_OF_CONDUCT.md
  Added .github/CODEOWNERS
  bumped Symfony version to 2.8.40
  updated VERSION for 2.8.39
  updated CHANGELOG for 2.8.39
2018-05-01 16:00:51 -07:00
Nicolas Grekas
e525248f66 Merge branch '2.8' into 3.4
* 2.8:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
2018-05-01 15:53:27 -07:00
Nicolas Grekas
087c667b83 Merge branch '2.7' into 2.8
* 2.7:
  Remove symfony/polyfill-ctype where not needed
  Use symfony/polyfill-ctype
  [Form] fixes instance variable phpdoc in FormRegistry class
2018-05-01 15:52:40 -07:00
Nicolas Grekas
046f0920c0 Remove symfony/polyfill-ctype where not needed 2018-05-01 15:50:35 -07:00
Hugo Hamon
30970c7a9b [Validator] make phpdoc of ObjectInitializerInterface interface more accurate 2018-05-02 00:50:12 +02:00
Hugo Hamon
d2c5813239 [Validator] fixes phpdoc reference to an interface that was removed in Symfony 3.0 2018-05-02 00:36:56 +02:00
Gert de Pagter
afc09cc8a7 Use symfony/polyfill-ctype
Use the polyfill for every package that uses cytpe functions.
2018-05-01 15:30:49 -07:00
Nicolas Grekas
04b369215c [Serializer] Add ->hasCacheableSupportsMethod() to CacheableSupportsMethodInterface 2018-05-01 14:58:32 -07:00
Maxime Steinhausser
c68887e1e8 [Messenger] Reset traceable buses 2018-05-01 14:54:27 +02:00
Hugo Hamon
27fddf5927 [Form] fixes instance variable phpdoc in FormRegistry class 2018-05-01 14:10:15 +02:00
Fabien Potencier
7ab4e4b782 bumped Symfony version to 4.0.10 2018-04-30 22:02:13 +02:00
Fabien Potencier
2e856cda07 updated VERSION for 4.0.9 2018-04-30 21:45:57 +02:00
Fabien Potencier
1f98e31da2 bumped Symfony version to 3.4.10 2018-04-30 21:44:07 +02:00
Fabien Potencier
c7d277e64f updated VERSION for 3.4.9 2018-04-30 21:27:02 +02:00
Nicolas Grekas
e548b28b81 Merge branch '4.0'
* 4.0:
  [Debug][WebProfilerBundle] Fix setting file link format
  [Debug] Fixed the formatPath when a custom fileLinkFormat is defined
2018-04-30 10:00:18 -07:00
Nicolas Grekas
59298a9271 Merge branch '3.4' into 4.0
* 3.4:
  [Debug][WebProfilerBundle] Fix setting file link format
  [Debug] Fixed the formatPath when a custom fileLinkFormat is defined
2018-04-30 09:59:37 -07:00
Grégoire Pineau
620f90d200 [Debug] Fixed the formatPath when a custom fileLinkFormat is defined 2018-04-30 09:53:52 -07:00
Maxime Steinhausser
eb943619b1 [Messenger] Late collect & clone messages 2018-04-30 16:27:31 +02:00
Fabien Potencier
295eaed098 minor #27087 [HttpFoundation] Rename HeaderUtils methods (c960657)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] Rename HeaderUtils methods

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

Rename new HeaderUtils methods as discussed in #27026.

Commits
-------

484d1fbd1d [HttpFoundation] Rename HeaderUtils methods
2018-04-30 08:38:46 +02:00
Fabien Potencier
5a5b925f54 feature #27092 [Workflow] "clear()" instead of "reset()" (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Workflow] "clear()" instead of "reset()"

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

While working on another PR (to come), I noticed that the workflow component is using the word "reset" for something that is consistently called "clear" in the rest of the code base (emptying the state of an object) - and also that "reset" is consistently used for setting an object back to its initial state (which might not be the empty state, contrary to what clear does).

Here is a PR fixing this inconsistency. Should be on 4.1 so that we won't have to deal with another BC layer in 4.2.

Commits
-------

858fabb10b [Workflow] "clear()" instead of "reset()"
2018-04-30 08:37:10 +02:00
Fabien Potencier
186353cb8b bumped Symfony version to 2.8.40 2018-04-30 08:11:59 +02:00
Fabien Potencier
47bba5b935 updated VERSION for 2.8.39 2018-04-30 07:52:51 +02:00
Nicolas Grekas
697791cc1b Merge branch '4.0'
* 4.0:
  Fix suggest.psr/*-implementation in composer.json files
2018-04-29 18:24:02 -07:00
Nicolas Grekas
ec057fd4f1 Merge branch '3.4' into 4.0
* 3.4:
  Fix suggest.psr/*-implementation in composer.json files
2018-04-29 18:23:47 -07:00
Nicolas Grekas
6df7d05943 Merge branch '2.8' into 3.4
* 2.8:
  Fix suggest.psr/*-implementation in composer.json files
2018-04-29 18:22:56 -07:00
Nicolas Grekas
5eea0df084 Merge branch '2.7' into 2.8
* 2.7:
  Fix suggest.psr/*-implementation in composer.json files
2018-04-29 18:21:07 -07:00
Nicolas Grekas
f0affb7292 Fix suggest.psr/*-implementation in composer.json files 2018-04-29 18:20:37 -07:00
Nicolas Grekas
8c0199e66b Merge branch '4.0'
* 4.0:
  PhpDoc: There is no attempt to create the directory
  Avoiding an error when an unused service has a missing base class
  Add an implementation just for php 7.0
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
  bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed
2018-04-29 18:07:08 -07:00
Nicolas Grekas
ca0f0cf351 Merge branch '3.4' into 4.0
* 3.4:
  PhpDoc: There is no attempt to create the directory
  Avoiding an error when an unused service has a missing base class
  Add an implementation just for php 7.0
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
  bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed
2018-04-29 18:05:59 -07:00
Nicolas Grekas
8ce94f1866 Merge branch '2.8' into 3.4
* 2.8:
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
2018-04-29 18:05:13 -07:00
Nicolas Grekas
a205599f46 Merge branch '2.7' into 2.8
* 2.7:
  bumped Symfony version to 2.7.47
  Fix #27011: Session ini_set bug
  updated VERSION for 2.7.46
  update CONTRIBUTORS for 2.7.46
  updated CHANGELOG for 2.7.46
2018-04-29 18:04:05 -07:00
Nicolas Grekas
4e3795ed3e minor #27089 [Lock][PhpDoc] There is no attempt to create the directory (corphi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Lock][PhpDoc] There is no attempt to create the directory

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

When the lock component [was](https://github.com/symfony/symfony/pull/21093) [created](https://github.com/symfony/symfony/pull/22597), the `FlockStore` implementation was copied from the filesystem component. But the dependency to its origin was dropped, and as part of that, the attempt to create the parent directory for the locks. The PhpDoc wasn’t updated to reflect this change.

Commits
-------

93a9bd3 PhpDoc: There is no attempt to create the directory
2018-04-29 18:02:24 -07:00
Nicolas Grekas
858fabb10b [Workflow] "clear()" instead of "reset()" 2018-04-29 09:31:06 -07:00
Philipp Cordes
93a9bd39b2 PhpDoc: There is no attempt to create the directory 2018-04-29 16:44:26 +02:00
Ryan Weaver
309da927e3 Avoiding an error when an unused service has a missing base class
This mirrors what was already done in AutowirePass
2018-04-29 10:04:08 -04:00
Christian Schmidt
484d1fbd1d [HttpFoundation] Rename HeaderUtils methods 2018-04-29 11:29:07 +02:00
Nicolas Grekas
3e320d6402 minor #26866 [VarDumper] Add controller & project dir to HTML output (ogizanagi)
This PR was squashed before being merged into the 4.1-dev branch (closes #26866).

Discussion
----------

[VarDumper] Add controller & project dir to HTML output

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| Bug fix?      | yes (fix callable controller support)
| 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 | N/A   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Promise made, here is the missing controller info in HTML output (and additionally the project dir).

![screenshot 2018-04-08 a 19 19 30](https://user-images.githubusercontent.com/2211145/38470410-841875b6-3b62-11e8-97d3-bea9aeb70e13.PNG)
![screenshot 2018-04-08 a 19 19 19](https://user-images.githubusercontent.com/2211145/38470409-83eb98a2-3b62-11e8-9f45-f106eaf799a7.PNG)

Commits
-------

d286064 [VarDumper] Add controller & project dir to HTML output
2018-04-29 09:56:09 +02:00
Maxime Steinhausser
d2860644b6 [VarDumper] Add controller & project dir to HTML output 2018-04-29 09:55:56 +02:00
Nicolas Grekas
b213c5a758 bug #26138 [HttpKernel] Catch HttpExceptions when templating is not installed (cilefen)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Catch HttpExceptions when templating is not installed

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | ?
| Deprecations? | no
| Tests pass?   | ?
| Fixed tickets | #25844
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

- [x] Test manually
- [x] Check for BC breaks
- [x] Needs tests

<!--
- 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.
- Replace this comment by a description of what your PR is solving.
-->

Commits
-------

4e527aa bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed
2018-04-29 09:28:32 +02:00
Nicolas Grekas
5b6df6f9c1 feature #27049 [Serializer] Cache the normalizer to use when possible (dunglas, nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Serializer] Cache the normalizer to use when possible

| 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 | #24436   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo

Still a WIP:

* [x] Support `supportsDenormalization`

As this will dramatically improve the performance of the Serializer component, can we consider introducing this change in 4.1 @symfony/deciders?

ping @bendavies

Commits
-------

16f8a13 [Serializer] Generalize caching support a bit
c1e850f [Serializer] Cache the normalizer to use when possible
2018-04-29 08:36:42 +02:00
Nicolas Grekas
61af0e3a25 bug #27007 [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items

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

I noticed that we have a race condition window when invalidating tags.
This PR fixes it by making `invalidateTags()` commit deferred items before actually invalidating tags on the back end. Deferred items are stored with the future version of the invalidated tags so that they can be fetched by concurrent processes and considered valid before and after the invalidation is committed.

Commits
-------

212c469 [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items
2018-04-29 08:31:55 +02:00
Tobias Schultze
fc5afea76a fix duplicate controller resolver test case 2018-04-28 20:41:18 +02:00
Tobias Schultze
81c9545200 bug #27067 [HttpFoundation] Fix setting session-related ini settings (e-moe)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Fix setting session-related ini settings

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

Added missed option `cache_expire`
Fixed typo in `upload_progress.min_freq`
Fixed ini_set name prefix of `url_rewriter.tags`

Commits
-------

64a0f23aff Fix #27011: Session ini_set bug
2018-04-28 18:57:47 +02:00
Nicolas Grekas
16f8a13810 [Serializer] Generalize caching support a bit 2018-04-27 15:08:58 +02:00
Kévin Dunglas
c1e850fe83 [Serializer] Cache the normalizer to use when possible 2018-04-27 13:15:22 +02:00
Fabien Potencier
00ca74ead3 minor #27019 [HttpFoundation] Fixes to new HeaderUtils class (c960657)
This PR was squashed before being merged into the 4.1-dev branch (closes #27019).

Discussion
----------

[HttpFoundation] Fixes to new HeaderUtils class

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

A follow-up to #24699 with a few code and documentation fixes for post-merge review comments by @stof.

Commits
-------

d7c3c79042 [HttpFoundation] Fixes to new HeaderUtils class
2018-04-27 11:35:33 +02:00
Christian Schmidt
d7c3c79042 [HttpFoundation] Fixes to new HeaderUtils class 2018-04-27 11:35:21 +02:00
Fabien Potencier
a9d12d2e5f feature #27065 [DI][Routing] Allow invokable objects to be used as PHP-DSL loaders (aurimasniekis)
This PR was squashed before being merged into the 4.1-dev branch (closes #27065).

Discussion
----------

[DI][Routing] Allow invokable objects to be used as PHP-DSL loaders

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

Changed DI/Router PHPFileLoader to check is_object && is_callable instead of instance of Closure

Commits
-------

662ff7e10b [DI][Routing] Allow invokable objects to be used as PHP-DSL loaders
2018-04-27 11:21:42 +02:00
Aurimas Niekis
662ff7e10b [DI][Routing] Allow invokable objects to be used as PHP-DSL loaders 2018-04-27 11:21:35 +02:00
Fabien Potencier
aa05f05526 bumped Symfony version to 2.7.47 2018-04-27 11:17:42 +02:00
Nikolay Labinskiy
64a0f23aff Fix #27011: Session ini_set bug 2018-04-27 09:20:55 +03:00
Nicolas Grekas
212c469ebf [Cache] TagAwareAdapterInterface::invalidateTags() should commit deferred items 2018-04-27 07:49:57 +02:00
Fabien Potencier
436fd79a20 updated VERSION for 2.7.46 2018-04-27 07:41:32 +02:00
Tobias Schultze
3b363a8808 minor #27066 [Messenger] unwrap ReceivedMessage in LoggingMiddleware to improve log detail (kbond)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] unwrap ReceivedMessage in LoggingMiddleware to improve log detail

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

The change gives better visibility in your logs when consuming messages.

Commits
-------

78bb0252b4 [Messenger] unwrap ReceivedMessage in LoggingMiddleware to improve log detail
2018-04-27 01:19:14 +02:00
Tobias Schultze
ee0967f0ea feature #26975 [Messenger] Add a memory limit option for ConsumeMessagesCommand (sdelicata)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Add a memory limit option for `ConsumeMessagesCommand`

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

New feature to add a memory limit option to the ConsumeMessagesCommand.
```
bin/console messenger:consume-messages <receiver-name> -m 128
```

Commits
-------

08f98cfaf1 [Messenger] Add a memory limit option for `ConsumeMessagesCommand`
2018-04-27 01:14:06 +02:00
Nicolas Grekas
e035f45637 Merge branch '4.0'
* 4.0: (22 commits)
  [appveyor] use PHP 7.1 to run composer
  [HttpKernel] Don't clean legacy containers that are still loaded
  [VarDumper] Fix HtmlDumper classes match
  Make the simple auth provider the same as in Symfony 2.7.
  [PhpUnitBridge] silence wget
  fix merge
  [Security] guardAuthenticationProvider::authenticate cannot return null according to interface specification
  [PhpUnitBridge] Fix #26994
  [VarDumper] Remove decoration from actual output in tests
  [PropertyInfo] Minor cleanup and perf improvement
  [Bridge/Doctrine] fix count() notice on PHP 7.2
  [Security] Skip user checks if not implementing UserInterface
  [DI] Add check of internal type to ContainerBuilder::getReflectionClass
  [HttpFoundation] Add HTTP_EARLY_HINTS const
  [DoctrineBridge] Improve exception message at `IdReader::getIdValue()`
  Add type hints
  fixed CS
  Use new PHP7.2 functions in hasColorSupport
  [VarDumper] Fix dumping of SplObjectStorage
  [HttpFoundation] Add functional tests for Response::sendHeaders()
  ...
2018-04-26 18:12:45 +02:00
Nicolas Grekas
c48eee86c3 Merge branch '3.4' into 4.0
* 3.4: (22 commits)
  [appveyor] use PHP 7.1 to run composer
  [HttpKernel] Don't clean legacy containers that are still loaded
  [VarDumper] Fix HtmlDumper classes match
  Make the simple auth provider the same as in Symfony 2.7.
  [PhpUnitBridge] silence wget
  fix merge
  [Security] guardAuthenticationProvider::authenticate cannot return null according to interface specification
  [PhpUnitBridge] Fix #26994
  [VarDumper] Remove decoration from actual output in tests
  [PropertyInfo] Minor cleanup and perf improvement
  [Bridge/Doctrine] fix count() notice on PHP 7.2
  [Security] Skip user checks if not implementing UserInterface
  [DI] Add check of internal type to ContainerBuilder::getReflectionClass
  [HttpFoundation] Add HTTP_EARLY_HINTS const
  [DoctrineBridge] Improve exception message at `IdReader::getIdValue()`
  Add type hints
  fixed CS
  Use new PHP7.2 functions in hasColorSupport
  [VarDumper] Fix dumping of SplObjectStorage
  [HttpFoundation] Add functional tests for Response::sendHeaders()
  ...
2018-04-26 18:12:06 +02:00
Nicolas Grekas
b8c15383cf bug #27061 [HttpKernel] Don't clean legacy containers that are still loaded (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Don't clean legacy containers that are still loaded

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

Commits
-------

be8dbc3 [HttpKernel] Don't clean legacy containers that are still loaded
2018-04-26 17:06:18 +02:00
Nicolas Grekas
be8dbc3660 [HttpKernel] Don't clean legacy containers that are still loaded 2018-04-26 16:53:34 +02:00
Kevin Bond
78bb0252b4
[Messenger] unwrap ReceivedMessage in LoggingMiddleware to improve log detail 2018-04-26 10:41:06 -04:00
Maxime Steinhausser
229430fdbd [VarDumper] Fix HtmlDumper classes match 2018-04-26 14:42:15 +02:00
Nicolas Grekas
c2eeb2929a Merge branch '2.8' into 3.4
* 2.8:
  Make the simple auth provider the same as in Symfony 2.7.
2018-04-26 13:33:17 +02:00
Leo Feyer
9afad9decd Make the simple auth provider the same as in Symfony 2.7. 2018-04-26 12:21:35 +02:00
Simon DELICATA
08f98cfaf1 [Messenger] Add a memory limit option for ConsumeMessagesCommand 2018-04-26 10:28:37 +02:00
Samuel ROZE
da4fccd37c feature #26864 [Messenger] Define multiple buses from the framework.messenger.buses configuration (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #26864).

Discussion
----------

[Messenger] Define multiple buses from the `framework.messenger.buses` configuration

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

Not everybody will benefit from having only one bus, especially with the CQRS-like usages. While keeping the extremely use of use of the single bus, this PR has the following:

- Create multiple buses from the YAML configuration
- Tag middleware only a specific buses
- Register middlewares from the YAML configuration

Even if it's visible in the PR's tests, here's how it will look like, for a completely full-customised version:
```yaml
framework:
    messenger:
        default_bus: commands
        buses:
            commands: ~
            events:
                middlewares:
                    - validation
                    - route_messages
                    - "Your\\Middleware\\Service"
                    - call_message_handler
```

A few things to note:
1. The YAML configuration creates `messenger.bus.[name]` services for the buses.
2. The YAML configuration for middleware just adds tags to the corresponding middlewares.
3. If the middleware definition does not exists, it creates it. (without any magic on the arguments though, if it isn't auto-wirable, well... "your problem")
4. In the PR, there is this "TolerateNoHandler" middleware that is a great example for event buses

Commits
-------

e5deb8499b [Messenger] Define multiple buses from the `framework.messenger.buses` configuration
2018-04-25 18:39:19 +02:00
Samuel ROZE
e5deb8499b [Messenger] Define multiple buses from the framework.messenger.buses configuration 2018-04-25 18:39:05 +02:00
Nicolas Grekas
36f3849842 fix merge 2018-04-25 18:22:06 +02:00
Chris McCafferty
4e527aa790 bug #25844 [HttpKernel] Catch HttpExceptions when templating is not installed 2018-04-25 18:12:14 +02:00
Nicolas Grekas
2abb25e881 Merge branch '2.8' into 3.4
* 2.8:
  [Security] guardAuthenticationProvider::authenticate cannot return null according to interface specification
  [VarDumper] Remove decoration from actual output in tests
  [PropertyInfo] Minor cleanup and perf improvement
  [Bridge/Doctrine] fix count() notice on PHP 7.2
  [Security] Skip user checks if not implementing UserInterface
  [HttpFoundation] Add HTTP_EARLY_HINTS const
  [DoctrineBridge] Improve exception message at `IdReader::getIdValue()`
  fixed CS
  Use new PHP7.2 functions in hasColorSupport
  [VarDumper] Fix dumping of SplObjectStorage
  Fixed being logged out on failed attempt in guard
2018-04-25 17:24:55 +02:00
Nicolas Grekas
fcebc33d39 Merge branch '2.7' into 2.8
* 2.7:
  [VarDumper] Remove decoration from actual output in tests
  [Bridge/Doctrine] fix count() notice on PHP 7.2
  [Security] Skip user checks if not implementing UserInterface
  [HttpFoundation] Add HTTP_EARLY_HINTS const
  [DoctrineBridge] Improve exception message at `IdReader::getIdValue()`
  fixed CS
  Use new PHP7.2 functions in hasColorSupport
  [VarDumper] Fix dumping of SplObjectStorage
2018-04-25 16:40:02 +02:00
Nicolas Grekas
ff962261ae bug #27016 [Security][Guard] GuardAuthenticationProvider::authenticate cannot return null (biomedia-thomas)
This PR was merged into the 2.8 branch.

Discussion
----------

[Security][Guard] GuardAuthenticationProvider::authenticate cannot return null

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

Authenticate method in GuardAuthenticationProvider returned null when the token does not originate from any of the guard authenticators. This check was not done in the supports method. According to the interface authenticate cannot return null. This patch copies theguard authenticator checks to the supports method.

Commits
-------

9dff22c [Security] guardAuthenticationProvider::authenticate cannot return null according to interface specification
2018-04-25 16:30:57 +02:00
Thomas
9dff22ca99 [Security] guardAuthenticationProvider::authenticate cannot return null according to interface specification 2018-04-25 16:28:23 +02:00
Nicolas Grekas
778d47f0ac minor #27046 [HttpKernel] Remove decoration from actual output in tests (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpKernel] Remove decoration from actual output in tests

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

AppVeyor has color support since #26910, that breaks the build.
Fixes it by removing decoration from tested DumpDataCollector CLI outputs, same as what's already done for HTML dumps

Commits
-------

c4daef9 [VarDumper] Remove decoration from actual output in tests
2018-04-25 16:23:57 +02:00
Robin Chalas
c4daef9db6 [VarDumper] Remove decoration from actual output in tests 2018-04-25 16:05:38 +02:00
Nicolas Grekas
447ce8e416 minor #27003 [PropertyInfo] Minor cleanup and perf improvement (dunglas)
This PR was squashed before being merged into the 2.8 branch (closes #27003).

Discussion
----------

[PropertyInfo] Minor cleanup and perf improvement

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| 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   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

Commits
-------

4a8306e [PropertyInfo] Minor cleanup and perf improvement
2018-04-25 14:21:53 +02:00
Kévin Dunglas
4a8306e7be [PropertyInfo] Minor cleanup and perf improvement 2018-04-25 14:21:47 +02:00
Robin Chalas
384acf9f7f [Security] Skip user checks if not implementing UserInterface 2018-04-25 13:44:04 +02:00
Fabien Potencier
0a83b17fb6 feature #27017 [Serializer] Allow to access to the context and various other infos in callbacks and max depth handler (dunglas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Serializer] Allow to access to the context and various other infos in callbacks and max depth handler

| 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 | n/a   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo

Allows to access to the context, format, parent object and attribute name in max depth handlers and callbacks.

ping @meyerbaptiste

Commits
-------

0e5f74071a [Serializer] Allow to access to the context and various other infos in callbacks and max depth handler
2018-04-25 13:39:43 +02:00
Fabien Potencier
f7264ed971 bug #27001 [Messenger] Typecast the auto-setup as a bool. (davidbarratt)
This PR was squashed before being merged into the 4.1-dev branch (closes #27001).

Discussion
----------

[Messenger] Typecast the auto-setup as a bool.

| 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 <!-- 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 | #26996
| License       | MIT
| Doc PR        |

Commits
-------

566a8be35b [Messenger] Typecast the auto-setup as a bool.
2018-04-25 12:51:12 +02:00
David Barratt
566a8be35b [Messenger] Typecast the auto-setup as a bool. 2018-04-25 12:51:00 +02:00
Roland Franssen
5ce90bd251 [DI] Handle invalid bundle configuration class 2018-04-25 11:56:16 +02:00
Robin Chalas
817da643eb [AppVeyor] Fix race condition in tests 2018-04-24 22:18:09 +02:00
Anton Dyshkant
e697c7d272 [Finder] added "use natural sort" option 2018-04-24 15:28:30 +03:00
Sergey Rabochiy
314e8813b3 [DI] Add check of internal type to ContainerBuilder::getReflectionClass 2018-04-24 12:28:38 +02:00
Kévin Dunglas
0e5f74071a
[Serializer] Allow to access to the context and various other infos in callbacks and max depth handler 2018-04-23 16:28:06 +02:00
Ahmad Mayahi
c606d60c54 [HttpFoundation] Add HTTP_EARLY_HINTS const 2018-04-23 14:28:22 +02:00
Fabien Potencier
2ed0c67375 minor #26990 declare types in array_map callbacks (DQNEO)
This PR was squashed before being merged into the 4.1-dev branch (closes #26990).

Discussion
----------

declare types in array_map callbacks

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

This is a continuation of https://github.com/symfony/symfony/pull/26821

Commits
-------

e7d5634cf4 declare types in array_map callbacks
2018-04-22 08:37:48 +02:00
DQNEO
e7d5634cf4 declare types in array_map callbacks 2018-04-22 08:37:41 +02:00
Fabien Potencier
cbc2376803 feature #24699 [HttpFoundation] Add HeaderUtils class (c960657)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] Add HeaderUtils class

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

In several places in HttpFoundation we parse HTTP header values using a variety of regular expressions. Some of them fail in various corner cases.

Parsing HTTP headers is not entirely trivial. We must be able to parse quoted strings with backslash escaping properly and ignore white-space in certain places.

In practice, our limitations in this respect may not be a big problem. We only care about a few different HTTP request headers, and they are usually restricted to a simple values without quoted strings etc. However, this is no excuse for not doing it right :-)

This PR introduces a new utility class for parsing headers. This allows Symfony itself and third-party code to parse HTTP headers in a robust way without using complex regular expressions that are difficult to write and error prone.

Commits
-------

b435e80cae [HttpFoundation] Add HeaderUtility class
2018-04-22 08:29:56 +02:00
Fabien Potencier
9cb1f14ac3 feature #26791 [BrowserKit] Bypass Header Informations (cfjulien)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[BrowserKit] Bypass Header Informations

This enables browser Testingtools like mink to pass headerfiles while doing a form submit

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| 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.
-->
We tried to do some Browsertesting with Mink and Behat, something like:

```gherkin
Scenario Outline: greet in native language

Given the browser language is "<lang>"
And I called the website
When I fill in "PHP" for "username"
And I submit the form
Then I should see "<greeting>"

	Examples:
		| lang 	| greeting 	|
		| en 	| Hello 	|
		| de 	| Hallo 	|
		| fr 	| Bonjour 	|
		| zh 	| 你好 		|
		| ru 	| привет	|
		| be 	| Bonjour 	|
```

```php
  public function theBrowserLanguageIs($arg1)
    {
        $this->getSession()->setRequestHeader('Accept', '*/*');
        $this->getSession()->setRequestHeader('Accept-Language', $arg1);
    }

```

While everything works fine with visit form submit didn't send the headers. At Mink theres also an open issue for that
https://github.com/minkphp/MinkBrowserKitDriver/issues/79

but actually the problem was between the mink browserkit and the symfony client.

Commits
-------

fa2063efe4 [BroserKit] Enable passthrew header information on submit
2018-04-22 08:26:08 +02:00
Fabien Potencier
2ceef595a5 feature #26825 [Form] Add choice_translation_locale option for Intl choice types (yceruto, fabpot)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Form] Add choice_translation_locale option for Intl choice types

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

This PR adds possibility to show the list of elements for a custom locale different to the current one and proposes also deprecate the `ChoiceLoaderInterface` implementation from all of them, moving it to a separate class.

See related issue #26737 for full description and use-case.

After:
```php
$formBuilder->add('country', CountryType::class, [
    'choice_translation_locale' => 'es',
]);
```

Alternative of https://github.com/symfony/symfony/pull/23629

TODO:

- [x] Update `UPGRADE-*.md` and `src/**/CHANGELOG.md` files.
- [x] Add some tests.

Commits
-------

9592fa64cf moved feature to 4.1
e250dfa702 Add choice_translation_locale option for Intl choice types
2018-04-22 08:19:16 +02:00
Fabien Potencier
9592fa64cf moved feature to 4.1 2018-04-22 08:17:00 +02:00
Fabien Potencier
4057067b99 bug #26014 [Security] Fixed being logged out on failed attempt in guard (iltar)
This PR was merged into the 2.8 branch.

Discussion
----------

[Security] Fixed being logged out on failed attempt in guard

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

This fixes the issue described in the ticket. After this fix, guard will no longer "forget" your authentication when your next attempt fails.

Commits
-------

4fc0ecbf90 Fixed being logged out on failed attempt in guard
2018-04-22 08:05:13 +02:00
Fabien Potencier
82a95dfb22 bug #25348 [HttpFoundation] Send cookies using header() to fix "SameSite" ones (nicolas-grekas, cvilleger)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Send cookies using header() to fix "SameSite" ones

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

Commits
-------

73fec237da [HttpFoundation] Add functional tests for Response::sendHeaders()
e350ea000f [HttpFoundation] Send cookies using header() to fix "SameSite" ones
2018-04-22 08:00:43 +02:00
Fabien Potencier
923417122a fixed CS 2018-04-22 07:56:10 +02:00
Fabien Potencier
a6c22f5edc bug #26910 Use new PHP7.2 functions in hasColorSupport (johnstevenson)
This PR was squashed before being merged into the 2.7 branch (closes #26910).

Discussion
----------

Use new PHP7.2 functions in hasColorSupport

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

Fixes bc break in #26609
Reference: https://github.com/composer/xdebug-handler/blob/master/src/Process.php#L111

Commits
-------

b0c92254a0 Use new PHP7.2 functions in hasColorSupport
2018-04-22 07:55:13 +02:00
johnstevenson
b0c92254a0 Use new PHP7.2 functions in hasColorSupport 2018-04-22 07:55:01 +02:00
Philipp Cordes
b2ac6b6fbf [VarDumper] Fix dumping of SplObjectStorage 2018-04-22 07:45:54 +02:00
DQNEO
66adc9f1c8 Revert the type declaration for Role, because users might do duck typing. 2018-04-21 20:42:13 +09:00
cvilleger
73fec237da [HttpFoundation] Add functional tests for Response::sendHeaders() 2018-04-20 20:41:36 +02:00
Yonel Ceruto
e250dfa702 Add choice_translation_locale option for Intl choice types 2018-04-20 11:42:13 -04:00
Christian Schmidt
b435e80cae [HttpFoundation] Add HeaderUtility class 2018-04-20 16:29:33 +02:00
Fabien Potencier
833909bd68 feature #26921 [DI][FrameworkBundle] Hide service ids that start with a dot (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI][FrameworkBundle] Hide service ids that start with a dot

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

Now that services are private by default, `debug:container` should display them by default.
In fact, the public/private concept should not trigger a difference in visibility for this command.

Instead, I propose to handle service ids that start with a dot as hidden services.

PR should be ready.

(For reference, I tried using a tag instead in #26891, but that doesn't work in practice when working on the implementation.)

Commits
-------

cea051ee5e [DI][FrameworkBundle] Hide service ids that start with a dot
2018-04-20 15:23:35 +02:00
Nicolas Grekas
cea051ee5e [DI][FrameworkBundle] Hide service ids that start with a dot 2018-04-20 15:14:43 +02:00
Nicolas Grekas
1b1c03af83 Merge branch '4.0'
* 4.0:
  Fix tests
  PropertyInfo\DoctrineExtractor - There is bug when indexBy is meta key
  Fix PercentType error rendering.
  [minor] SCA
  [Cache] Inline some hot function calls
  fixed Silex project's URL
  fixed deprecations in tests
  fixed Twig URL
  [Cache] Add missing `@internal` tag on ProxyTrait
  fix formatting arguments in plaintext format
  Fix PSR exception context key
  Don't assume that file binary exists on *nix OS
  Fix that ESI/SSI processing can turn a \"private\" response \"public\"
  [Form] Fixed trimming choice values
  fix rendering exception stack traces
  [Routing] Fix loading multiple class annotations for invokable classes
2018-04-20 13:04:56 +02:00
Sergey Yastrebov
f94b7aadd3 fix rounding from string 2018-04-20 13:23:06 +03:00
Nicolas Grekas
6d9d329deb Merge branch '3.4' into 4.0
* 3.4:
  Fix tests
  PropertyInfo\DoctrineExtractor - There is bug when indexBy is meta key
  Fix PercentType error rendering.
  [minor] SCA
  [Cache] Inline some hot function calls
2018-04-20 12:04:09 +02:00
Nicolas Grekas
9a0422ce45 Merge branch '2.8' into 3.4
* 2.8:
  PropertyInfo\DoctrineExtractor - There is bug when indexBy is meta key
  [minor] SCA
2018-04-20 12:02:27 +02:00
Nicolas Grekas
8c5fe4461b Merge branch '2.7' into 2.8
* 2.7:
  [minor] SCA
2018-04-20 11:59:25 +02:00
Nicolas Grekas
48f0afccde minor #26988 Fix wrong phpdoc (Nek-)
This PR was merged into the 4.1-dev branch.

Discussion
----------

Fix wrong phpdoc

The exception was renamed but the phpdoc not updated. This has no impact on anything (even IDE autocompletion) but looks bad. Here is a fix.

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

Commits
-------

878bc62 Fix wrong phpdoc
2018-04-20 11:57:39 +02:00
Nicolas Grekas
939a42f623 Fix tests 2018-04-20 11:55:01 +02:00
Maxime Veber
878bc62c1f
Fix wrong phpdoc
The exception was renamed but the phpdoc not updated. This have no impact on anything (even IDE autocompletion) but looks bad. Here is a fix.
2018-04-20 11:49:05 +02:00
Vladimir Tsykun
d0cb1de9a5 [HttpKernel] LoggerDataCollector: splitting logs on different sub-requests 2018-04-20 11:44:17 +02:00
Nicolas Grekas
b97a4ae031 minor #26938 [minor] SCA (kalessil)
This PR was squashed before being merged into the 2.7 branch (closes #26938).

Discussion
----------

[minor] SCA

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

- Control flow tweaks

Commits
-------

877e678 [minor] SCA
2018-04-20 10:39:24 +02:00
Vladimir Reznichenko
877e67883c [minor] SCA 2018-04-20 10:39:18 +02:00
Nicolas Grekas
bf871f4f69 minor #26984 [Cache] Inline some hot function calls (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] Inline some hot function calls

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

The Cache component is typically found in critical code paths, let's inline some calls.
I didn't change all calls but only those in potential hot paths.
Submitted against 3.4 to reduce future merge conflicts.

The PR also embeds edge-case behavior fixes for `ChainAdapter`.

Commits
-------

52b4bfc [Cache] Inline some hot function calls
2018-04-20 10:33:35 +02:00
Nicolas Grekas
52b4bfc042 [Cache] Inline some hot function calls 2018-04-20 10:22:20 +02:00
Fabien Potencier
bb45c75d7b Merge branch '3.4' into 4.0
* 3.4:
  fixed deprecations in tests
  fixed Twig URL
  [Cache] Add missing `@internal` tag on ProxyTrait
  fix formatting arguments in plaintext format
  Fix PSR exception context key
  Don't assume that file binary exists on *nix OS
  Fix that ESI/SSI processing can turn a \"private\" response \"public\"
  [Form] Fixed trimming choice values
  fix rendering exception stack traces
  [Routing] Fix loading multiple class annotations for invokable classes
2018-04-20 08:20:23 +02:00
Fabien Potencier
f180bfe2a2 fixed deprecations in tests 2018-04-20 08:20:06 +02:00
Fabien Potencier
437acb4357 Merge branch '2.8' into 3.4
* 2.8:
  fixed Twig URL
  Don't assume that file binary exists on *nix OS
  Fix that ESI/SSI processing can turn a \"private\" response \"public\"
  [Form] Fixed trimming choice values
2018-04-20 08:18:40 +02:00
Fabien Potencier
e8e7ff2d7b Merge branch '2.7' into 2.8
* 2.7:
  fixed Twig URL
  Don't assume that file binary exists on *nix OS
  Fix that ESI/SSI processing can turn a \"private\" response \"public\"
  [Form] Fixed trimming choice values
2018-04-20 08:15:58 +02:00
Fabien Potencier
306c5992ec feature #26768 [DI] Allow autoconfigured calls in PHP (Gary PEGEOT, GaryPEGEOT)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI] Allow autoconfigured calls in PHP

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

Allow to auto-configured method calls like:
```php
$container->registerForAutoconfiguration(LoggerAwareInterface::class)->addMethodCall('setLogger', array(new Reference(LoggerInterface::class)));
```

Commits
-------

1d811cb3f7 Add test for both _intanceof and manual method setting.
71bf3ced74 CS fix
15c45ee40a Add more test-cases
2612f81052 Allow autoconfigured calls in PHP.
2018-04-20 06:42:42 +02:00
Fabien Potencier
1b1bbd43a3 feature #26833 [HttpKernel] Added support for timings in ArgumentValueResolvers (iltar)
This PR was squashed before being merged into the 4.1-dev branch (closes #26833).

Discussion
----------

[HttpKernel] Added support for timings in ArgumentValueResolvers

| 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 feature provides timings for the supports and resolve methods for each individual argument value resolver. It was already possible to see the `controller.get_arguments` timing, but it was impossible to track a possible performance issue any further without using different tools. I've explicitly added the `supports` method as well, as it might otherwise hide performance issues. The `ServiceValueResolver` for example, does a `container::has`, which in turn might trigger a factory method, which might trigger a query for example.

~~Due to the feature freeze I've already added this to 4.2. If for some reason it's okay to still merge it into 4.1, I can update the upgrade files.~~ - Changed to 4.1

##### *Without performance issue*
![image](https://user-images.githubusercontent.com/1754678/38416250-6cf45528-3994-11e8-91d4-2472c97c6c50.png)

##### *With performance issue*
![image](https://user-images.githubusercontent.com/1754678/38416266-7966eb7c-3994-11e8-9dc5-a99daa8f9a69.png)

Commits
-------

1c0d8928aa [HttpKernel] Added support for timings in ArgumentValueResolvers
2018-04-20 06:27:48 +02:00
Iltar van der Berg
1c0d8928aa [HttpKernel] Added support for timings in ArgumentValueResolvers 2018-04-20 06:27:42 +02:00
DQNEO
74ab256bec declare type for arguments of anonymous functions for v2.7 2018-04-20 06:20:29 +02:00
Nicolas Grekas
3d7c7cf39a [Cache] Add missing @internal tag on ProxyTrait 2018-04-19 13:01:15 +02:00
Fabien Potencier
8c4fd1299b feature #26787 [Security] Make security.providers optional (MatTheCat)
This PR was squashed before being merged into the 4.1-dev branch (closes #26787).

Discussion
----------

[Security] Make security.providers optional

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

Don't really know if it's viable but I just hit #21998 so I would like to tackle this.

Commits
-------

ee54bfa646 [Security] Make security.providers optional
2018-04-19 08:45:32 +02:00
Mathieu Lechat
ee54bfa646 [Security] Make security.providers optional 2018-04-19 08:45:26 +02:00
Nicolas Grekas
a55916a895 [VarDumper] Add dd() helper == dump() + die() 2018-04-18 16:09:39 +02:00
Samuel ROZE
4429c9b20f bug #26956 [Messenger][AmqpExt] Allow disabling the auto-setup of the connection (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #26956).

Discussion
----------

[Messenger][AmqpExt] Allow disabling the auto-setup of the connection

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

Allow disabling the auto-setup of the AMQP connection. Especially useful when the messages are published to another system (see #26937)

Commits
-------

b3039faa1a [Messenger][AmqpExt] Allow disabling the auto-setup of the connection
2018-04-17 17:51:29 +01:00
Samuel ROZE
b3039faa1a [Messenger][AmqpExt] Allow disabling the auto-setup of the connection 2018-04-17 17:51:20 +01:00
Samuel ROZE
fe199317da feature #26941 [Messenger] Allow to configure the transport (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #26941).

Discussion
----------

[Messenger] Allow to configure the transport

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | ish
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #26900, #26908, #26935
| License       | MIT
| Doc PR        | ø

We allow users to configure the encoder/decoder used by the built-in adapter(s). This also adds the support of configuring the default's encoder/decoder format and context.

Commits
-------

1a3f0bbb14 [Messenger] Allow to configure the transport
2018-04-17 17:47:47 +01:00
Samuel ROZE
1a3f0bbb14 [Messenger] Allow to configure the transport 2018-04-17 17:47:06 +01:00
abluchet
a4737915c8 [Messenger] Allow sender tag name omission 2018-04-17 14:59:00 +02:00
Fabien Potencier
b0410d457e bug #26886 Don't assume that file binary exists on *nix OS (teohhanhui)
This PR was merged into the 2.7 branch.

Discussion
----------

Don't assume that file binary exists on *nix OS

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

Certain lightweight distributions such as Alpine Linux (popular for smaller Docker images) do not include it by default.

Commits
-------

e2c1f24fbd Don't assume that file binary exists on *nix OS
2018-04-17 12:07:04 +02:00
Pavel.Batanov
a28393e482
Fix PSR exception context key 2018-04-17 12:32:18 +03:00
Teoh Han Hui
e2c1f24fbd Don't assume that file binary exists on *nix OS
Certain lightweight distributions such as Alpine Linux (popular for smaller Docker images) do not include it by default.
2018-04-17 11:15:40 +02:00
Fabien Potencier
8f2132fce3 bug #26899 [Routing] Fix loading multiple class annotations for invokable classes (1ed)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Fix loading multiple class annotations for invokable classes

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

The support for full route definition for invokable controllers as class annotation was introduced by
https://github.com/symfony/symfony/pull/2172, but that works with one route only, which is inconsistent with how `@Route` works at other places. This PR adds support for multiple class annotations for invokable controllers and fixes the inconsistency.

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

2a9c668ad7 [Routing] Fix loading multiple class annotations for invokable classes
2018-04-17 09:10:52 +02:00
Fabien Potencier
d17d38d291 bug #26643 Fix that ESI/SSI processing can turn a "private" response "public" (mpdude)
This PR was squashed before being merged into the 2.7 branch (closes #26643).

Discussion
----------

Fix that ESI/SSI processing can turn a "private" response "public"

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

Under the condition that
* we are merging in at least one *embedded* response,
* all *embedded* responses are `public`,
* the *main* response is `private` and
* all responses use expiration-based caching (note: no `s-maxage` on the *main* response)

... the resulting response will turn to `Cache-Control: public`.

The real issue is that when all responses use expiration-based caching, a combined max age is computed. This is set on the *main* response using `Response::setSharedMaxAge()`, which implicitly sets `Cache-Control: public`.

The fix provided in this PR solves the problem by applying the same logic to the *main* response that is applied for *embedded* responses, namely that responses with `!Response::isCacheable()` will make the resulting response have `Cache-Control: private, no-cache, must-revalidate` and have `(s)max-age` removed.

This makes the change easy to understand, but makes responses uncacheable too often. This is because the `Response::isCacheable()` method was written to determine whether it is safe for a shared cache to keep the response, which is not the case as soon as a `private` response is involved. This might be improved upon in another PR.

Commits
-------

3d27b5946d Fix that ESI/SSI processing can turn a \"private\" response \"public\"
2018-04-16 19:47:59 +02:00
Matthias Pigulla
3d27b5946d Fix that ESI/SSI processing can turn a \"private\" response \"public\" 2018-04-16 19:47:52 +02:00
Fabien Potencier
d2f8df8054 bug #26895 [Config] Fixes the valid placeholder types for variable node (romain-pierre)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Config] Fixes the valid placeholder types for variable node

| 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 <!-- don't forget to update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tests pass?   | we will see...    <!-- please add some, will be required by reviewers -->
| Fixed tickets | #26894
| License       | MIT

This is a proposition, still in discussion.
<!--
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
-------

9fbdcdbeb9 Fixes the valid placeholder types for variable node
2018-04-16 19:38:06 +02:00
Fabien Potencier
7e4de96c03 minor #26909 [Messenger][DX] Uses the adapter name instead of the service name (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #26909).

Discussion
----------

[Messenger][DX] Uses the adapter name instead of the service name

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

As a developer, I don't get why I would need to use the service name while I give a name to the adapters. This is basically what this PR means for me in terms of configuration:
```patch
framework:
    messenger:
        routing:
            # We want the command below to be handled async with the "messenger.default_sender" (AMQP producer).
-            'App\Message\Command\CreateNumber': messenger.sender.amqp
+            'App\Message\Command\CreateNumber': amqp

        adapters:
            amqp: "%env(AMQP_DSN)%"
```

And in terms of pulling the messages:
```patch
- bin/console messenger:consume-messages messenger.receiver.amqp
+ bin/console messenger:consume-messages amqp
```

Commits
-------

b5afb40441 [Messenger][DX] Uses the adapter name instead of the service name
2018-04-16 19:19:59 +02:00
Samuel ROZE
b5afb40441 [Messenger][DX] Uses the adapter name instead of the service name 2018-04-16 19:19:48 +02:00
Romain Pierre
9fbdcdbeb9 Fixes the valid placeholder types for variable node 2018-04-16 10:25:21 +02:00
Samuel ROZE
c442929737 minor #26912 [Messenger] Testing LoggingMiddleware and minor improvements (yceruto)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Testing LoggingMiddleware and minor improvements

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

- This add tests for `LoggingMiddleware` class
- Similar to [`translator.logging`](6bbb5bcc52/src/Symfony/Component/Translation/LoggingTranslator.php (L33)) a logging service doesn't make sense without a [hard `logger` dependency](6bbb5bcc52/src/Symfony/Bundle/FrameworkBundle/Resources/config/translation.xml (L25-L29)) and according to:
6bbb5bcc52/src/Symfony/Component/Messenger/DependencyInjection/MessengerPass.php (L52-L54)

   it must be removed if `logger` alias doesn't exists.

Commits
-------

eedad4c061 Make logger arg a hard dependency, remove dead code and add tests
2018-04-15 22:28:31 +01:00
HeahDude
00cdf5e0a5 [Form] Fixed trimming choice values 2018-04-15 21:28:23 +02:00
Nicolas Grekas
ccb0e84799 [Form] tweak CHANGELOG 2018-04-15 08:55:41 -05:00
Yonel Ceruto
eedad4c061 Make logger arg a hard dependency, remove dead code and add tests 2018-04-14 13:36:02 -04:00
Nicolas Grekas
782ffe2fd2 Merge branch '4.0'
* 4.0:
  [HttpKernel] Make ServiceValueResolver work if controller namespace starts with a backslash in routing
  Add d-block to bootstrap 4 alerts
  [Console] Don't go past exact matches when autocompleting
  [DI] Improve error message for non-autowirable scalar argument
  Disable autoloader call on interface_exists check
  [Validator] Fix LazyLoadingMetadataFactory with PSR6Cache for non classname if tested values isn't an existing class
  [HttpKernel] Dont create mock cookie for new sessions in tests
2018-04-14 11:36:26 -05:00
Nicolas Grekas
594925a934 Merge branch '3.4' into 4.0
* 3.4:
  [HttpKernel] Make ServiceValueResolver work if controller namespace starts with a backslash in routing
  Add d-block to bootstrap 4 alerts
  [Console] Don't go past exact matches when autocompleting
  [DI] Improve error message for non-autowirable scalar argument
  Disable autoloader call on interface_exists check
  [Validator] Fix LazyLoadingMetadataFactory with PSR6Cache for non classname if tested values isn't an existing class
  [HttpKernel] Dont create mock cookie for new sessions in tests
2018-04-14 11:34:42 -05:00
Nicolas Grekas
0a02fb1bdd Merge branch '2.8' into 3.4
* 2.8:
  [Console] Don't go past exact matches when autocompleting
  Disable autoloader call on interface_exists check
  [Validator] Fix LazyLoadingMetadataFactory with PSR6Cache for non classname if tested values isn't an existing class
2018-04-14 11:33:56 -05:00
Nicolas Grekas
32c04bdcbb Merge branch '2.7' into 2.8
* 2.7:
  [Console] Don't go past exact matches when autocompleting
  Disable autoloader call on interface_exists check
  [Validator] Fix LazyLoadingMetadataFactory with PSR6Cache for non classname if tested values isn't an existing class
2018-04-14 11:27:29 -05:00
Mathieu TUDISCO
3b47441fd5 [HttpKernel] Make ServiceValueResolver work if controller namespace starts with a backslash in routing 2018-04-14 10:06:52 -05:00
Normunds
40bd8bd797 Add d-block to bootstrap 4 alerts 2018-04-14 09:54:06 -05:00
Nicolas Grekas
ce5b3e7ded minor #26913 [Messenger] Add tests for ValidationMiddleware (yceruto)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Add tests for ValidationMiddleware

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

Commits
-------

4a3f8f4 Add tests for ValidationMiddleware
2018-04-14 09:04:31 -05:00
Nicolas Grekas
16ae72059e bug #26857 [HttpKernel] Dont create mock cookie for new sessions in tests (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Dont create mock cookie for new sessions in tests

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

@romainneutron can you please check if this fixes your issue?

Commits
-------

86b850e [HttpKernel] Dont create mock cookie for new sessions in tests
2018-04-14 08:14:37 -05:00
Yonel Ceruto
2d3ce1dc58 Add tests for ChainHandler class 2018-04-14 08:58:06 -04:00
Yonel Ceruto
4a3f8f4775 Add tests for ValidationMiddleware 2018-04-13 08:28:05 -04:00
Samuel ROZE
6bbb5bcc52 minor #26907 [Messenger] Minor improvements and cleanup (yceruto)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Messenger] Minor improvements and cleanup

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

- enable some of opcode optimizations
- add missing typehints
- cleanup

Commits
-------

d8cc7a4715 Minor improvements and cleanup
2018-04-12 21:15:39 +01:00
Samuel ROZE
d60425c868 Allow the logger to be null (as per every other bits in the FrameworkBundle) 2018-04-12 19:18:53 +01:00
Yonel Ceruto
d8cc7a4715 Minor improvements and cleanup
- enable some of opcode optimizations
- add missing typehints
- cleanup
2018-04-12 11:42:15 -04:00
Gábor Egyed
2a9c668ad7 [Routing] Fix loading multiple class annotations for invokable classes 2018-04-12 11:01:03 +02:00
Samuel ROZE
aa04d06dc4 feature #26632 [Messenger] Add AMQP adapter (sroze)
This PR was squashed before being merged into the 4.1-dev branch (closes #26632).

Discussion
----------

[Messenger] Add AMQP adapter

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

- [x] Depends on the Messenger component #24411
- [x] Add tests once we are all happy about the structure

---

In order to give a great DX for simple needs such as sending messages through an AMQP broker such as RabbitMq, we should ship an AMQP adapter for the Messenger component within Symfony Core. It should be as simple as this proposal. We don't need to handle more specific use-cases nor brokers as other adapters such as the [enqueue adapter](https://github.com/sroze/enqueue-bridge) can also be used.

Configuring the adapter is as simple as the following configuration:
```yaml
# config/packages/messenger_adapters.yaml
framework:
    messenger:
        adapter: "%env(MESSENGER_DSN)%"
```

With the given `.env` for example:
```
MESSENGER_DSN=amqp://guest:guest@localhost:5672/%2f/messages
```

Keep in mind that after having configured the adapter, developers have to route their messages to the given adapter.

```yaml
# config/packages/messenger_routes.yaml
framework:
    messenger:
        routing:
producer).
            'App\Message\Command\CreateNumber': messenger.default_sender
```

---

Additionally, multiple adapters can be created and messages routed to these ones.

```yaml
# config/packages/messenger_routes.yaml
framework:
    messenger:
        adapters:
            commands: "amqp://guest:guest@localhost:5672/%2f/commands"
            maintenance: "amqp://guest:guest@localhost:5672/%2f/maintenance"
        routing:
producer).
            'App\Message\Command\CreateNumber': messenger.commands_sender
            'App\Message\Command\MaintenanceSpecificCommand': messenger.maintenance_sender
```

Commits
-------

798c230ad5 [Messenger] Add AMQP adapter
2018-04-12 09:16:00 +01:00
Samuel ROZE
798c230ad5 [Messenger] Add AMQP adapter 2018-04-12 09:15:52 +01:00
Tobias Schultze
11bdd807ab minor #26856 [DI] Improve error message for non-autowirable scalar argument (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Improve error message for non-autowirable scalar argument

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

Commits
-------

7f398117f4 [DI] Improve error message for non-autowirable scalar argument
2018-04-10 19:23:09 +02:00
Robin Chalas
10674688da bug #26875 [Console] Don't go past exact matches when autocompleting (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Don't go past exact matches when autocompleting

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

Commits
-------

adba79a [Console] Don't go past exact matches when autocompleting
2018-04-10 11:58:27 +02:00
Gary PEGEOT
1d811cb3f7 Add test for both _intanceof and manual method setting. 2018-04-10 11:14:46 +02:00
Nicolas Grekas
adba79a6b0 [Console] Don't go past exact matches when autocompleting 2018-04-09 15:41:45 -05:00
Nicolas Grekas
7f398117f4 [DI] Improve error message for non-autowirable scalar argument 2018-04-09 15:40:31 -05:00
Pascal Montoya
5198f435a0
Disable autoloader call on interface_exists check 2018-04-09 10:32:24 +02:00
Pascal Montoya
cd914209bd
[Validator] Fix LazyLoadingMetadataFactory with PSR6Cache for non classname if tested values isn't an existing class 2018-04-09 10:32:24 +02:00
Maxime Steinhausser
d66827eca4 [Console] Support iterable in SymfonyStyle::write/writeln 2018-04-08 12:38:20 +02:00
Christian Flothmann
a59ef8f8b6 Merge branch '4.0'
* 4.0:
  [Translation] Use unix-style EOL for xliff-core-1.2-strict.xsd
  bumped Symfony version to 4.0.9
  updated VERSION for 4.0.8
  updated CHANGELOG for 4.0.8
  bumped Symfony version to 3.4.9
  updated VERSION for 3.4.8
  updated CHANGELOG for 3.4.8
  bumped Symfony version to 2.8.39
  updated VERSION for 2.8.38
  updated CHANGELOG for 2.8.38
  bumped Symfony version to 2.7.46
  updated VERSION for 2.7.45
  update CONTRIBUTORS for 2.7.45
  updated CHANGELOG for 2.7.45
  [Yaml] Throw parse error on unfinished inline map
2018-04-08 11:02:26 +02:00
Christian Flothmann
2bec0e1400 Merge branch '3.4' into 4.0
* 3.4:
  [Translation] Use unix-style EOL for xliff-core-1.2-strict.xsd
  bumped Symfony version to 3.4.9
  updated VERSION for 3.4.8
  updated CHANGELOG for 3.4.8
  bumped Symfony version to 2.8.39
  updated VERSION for 2.8.38
  updated CHANGELOG for 2.8.38
  bumped Symfony version to 2.7.46
  updated VERSION for 2.7.45
  update CONTRIBUTORS for 2.7.45
  updated CHANGELOG for 2.7.45
  [Yaml] Throw parse error on unfinished inline map
2018-04-08 10:49:08 +02:00
Christian Flothmann
7cd5e43141 Merge branch '2.8' into 3.4
* 2.8:
  bumped Symfony version to 2.8.39
  updated VERSION for 2.8.38
  updated CHANGELOG for 2.8.38
  bumped Symfony version to 2.7.46
  updated VERSION for 2.7.45
  update CONTRIBUTORS for 2.7.45
  updated CHANGELOG for 2.7.45
  [Yaml] Throw parse error on unfinished inline map
2018-04-08 10:21:29 +02:00
Christian Flothmann
611b84606d Merge branch '2.7' into 2.8
* 2.7:
  bumped Symfony version to 2.7.46
  updated VERSION for 2.7.45
  update CONTRIBUTORS for 2.7.45
  updated CHANGELOG for 2.7.45
  [Yaml] Throw parse error on unfinished inline map
2018-04-08 09:53:13 +02:00
Christian Flothmann
16edba5d99 bug #26834 [Yaml] Throw parse error on unfinished inline map (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Yaml] Throw parse error on unfinished inline map

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

Throws a parse error instead of a PHP notice.

Commits
-------

4359936 [Yaml] Throw parse error on unfinished inline map
2018-04-08 09:51:31 +02:00
Tobias Schultze
629e82dca6 minor #26828 [HttpFoundation] Have MigratingSessionHandler implement SessionUpdateTimestampHandlerInterface (nicolas-grekas)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[HttpFoundation] Have MigratingSessionHandler implement SessionUpdateTimestampHandlerInterface

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

Forgotten in #26096

Commits
-------

5d7117bf0a [HttpFoundation] Have MigratingSessionHandler implement SessionUpdateTimestampHandlerInterface
2018-04-07 21:59:24 +02:00
Nicolas Grekas
86b850ebd8 [HttpKernel] Dont create mock cookie for new sessions in tests 2018-04-07 16:32:26 +02:00
Nicolas Grekas
5d7117bf0a [HttpFoundation] Have MigratingSessionHandler implement SessionUpdateTimestampHandlerInterface 2018-04-07 15:53:44 +02:00
Nicolas Grekas
c36f6db14b [Translation] Use unix-style EOL for xliff-core-1.2-strict.xsd 2018-04-07 15:20:24 +02:00
Fabien Potencier
02e5fbceea bumped Symfony version to 4.0.9 2018-04-06 18:49:36 +02:00
Tobias Schultze
5100071caf [Console] add support for iterable in output 2018-04-06 18:29:06 +02:00
Fabien Potencier
cdef8e4256 updated VERSION for 4.0.8 2018-04-06 18:25:03 +02:00
Fabien Potencier
4dda7abdce bumped Symfony version to 3.4.9 2018-04-06 18:24:29 +02:00
Fabien Potencier
884b994be9 updated VERSION for 3.4.8 2018-04-06 17:19:48 +02:00
Fabien Potencier
b04452a223 bumped Symfony version to 2.8.39 2018-04-06 17:19:00 +02:00
Fabien Potencier
47b29834cb updated VERSION for 2.8.38 2018-04-06 16:52:08 +02:00
Fabien Potencier
e73aa2985b bumped Symfony version to 2.7.46 2018-04-06 16:50:48 +02:00
Fabien Potencier
952879e147 updated VERSION for 2.7.45 2018-04-06 14:49:33 +02:00
Nicolas Grekas
e350ea000f [HttpFoundation] Send cookies using header() to fix "SameSite" ones 2018-04-06 13:05:51 +02:00
Nicolas Grekas
43599362a2 [Yaml] Throw parse error on unfinished inline map 2018-04-06 13:01:31 +02:00
Julien Menth
fa2063efe4 [BroserKit] Enable passthrew header information on submit
This enables browser Testingtools like mink to pass headerfiles while doing a form submmit
2018-04-06 12:52:03 +02:00
Fabien Potencier
f1a9d7098e Merge branch '4.0'
* 4.0:
  [Form] Fix typo in Upgrade 3.4/4.0
  [EventDispatcher] Dispatcher in stopEventPropagation test now registers correct listener
  Update da translations
  Fix Typo in Guard Factory
2018-04-06 09:35:57 +02:00
Fabien Potencier
5ea5ee2079 Merge branch '3.4' into 4.0
* 3.4:
  [Form] Fix typo in Upgrade 3.4/4.0
  [EventDispatcher] Dispatcher in stopEventPropagation test now registers correct listener
  Update da translations
  Fix Typo in Guard Factory
2018-04-06 09:35:43 +02:00
Fabien Potencier
ee054cd756 Merge branch '2.8' into 3.4
* 2.8:
  [EventDispatcher] Dispatcher in stopEventPropagation test now registers correct listener
  Update da translations
  Fix Typo in Guard Factory
2018-04-06 09:35:25 +02:00
Fabien Potencier
72b238ed3a Merge branch '2.7' into 2.8
* 2.7:
  [EventDispatcher] Dispatcher in stopEventPropagation test now registers correct listener
  Update da translations
2018-04-06 09:35:03 +02:00
Fabien Potencier
dc29b27a83 feature #26660 [SecurityBundle] allow using custom function inside allow_if expressions (dmaicher)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[SecurityBundle] allow using custom function inside allow_if expressions

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

This is a follow-up for https://github.com/symfony/symfony/pull/26263

As discussed there I propose to allow using custom functions as a new feature only and thus targeting `master` here.

If we agree to move forward with this there are some todos:
- [x] fix tests
- [x] add cache warmer for allow_if expressions
- [x] update documentation to mention this new feature
- [x] update UPGRADE files

ping @nicolas-grekas @stof

Commits
-------

41552cd896 [SecurityBundle] allow using custom function inside allow_if expressions
2018-04-06 08:18:32 +02:00
Fabien Potencier
0f4c0e92b2 feature #26096 [HttpFoundation] Added a migrating session handler (rossmotley)
This PR was squashed before being merged into the 4.1-dev branch (closes #26096).

Discussion
----------

[HttpFoundation] Added a migrating session handler

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

- [x] gather feedback for my changes
- [x] submit changes to the documentation
- [x] update the changelog

When migrating to a new session handler on a live system, it's useful to be able to do it with no loss of session data. This migrating handler allows the sessions to be written to an additional handler to enable a migration workflow like:

* Switch to migrating handler, with your new handler as the 'write only' one. The old handler behaves as usual and sessions get written to the new one.
* After verifying the data in the new handler (and after the session gc period), switch the migrating handler to use your old handler as the 'write only' one instead, so the sessions will now be read from the new handler. This step allows easier rollbacks.
* After verifying everything, switch from the migrating handler to the new handler

Commits
-------

3acd548349 [HttpFoundation] Added a migrating session handler
2018-04-06 07:59:02 +02:00
Ross Motley
3acd548349 [HttpFoundation] Added a migrating session handler 2018-04-06 07:58:54 +02:00
Fabien Potencier
47e2bd31da feature #26528 [Debug] Support any Throwable object in FlattenException (derrabus)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Debug] Support any Throwable object in FlattenException

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

Alternative to #26447 without BC breaks, follows #26028.

This PR removes the need to convert `Throwable` objects into exceptions when working with `FlattenException`.

ping @instabledesign @ostrolucky @nicolas-grekas

Commits
-------

96c1a6fa71 Support any Throwable object in FlattenException.
2018-04-06 07:53:59 +02:00
Fabien Potencier
60e48cb0f5 fixed typo 2018-04-06 07:34:50 +02:00
Fabien Potencier
dbafc11630 bug #26799 [DI][Config] Fix empty env validation (ro0NL)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[DI][Config] Fix empty env validation

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

d40a4f409d [DI][Config] Fix empty env validation
2018-04-06 07:33:43 +02:00
Fabien Potencier
3a37e41bfb bug #26816 [Messenger][FrameworkBundle] Move collector, command into the component & minor tweaks (ogizanagi)
This PR was squashed before being merged into the 4.1-dev branch (closes #26816).

Discussion
----------

[Messenger][FrameworkBundle] Move collector, command into the component & minor tweaks

| Q             | A
| ------------- | ---
| Branch?       | master <!-- see below -->
| 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   <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Some suggestions more aligned with most of the core practices, mainly:

- Move the command & collector to the component itself. They are not dependent of the Fwb in any way and are useful out of the fwb usage.
- Add an exception in FrameworkExtension if the `framework.messenger` key is enabled, but the component isn't installed.

Commits
-------

6aec62bad3 [FrameworkBundle] Minor messenger component tweaks
f9c9ca0514 [Messenger] Move data collector & command into the component
2018-04-06 07:28:47 +02:00
Alexander M. Turek
96c1a6fa71 Support any Throwable object in FlattenException. 2018-04-05 19:04:06 +02:00
Maxime Steinhausser
f9c9ca0514 [Messenger] Move data collector & command into the component 2018-04-05 17:21:58 +02:00
Peter Orosz
24c460afa6 [EventDispatcher] Dispatcher in stopEventPropagation test now registers correct listener 2018-04-05 16:23:45 +02:00
Maxime Steinhausser
a01b8e420d [Messenger] Fix composer branch-alias 2018-04-04 23:42:37 +02:00
Samuel ROZE
08ca9f5a56 bug #26804 [Messenger] Fix handles tag attribute (ro0NL)
This PR was squashed before being merged into the 4.1-dev branch (closes #26804).

Discussion
----------

[Messenger] Fix handles tag attribute

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

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

92f7e37a27 [Messenger] Fix handles tag attribute
2018-04-04 20:34:11 +01:00
Roland Franssen
92f7e37a27 [Messenger] Fix handles tag attribute 2018-04-04 20:34:01 +01:00
David Maicher
41552cd896 [SecurityBundle] allow using custom function inside allow_if expressions 2018-04-04 20:31:39 +02:00
Fabien Potencier
2a4d024bcd feature #21856 [LDAP] Allow adding and removing values to/from multi-valued attributes (jean-gui)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[LDAP] Allow adding and removing values to/from multi-valued attributes

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

`EntryManagerInterface::update(Entry $entry)` is extremely slow in some specific cases such as adding or removing members to or from huge groupOfNames if you also enable the memberOf overlay in OpenLDAP. Disabling memberOf does make things a lot better, but it is still slow compared to inserting/removing only the elements you want.

This PR adds two methods to Symfony\Component\Ldap\Adapter\ExtLdap\EntryManager taking advantage of ldap_mod_add and ldap_mod_del.

I thought about using them directly in the update method, but since you need to know what values to add and remove, it would be necessary to retrieve the old values from LDAP.

I'm also unsure whether these two methods should be in an interface. I think that adding them to EntryManagerInterface would break BC, but I could create another interface, similarly to RenameEntryInterface.

Commits
-------

fa9db29064 Allow adding and removing values to/from multi-valued attributes
2018-04-04 19:33:55 +02:00
jean-gui
fa9db29064 Allow adding and removing values to/from multi-valued attributes 2018-04-04 19:25:31 +02:00
Fabien Potencier
fe6aa6414f feature #26767 [Form] ability to set rounding strategy for MoneyType (syastrebov)
This PR was merged into the 4.1-dev branch.

Discussion
----------

[Form] ability to set rounding strategy for MoneyType

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

Added `rounding_mode` to the `MoneyType` to be possible to change rounding strategy for money values. For now it's just `ROUND_HALF_UP` but it's good to have `ROUND_DOWN` as well. E.g. to transform `15.999` to `15.99` instead of `15.1`.

Commits
-------

f3b142420f rounding_mode for money type
2018-04-04 19:12:35 +02:00
Fabien Potencier
a90cd13fa4 minor #26801 Update da translations (c960657)
This PR was merged into the 2.7 branch.

Discussion
----------

Update da translations

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

The Danish translations have several serious errors. This PR adjusts to official Danish orthography, and updates some texts for internal consistency and to better reflect the original English text.

Commits
-------

d0ea26bd15 Update da translations
2018-04-04 19:11:55 +02:00
Christian Schmidt
d0ea26bd15 Update da translations 2018-04-04 19:02:30 +02:00
Roland Franssen
d40a4f409d [DI][Config] Fix empty env validation 2018-04-04 18:31:13 +02:00
Nicolas Grekas
bd4820b146 Merge branch '4.0'
* 4.0:
  [Routing] Fix throwing NoConfigurationException instead of 405
  [Security] Load the user before pre/post auth checks when needed
  [SecurityBundle] Add test for simple authentication config
  [WebProfilerBundle] fix version check
  [SecurityBundle] Add missing argument to security.authentication.provider.simple
  [Finder] fix tests
2018-04-04 15:53:40 +02:00
Nicolas Grekas
bc23cae7b0 Merge branch '3.4' into 4.0
* 3.4:
  [Routing] Fix throwing NoConfigurationException instead of 405
  [Security] Load the user before pre/post auth checks when needed
  [SecurityBundle] Add test for simple authentication config
  [WebProfilerBundle] fix version check
  [SecurityBundle] Add missing argument to security.authentication.provider.simple
  [Finder] fix tests
2018-04-04 15:50:32 +02:00
Nicolas Grekas
5d189e1018 Merge branch '2.8' into 3.4
* 2.8:
  [Security] Load the user before pre/post auth checks when needed
  [SecurityBundle] Add test for simple authentication config
  [SecurityBundle] Add missing argument to security.authentication.provider.simple
  [Finder] fix tests
2018-04-04 15:49:01 +02:00
Nicolas Grekas
2c7556f311 Merge branch '2.7' into 2.8
* 2.7:
  [Finder] fix tests
2018-04-04 15:38:31 +02:00
Nicolas Grekas
73269cfd0e [Routing] Fix throwing NoConfigurationException instead of 405 2018-04-04 15:22:16 +02:00
Robin Chalas
c318306b44 [Security] Load the user before pre/post auth checks when needed 2018-04-04 15:01:49 +02:00
Sergey Yastrebov
f3b142420f rounding_mode for money type 2018-04-04 14:15:26 +03:00
Samuel ROZE
ff9153ea67 Mention the interface is a marker 2018-04-04 08:28:34 +01:00
Christian Flothmann
540ea112b5 [Finder] fix tests 2018-04-04 08:34:32 +02:00
Fabien Potencier
c9ebbce82f fixed a typo 2018-04-04 07:23:22 +02:00
Fabien Potencier
54268f1266 Merge branch '4.0'
* 4.0:
  fixed tests
  [Finder] Remove duplicate slashes in filenames
  [VarDumper] Skip some tests on custom xdebug.file_link_format
  [WebProfilerBundle][HttpKernel] Make FileLinkFormatter URL format generation lazy
  bumped Symfony version to 4.0.8
  updated VERSION for 4.0.7
  updated CHANGELOG for 4.0.7
  bumped Symfony version to 3.4.8
  updated VERSION for 3.4.7
  updated CHANGELOG for 3.4.7
2018-04-04 07:11:41 +02:00