Commit Graph

26415 Commits

Author SHA1 Message Date
Nicolas Grekas
9251a2143d [DI] Fix keys resolution in ResolveParameterPlaceHoldersPass 2017-06-12 12:11:53 +02:00
Guilhem Niot
a4d799ad0e [FrameworkBundle] Fix colliding service ids 2017-06-11 11:30:54 +02:00
Fabien Potencier
b57895ccaf [FrameworkBundle] deprecated validator.mapping.cache.doctrine.apc 2017-06-10 17:54:55 -07:00
Fabien Potencier
0dbba7bf4f minor #22931 SCA with Php Inspections (EA Extended): 2.7 (kalessil)
This PR was squashed before being merged into the 2.7 branch (closes #22931).

Discussion
----------

SCA with Php Inspections (EA Extended): 2.7

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

Static Code Analysis with Php Inspections (EA Extended): dead code and control flow tweaks.

Commits
-------

598ae56cc9 SCA with Php Inspections (EA Extended): 2.7
2017-06-10 17:25:34 -07:00
Vladimir Reznichenko
598ae56cc9 SCA with Php Inspections (EA Extended): 2.7 2017-06-10 17:25:31 -07:00
Fabien Potencier
9e2f394bf3 minor #23120 Remove deprecated each function (pierredup)
This PR was squashed before being merged into the 2.7 branch (closes #23120).

Discussion
----------

Remove deprecated each function

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

Replace the `each()` function which is deprecated in PHP 7.2 (https://wiki.php.net/rfc/deprecations_php_7_2#each)

Commits
-------

232caad876 Remove deprecated each function
2017-06-10 07:57:49 -07:00
Pierre du Plessis
232caad876 Remove deprecated each function 2017-06-10 07:57:48 -07:00
Christian Flothmann
c9c3495fc0 remove now useless condition 2017-06-10 13:08:03 +01:00
Robin Chalas
e3ee6bc349 Lazy load security listeners 2017-06-09 17:57:53 +02:00
Fabien Potencier
d024c82b48 minor #23117 [EventDispatcher] Remove dead code in WrappedListener (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[EventDispatcher] Remove dead code in WrappedListener

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

The static `$cloner` property is unused since ab716c64de

Commits
-------

8b7de02413 [EventDispatcher] Remove dead code in WrappedListener
2017-06-09 08:14:08 -07:00
Robin Chalas
8b7de02413 [EventDispatcher] Remove dead code in WrappedListener 2017-06-09 16:53:08 +02:00
Nicolas Grekas
3aa8861a42 [Process] Deprecate ProcessBuilder 2017-06-09 15:37:35 +02:00
Robin Chalas
c1fa308c0a Fix non-dumped voters in security panel 2017-06-09 14:05:05 +02:00
Fabien Potencier
e4e1b81b48 feature #22675 [FrameworkBundle] KernelTestCase: deprecate not using KERNEL_CLASS (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] KernelTestCase: deprecate not using KERNEL_CLASS

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | yes
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22668#issuecomment-299875161
| License       | MIT
| Doc PR        | N/A

Commits
-------

d102fc08e4 [FrameworkBundle] KernelTestCase: deprecate not using KERNEL_CLASS
2017-06-08 17:37:21 -07:00
Roland Franssen
73f24e8f48 search case insensitive 2017-06-08 17:24:28 -07:00
Roland Franssen
0821c5a059 [VarDumper] Cyclic searching dumps 2017-06-08 17:24:28 -07:00
Fabien Potencier
311cc8ab24 bug #22953 #22839 - changed debug toolbar dump section to relative and use full window width (mkurzeja)
This PR was merged into the 2.8 branch.

Discussion
----------

#22839 - changed debug toolbar dump section to relative and use full window width

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

My approach to fix #22839 - instead of adding min-width I have switched the section to fill the full available width:
![zrzut ekranu 2017-05-30 o 10 18 25](https://cloud.githubusercontent.com/assets/1044032/26574462/bf80b6dc-4521-11e7-96cc-bec0de075329.png)

Commits
-------

65297de3aa #22839 - changed debug toolbar dump section to relative and use full window width
2017-06-08 17:14:12 -07:00
Fabien Potencier
bdd888feca feature #23044 Automatically enable the routing annotation loader (GuilhemN)
This PR was merged into the 3.4 branch.

Discussion
----------

Automatically enable the routing annotation loader

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | there's probably one but I didn't find it
| License       | MIT
| Doc PR        |

Thanks to fqcn services, most of the time, we don't need the SensioFrameworkExtraBundle to use `@Route`.
So I suggest to automatically enable it when annotations are enabled. This way we could simplify https://github.com/symfony/recipes/blob/master/symfony/framework-bundle/3.3/etc/routing.yaml#L5.

Note: I added priority support for routing loaders to make sure sensio loaders are executed before ours.

Commits
-------

c2f796fa15 Automatically enable the routing annotation loader
2017-06-08 17:12:04 -07:00
Fabien Potencier
0c17767dd5 bug #23086 [FrameworkBundle] Fix perf issue in CacheClearCommand::warmup() (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[FrameworkBundle] Fix perf issue in CacheClearCommand::warmup()

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

On slow file systems (eg on Windows), I noticed that writing files without doing any changes just kills perf.
Limiting the depth also helps when the symfony/cache component is used (because it can store thousands of files in its cache pool directory structure, and iterating there is also a waste of *fs* time).
I choose the max depth by looking at where existing apps put their files and added one level more just in case.

Commits
-------

b58f060fda [FrameworkBundle] Fix perf issue in CacheClearCommand::warmup()
2017-06-08 17:11:05 -07:00
Fabien Potencier
b376eca7cc bug #23090 [SecurityBundle] Made 2 service aliases private (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[SecurityBundle] Made 2 service aliases private

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

We missed making them private :(
Is it too late to fix that?

Commits
-------

4442c636c8 [SecurityBundle] Made 2 service aliases private
2017-06-08 17:09:06 -07:00
Fabien Potencier
895b123413 Merge branch '2.7' into 2.8
* 2.7:
  bumped Symfony version to 2.7.30
  Cache ipCheck
  updated VERSION for 2.7.29
  update CONTRIBUTORS for 2.7.29
  updated CHANGELOG for 2.7.29
  show unique inherited roles
2017-06-08 16:53:01 -07:00
Fabien Potencier
589f2b1a6c bug #23098 Cache ipCheck (2.7) (gonzalovilaseca)
This PR was merged into the 2.7 branch.

Discussion
----------

Cache ipCheck (2.7)

In our app we use trusted proxies. Using Blackfire we found `IpUtils::checkIp` was being called 454 times taking 3.15ms.
Caching the result saves those 3ms.

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

bcb80569cb Cache ipCheck
2017-06-08 16:52:20 -07:00
Nicolas Grekas
f82b6185a4 [Yaml] Remove line number in deprecation notices 2017-06-08 18:22:33 +02:00
Jáchym Toušek
8a4d4eb563 [Security] Fix annotation 2017-06-08 15:38:34 +02:00
Nicolas Grekas
aadf263db4 [Cache] APCu isSupported() should return true when apc.enable_cli=Off 2017-06-08 13:47:25 +02:00
Javan Eskander
2f350d1d38 Fixed PHPdoc return references in FormBuilderInterface 2017-06-08 17:18:54 +10:00
tsufeki
45b961de2e [PropertyAccess] Do not silence TypeErrors from client code. 2017-06-07 23:00:20 +02:00
Fabien Potencier
e8497bb57d bumped Symfony version to 2.8.23 2017-06-07 13:30:46 -07:00
Fabien Potencier
0d52ccb5ff updated VERSION for 2.8.22 2017-06-07 13:12:31 -07:00
Fabien Potencier
ccb6543839 bumped Symfony version to 2.7.30 2017-06-07 13:11:41 -07:00
Gonzalo Vilaseca
bcb80569cb Cache ipCheck 2017-06-07 20:32:30 +01:00
Fabien Potencier
c713d69827 updated VERSION for 2.7.29 2017-06-07 11:50:32 -07:00
Nicolas Grekas
25f13686f9 Merge branch '3.3' into 3.4
* 3.3:
  [MonologBridge] Do not silence errors in ServerLogHandler::formatRecord
  bumped Symfony version to 3.3.3
  updated VERSION for 3.3.2
  updated CHANGELOG for 3.3.2
  [HttpKernel][Debug] Fix missing trace on deprecations collected during bootstrapping & silenced errors
2017-06-07 16:09:28 +02:00
Fabien Potencier
384b34bdee feature #22696 [PropertyInfo] Made ReflectionExtractor's prefix lists instance variables (neemzy)
This PR was merged into the 3.4 branch.

Discussion
----------

[PropertyInfo] Made ReflectionExtractor's prefix lists instance variables

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

This PR makes `ReflectionExtractor`'s mutator/accessor prefixes instance variables in order to be able to override them to change its behavior.

Commits
-------

58e733b49e [PropertyInfo] Made ReflectionExtractor's prefix lists instance variables
2017-06-07 05:14:51 -07:00
Guilhem Niot
60f5046661 [Yaml] Deprecate using the non-specific tag 2017-06-07 12:54:54 +02:00
Nicolas Grekas
4442c636c8 [SecurityBundle] Made 2 service aliases private 2017-06-07 12:41:51 +02:00
Guilhem Niot
c2f796fa15 Automatically enable the routing annotation loader 2017-06-07 12:20:52 +02:00
Nicolas Grekas
b58f060fda [FrameworkBundle] Fix perf issue in CacheClearCommand::warmup() 2017-06-07 09:57:32 +02:00
Grégoire Pineau
f1edfa7ec2 [MonologBridge] Do not silence errors in ServerLogHandler::formatRecord 2017-06-06 17:10:52 +02:00
Fabien Potencier
100695978a bug #23007 [HttpKernel][Debug] Fix missing trace on deprecations collected during bootstrapping & silenced errors (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpKernel][Debug] Fix missing trace on deprecations collected during bootstrapping & silenced errors

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see comment below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #22958 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

|Before|After|
|--|--|
|<img width="1086" alt="screenshot 2017-06-01 a 10 12 07" src="https://cloud.githubusercontent.com/assets/2211145/26670940/feb51b52-46b3-11e7-806f-e23e2eb248c1.PNG">|<img width="1094" alt="screenshot 2017-06-01 a 10 13 39" src="https://cloud.githubusercontent.com/assets/2211145/26670941/feb8bd66-46b3-11e7-8e54-cc4959487b7a.PNG">|

(failures unrelated or deps=high fixed when merged in upper branches)

Commits
-------

21ef065594 [HttpKernel][Debug] Fix missing trace on deprecations collected during bootstrapping & silenced errors
2017-06-06 07:51:55 -07:00
Fabien Potencier
62cbfdd2e2 bug #23069 [SecurityBundle] Show unique Inherited roles in profile panel (yceruto)
This PR was merged into the 2.7 branch.

Discussion
----------

[SecurityBundle] Show unique Inherited roles in profile panel

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

When more than one assigned role reaches the same inherited role then it's duplicated in the "Inherited roles" list.

The changes in the test case show the unexpected result before fix it:

```console
There was 1 failure:

1) Symfony\Bundle\SecurityBundle\Tests\DataCollector\SecurityDataCollectorTest::testCollectAuthenticationTokenAndRoles with data set #4 (array('ROLE_ADMIN', 'ROLE_OPERATOR'), array('ROLE_ADMIN', 'ROLE_OPERATOR'), array('ROLE_USER', 'ROLE_ALLOWED_TO_SWITCH'))
Failed asserting that Array &0 (
    0 => 'ROLE_USER'
    1 => 'ROLE_ALLOWED_TO_SWITCH'
    2 => 'ROLE_USER'
) is identical to Array &0 (
    0 => 'ROLE_USER'
    1 => 'ROLE_ALLOWED_TO_SWITCH'
)
```

Commits
-------

7061bfbf3a show unique inherited roles
2017-06-06 07:50:26 -07:00
Nicolas Grekas
b0ede2c9c8 Merge branch '3.3' into 3.4
* 3.3:
  [TwigBridge] Fix namespaced classes
  bumped Symfony version to 3.3.2
  updated VERSION for 3.3.1
  updated CHANGELOG for 3.3.1
  [DependencyInjection] Fix named args support in ChildDefinition
  [Cache] Fallback to positional when keyed results are broken
  [HttpFoundation][FrameworkBundle] Revert "trusted proxies" BC break
  [Cache] MemcachedAdapter not working with TagAwareAdapter
  Remove closure-proxy leftovers
  [DependencyInjection] Use more clear message when unused environment variables detected
  [Form][Profiler] Fixes form collector triggering deprecations
  mitigate BC break with empty trusted_proxies
  [Profiler] Never wrap in code excerpts
  [Form][FrameworkBundle] Remove non-existing arg for data_collector.form
  explain that a role can be an instance of Role
  [Cache] fix Redis scheme detection
  mix attr options between type-guess options and user options
2017-06-06 06:51:36 +02:00
Fabien Potencier
f322107d64 bumped Symfony version to 3.3.3 2017-06-05 21:14:06 -07:00
Fabien Potencier
adf3a020e0 updated VERSION for 3.3.2 2017-06-05 20:59:58 -07:00
Nicolas Grekas
7769179e0f Merge branch '3.2' into 3.3
* 3.2:
  [TwigBridge] Fix namespaced classes
  [Cache] MemcachedAdapter not working with TagAwareAdapter
  [DependencyInjection] Use more clear message when unused environment variables detected
  mix attr options between type-guess options and user options
2017-06-06 05:13:52 +02:00
Fabien Potencier
c29714479a Merge branch '2.8' into 3.2
* 2.8:
  [TwigBridge] Fix namespaced classes
  mix attr options between type-guess options and user options
2017-06-05 19:49:13 -07:00
Fabien Potencier
419556ff87 Merge branch '2.7' into 2.8
* 2.7:
  [TwigBridge] Fix namespaced classes
  mix attr options between type-guess options and user options
2017-06-05 19:49:00 -07:00
Maxime Steinhausser
a1cdc2d46e [TwigBridge] Fix namespaced classes 2017-06-05 17:06:12 -07:00
Dany Maillard
1da8e71b6c Add filter in VarDumperTestTrait 2017-06-05 23:18:32 +02:00
Fabien Potencier
25df7a19a8 bumped Symfony version to 3.3.2 2017-06-05 11:41:08 -07:00
Yonel Ceruto
7061bfbf3a show unique inherited roles 2017-06-05 14:17:49 -04:00
Fabien Potencier
af5522ebf8 updated VERSION for 3.3.1 2017-06-05 10:31:57 -07:00
Fabien Potencier
085d8fec5d bug #23067 [HttpFoundation][FrameworkBundle] Revert "trusted proxies" BC break (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpFoundation][FrameworkBundle] Revert "trusted proxies" BC break

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

Basically reverts #22238 + cleanups some comments + adds missing syncing logic in setTrustedHeaderName.

The reason for this proposal is that the BC break can go un-noticed until prod, *even if you have proper CI*. That's because your CI may not replicate exactly what your prod have (ie a reverse proxy), so that maybe only prod has a trusted-proxies configuration. I realized this while thinking about #23049: it made this situation even more likely, by removing an opportunity for you to notice the break before prod.

The reasons for the BC break are still valid and all of this is security-related. But the core security issue is already fixed. The remaining issue still exists (an heisenbug related to some people having both Forwarded and X-Forwarded-* set for some reason), but deprecating might still be enough.

WDYT? (I'm sure everyone is going to be happy with the BC break reversal, but I'm asking for feedback from people who actually could take the time to *understand* and *balance* the rationales here, thanks :) )

Commits
-------

2132333059 [HttpFoundation][FrameworkBundle] Revert "trusted proxies" BC break
2017-06-05 10:06:12 -07:00
Maxime Steinhausser
21ef065594 [HttpKernel][Debug] Fix missing trace on deprecations collected during bootstrapping & silenced errors 2017-06-05 18:30:56 +02:00
Fabien Potencier
58f03a734f bug #23065 [Cache] Fallback to positional when keyed results are broken (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Fallback to positional when keyed results are broken

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

Works around https://github.com/krakjoe/apcu/issues/247 ~~and https://github.com/facebook/hhvm/issues/7867~~

Commits
-------

28aaa8eb05 [Cache] Fallback to positional when keyed results are broken
2017-06-05 09:27:18 -07:00
Fabien Potencier
1272d2ac8a bug #22981 [DependencyInjection] Fix named args support in ChildDefinition (dunglas)
This PR was squashed before being merged into the 3.3 branch (closes #22981).

Discussion
----------

[DependencyInjection] Fix named args support in ChildDefinition

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Following @Tobion's review of #21383.

Commits
-------

1ab3e413d4 [DependencyInjection] Fix named args support in ChildDefinition
2017-06-05 09:24:57 -07:00
Kévin Dunglas
1ab3e413d4 [DependencyInjection] Fix named args support in ChildDefinition 2017-06-05 09:24:55 -07:00
Nicolas Grekas
28aaa8eb05 [Cache] Fallback to positional when keyed results are broken 2017-06-05 16:53:36 +02:00
Nicolas Grekas
2132333059 [HttpFoundation][FrameworkBundle] Revert "trusted proxies" BC break 2017-06-05 15:06:51 +02:00
Martin Kirilov
405f64bb01 [Cache] MemcachedAdapter not working with TagAwareAdapter
It seems that when MemcachedAdapter is used with TagAwareAdapter, it fails to fetch items, even though I thoroughly tested fetching items with the exact same keys under the same namespace.

Turns out the issue lies in `const TAGS_PREFIX = "\0tags\0";` for unknown to me reasons. Hardcoding that to '__tags__' in my project did the trick and I've been using it for a couple of days now and it seems fine.

The reason I had to completely copy/paste this file in my local project is self:: instead of static:: usage. I am not sure whether that is a mistake or is done on purpose, but in order to have this work for me I need to be able to override that constant. Going with static:: seems like a good solution to me, then I can set whatever prefix I need for the tags.
2017-06-05 12:44:43 +02:00
Maxime Steinhausser
5b819ebfee Remove closure-proxy leftovers 2017-06-04 20:15:29 +02:00
Christian Flothmann
a4caa16659 fix used class name in deprecation message 2017-06-04 10:04:58 +02:00
Adam Szaraniec
37afeeae7a Support for parsing PHP constants in yaml loader 2017-06-04 00:41:12 +04:00
Fabien Potencier
5859703be4 bug #23050 [Form][Profiler] Fixes form collector triggering deprecations (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[Form][Profiler] Fixes form collector triggering deprecations

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see comment below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Since 3.3, if you inspect your logs when accessing the form profiler panel, you'll see some of these:

```sh
php.INFO: User Deprecated: The Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension::dumpValue() method is deprecated since version 3.2 and will be removed in 4.0.
[...] at /src/Symfony/Bundle/WebProfilerBundle/Twig/WebProfilerExtension.php:119
```

The [WebProfilerExtension](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/WebProfilerBundle/Twig/WebProfilerExtension.php#L73) is still using a `ValueExporter` instance for BC reasons when the $value ins't an instance of `Data` and this BC layer will be removed in 4.0 (so it'll throw an exception/error when trying to use it with something else than a `Data` instance).

The issue is since #21638, collectors (including forms one) have been drastically simplified to leverage the "seamless usage of Data clones", which is great!... But there is a slightly different implementation between `Data::seek()` and [`Data::__get()`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/VarDumper/Cloner/Data.php#L123-L130). There are probably good reasons for this, but it prevents from using classic Twig property access when the underlying data may be a scalar (`null`, `false`, ...).

I already spot that while working on the [Validator panel](https://github.com/symfony/symfony/pull/22554/files#diff-deac3c5ce4aa87243093dcd6a3f77a56R84). Perhaps there is a better solution, though.

Anyway, current `master` is currently broken, as it still tries to use the `ValueExporter`, which is already removed. And removing the BC layer in `WebProfilerExtension` isn't enough for now. It needs this fix.

BTW it also fixes rendering of the concerned inlined-dumps:

|Before|After|
|--|--|
|<img width="818" alt="screenshot 2017-06-03 a 13 35 25" src="https://cloud.githubusercontent.com/assets/2211145/26753222/01a692e6-4862-11e7-90d5-9cc9e4832648.PNG">|<img width="817" alt="screenshot 2017-06-03 a 13 35 47" src="https://cloud.githubusercontent.com/assets/2211145/26753224/090d5d6c-4862-11e7-87c1-73d5346f602c.PNG">|

Commits
-------

9de898d69f [Form][Profiler] Fixes form collector triggering deprecations
2017-06-03 09:03:25 -07:00
Fabien Potencier
6b9ff814c8 bug #22971 [Profiler] Fix code excerpt wrapping (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[Profiler] Fix code excerpt wrapping

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see comment below -->
| Bug fix?      | yesish
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

|Before|After|
|--|--|
|<img width="1346" alt="screenshot 2017-05-30 a 19 09 03" src="https://cloud.githubusercontent.com/assets/2211145/26595449/b8c4302c-456b-11e7-83c4-3471f915437b.PNG">|<img width="1075" alt="screenshot 2017-05-30 a 19 09 35" src="https://cloud.githubusercontent.com/assets/2211145/26595450/b8c61e64-456b-11e7-8b33-bdbe2e90b160.PNG">|

However, I think my own preference for code excerpts would be to never wrap, at the risk of scrolling horizontally. 1024px is enough to read most of the code excerpt without scrolling, and it feels less messy (to me) when a line is too long. WDYT?

Commits
-------

6c87863a0e [Profiler] Never wrap in code excerpts
2017-06-03 08:56:03 -07:00
Fabien Potencier
7183be3739 bug #23049 [FrameworkBundle] mitigate BC break with empty trusted_proxies (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle] mitigate BC break with empty trusted_proxies

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | kind of
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22238#issuecomment-305932238
| License       | MIT
| Doc PR        |

Commits
-------

ff055ef7f3 mitigate BC break with empty trusted_proxies
2017-06-03 08:54:50 -07:00
Fabien Potencier
621b7698fb bug #22936 [Form] Mix attr option between guessed options and user options (yceruto)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Mix attr option between guessed options and user options

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

Commits
-------

84f5de902d mix attr options between type-guess options and user options
2017-06-03 08:53:19 -07:00
Fabien Potencier
12f5636eae bug #22976 [DependencyInjection] Use more clear message when unused environment variables detected (voronkovich)
This PR was squashed before being merged into the 3.2 branch (closes #22976).

Discussion
----------

[DependencyInjection] Use more clear message when unused environment variables detected

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

Old error message:
```
Incompatible use of dynamic environment variables "DATABASE_URL", "MAILER_URL" found in parameters.
```

New error message:
```
Environment variables "DATABASE_URL", "MAILER_URL" are never used. Please, check your container's configuration.
```

Commits
-------

6dbdb1b750 [DependencyInjection] Use more clear message when unused environment variables detected
2017-06-03 08:50:21 -07:00
Oleg Voronkovich
6dbdb1b750 [DependencyInjection] Use more clear message when unused environment variables detected 2017-06-03 08:50:11 -07:00
Lars Strojny
eda1888f71 Consistent error handling in remember me services 2017-06-03 14:24:04 +02:00
Maxime Steinhausser
9de898d69f [Form][Profiler] Fixes form collector triggering deprecations 2017-06-03 13:15:34 +02:00
Christian Flothmann
ff055ef7f3 mitigate BC break with empty trusted_proxies 2017-06-03 13:02:13 +02:00
Nicolas Grekas
9d24e80b00 feature #23035 [3.4] Deprecate passing a concrete service in optional cache warmers (romainneutron)
This PR was merged into the 3.4 branch.

Discussion
----------

[3.4] Deprecate passing a concrete service in optional cache warmers

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | yes <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT

Commits
-------

b9c91cd Deprecate passing a concrete service in optional cache warmers
2017-06-03 10:55:18 +02:00
Nicolas Grekas
4fbc2a6d08 feature #23036 [3.4] Implement ServiceSubscriberInterface in optional cache warmers (romainneutron)
This PR was merged into the 3.4 branch.

Discussion
----------

[3.4] Implement ServiceSubscriberInterface in optional cache warmers

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT

Commits
-------

4ba59c9 Implement ServiceSubscriberInterface in optional cache warmers
2017-06-03 10:52:59 +02:00
Nicolas Grekas
8d58b50ffd Merge branch '3.2' into 3.3
* 3.2:
  [Form][FrameworkBundle] Remove non-existing arg for data_collector.form
  [Cache] fix Redis scheme detection
2017-06-03 10:42:48 +02:00
Nicolas Grekas
7078cdfb5c bug #23045 [Cache] fix Redis scheme detection (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[Cache] fix Redis scheme detection

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

Commits
-------

61685c7 [Cache] fix Redis scheme detection
2017-06-03 10:40:33 +02:00
Maxime Steinhausser
6c87863a0e [Profiler] Never wrap in code excerpts 2017-06-03 10:37:07 +02:00
Nicolas Grekas
3e92637635 minor #23048 [Form][FrameworkBundle] Remove non-existing arg for data_collector.form (ogizanagi)
This PR was merged into the 3.2 branch.

Discussion
----------

[Form][FrameworkBundle] Remove non-existing arg for data_collector.form

| Q             | A
| ------------- | ---
| Branch?       | 3.2 <!-- see comment below -->
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

479895f [Form][FrameworkBundle] Remove non-existing arg for data_collector.form
2017-06-03 10:32:43 +02:00
Maxime Steinhausser
479895f667 [Form][FrameworkBundle] Remove non-existing arg for data_collector.form 2017-06-03 10:06:02 +02:00
Christian Flothmann
0068968dcc explain that a role can be an instance of Role
Only mentioning the RoleInterface seems to be confusing as it is
deprecated since Symfony 3.3.
2017-06-03 10:00:53 +02:00
Christian Flothmann
61685c7106 [Cache] fix Redis scheme detection 2017-06-03 09:31:39 +02:00
Nicolas Grekas
36a8160690 Merge branch '3.3' into 3.4
* 3.3:
  [Yaml] Clarify "incompatible key casting" deprecation message
  minor #23043 add \ to PHP_VERSION_ID fixes #22650
  [PhpUnitBridge] Fix detection of PHPUnit 5
  Adding a new event subscriber that "parses" the _controller attribute in the FW
2017-06-03 00:30:16 +02:00
Fabien Potencier
d0aa4d93dd minor #23031 [Yaml] Clarify "incompatible key casting" deprecation message (rvanlaak)
This PR was squashed before being merged into the 3.3 branch (closes #23031).

Discussion
----------

[Yaml] Clarify "incompatible key casting" deprecation message

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

In the process of upgrading to Symfony 3.3 our Yaml linter tests started throwing errors. The exception was a bit unclear to us, so hope this message will help others with fixing their deprecations as well.

Commits
-------

67895f4dd3 [Yaml] Clarify "incompatible key casting" deprecation message
2017-06-02 15:05:06 -07:00
Richard van Laak
67895f4dd3 [Yaml] Clarify "incompatible key casting" deprecation message 2017-06-02 15:05:04 -07:00
Fabien Potencier
f0519486f2 bug #23013 Parse the _controller format in sub-requests (weaverryan)
This PR was merged into the 3.3 branch.

Discussion
----------

Parse the _controller format in sub-requests

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | possibly (edge case)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #22966
| License       | MIT
| Doc PR        | n/a

As mentioned on the issue (https://github.com/symfony/symfony/issues/22966#issuecomment-305289227), the new "controller service args" functionality relies on the `_controller` attribute to be in either the service format `App\Controller\Foo:bar` or at least the final parsed format `App\Controller\Foo::bar`. But when you make a sub-request with the `App:Foo:bar` format, the `ControllerResolver` correctly parses this, but the `_controller` request attribute will always contain the original `App:Foo:bar` format. That causes the `ServiceValueResolver` to fail.

The only way I can think to fix this - reliably - is to parse the `_controller` attribute in a listener. And this, works great! Notes:

A) There is a small chance for a BC break: if you were relying on the `_controller` old format in a `kernel.request` format in the framework, in a listener between the priority of 25 and 31 for sub-requests (because normal requests have `_controller` normalized during routing)... then you will see a behavior change.

B) We could load the `ControllerNameParser` lazily via a service locator.

C) We could deprecate calling the parser in the FW's `ControllerResolver`. Along with (B), I think it would (in 4.0) mean that the `ControllerNameParser` is not instantiated at runtime (except for sub-requests).

If someone can think of a different/better solution, please let me know!

Cheers!

Commits
-------

9578fd3eb6 Adding a new event subscriber that "parses" the _controller attribute in the FW
2017-06-02 14:53:18 -07:00
Fabien Potencier
c88a00611a bug #23015 [PhpUnitBridge] Fix detection of PHPUnit 5 (enumag)
This PR was merged into the 3.3 branch.

Discussion
----------

[PhpUnitBridge] Fix detection of PHPUnit 5

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

Codeception 2.3 supports both PHPUnit 5 and PHPUnit 6 by defining [aliases](https://github.com/Codeception/Codeception/blob/2.3/shim.php). This confuses symfony/phpunit-bridge and it tries to load  BC code for PHPUnit 5 even though I'm using PHPUnit 6.

Commits
-------

dfb5549f63 [PhpUnitBridge] Fix detection of PHPUnit 5
2017-06-02 14:49:52 -07:00
Fabien Potencier
3594bb49d6 minor #23043 minor #23043 add \ to PHP_VERSION_ID fixes #22650 (vincentaubert)
This PR was squashed before being merged into the 3.3 branch (closes #23043).

Discussion
----------

minor #23043 add \ to PHP_VERSION_ID fixes #22650

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

this PR is the last one fixing the \ before PHP_VERSION_ID closes definitively #22650

Commits
-------

d3e6a2d6f6 minor #23043 add \ to PHP_VERSION_ID fixes #22650
2017-06-02 13:45:37 -07:00
Vincent AUBERT
d3e6a2d6f6 minor #23043 add \ to PHP_VERSION_ID fixes #22650 2017-06-02 13:45:37 -07:00
Nicolas Grekas
ff2d6a170c Merge branch '3.3' into 3.4
* 3.3:
  [Console] Add missing dev-dep
2017-06-02 21:25:52 +02:00
Nicolas Grekas
2a293692f2 [Console] Add missing dev-dep 2017-06-02 21:24:58 +02:00
Fabien Potencier
f1d3200eca Merge branch '3.3' into 3.4
* 3.3:
  [Config] Always protect ClassExistenceResource against bad parents
2017-06-02 11:32:02 -07:00
Nicolas Grekas
86bf26c466 [Config] Always protect ClassExistenceResource against bad parents 2017-06-02 20:07:20 +02:00
Romain Neutron
4ba59c9cdd
Implement ServiceSubscriberInterface in optional cache warmers 2017-06-02 17:01:56 +02:00
Nicolas Grekas
c77d8067dd Merge branch '3.3' into 3.4
* 3.3:
  typo
  CS: adjust chaining indentation
2017-06-02 16:38:27 +02:00
Nicolas Grekas
349e5fe9b8 Merge branch '3.2' into 3.3
* 3.2:
  typo
  CS: adjust chaining indentation
2017-06-02 16:38:05 +02:00
Nicolas Grekas
89c3f5cccb Merge branch '2.8' into 3.2
* 2.8:
  typo
  CS: adjust chaining indentation
2017-06-02 16:37:52 +02:00
Nicolas Grekas
0057459882 Merge branch '2.7' into 2.8
* 2.7:
  CS: adjust chaining indentation
2017-06-02 16:36:56 +02:00
Nicolas Grekas
1542925d8d minor #22986 CS: adjust chaining indentation (keradus)
This PR was merged into the 2.7 branch.

Discussion
----------

CS: adjust chaining indentation

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

Commits
-------

8c3c0fe CS: adjust chaining indentation
2017-06-02 16:34:38 +02:00
Romain Neutron
b9c91cd88c
Deprecate passing a concrete service in optional cache warmers 2017-06-02 16:25:57 +02:00
Nicolas Grekas
434f0b09df Merge branch '3.3' into 3.4
* 3.3:
  Fix composer deps
2017-06-02 15:01:36 +02:00
Nicolas Grekas
d89670461d Fix composer deps 2017-06-02 14:59:20 +02:00
Nicolas Grekas
1945bcf6c7 typo 2017-06-02 12:45:29 +02:00
Nicolas Grekas
068f8d1341 Merge branch '3.3' into 3.4
* 3.3:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [Di] Remove closure-proxy arguments
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:54:06 +02:00
Nicolas Grekas
4ad0dbf584 Merge branch '3.2' into 3.3
* 3.2:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:51:43 +02:00
Nicolas Grekas
fe4d885c4c Merge branch '2.8' into 3.2
* 2.8:
  Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
  add some \ on PHP_VERSION_ID for 2.8
  [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:43:35 +02:00
Nicolas Grekas
7632bed9ee bug #22988 [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string (dunglas)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

According to the Doctrine's docs, the `bigint` type is converted to a `string`: http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/types.html#bigint

/cc @clementtalleu

Commits
-------

47d5e6b [PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string
2017-06-02 11:24:55 +02:00
Nicolas Grekas
ec6b88257b minor #23028 add some \ on PHP_VERSION_ID for 2.8 (vincentaubert)
This PR was merged into the 2.8 branch.

Discussion
----------

add some \ on PHP_VERSION_ID for 2.8

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

Commits
-------

7f4824c add some \ on PHP_VERSION_ID for 2.8
2017-06-02 11:17:34 +02:00
Nicolas Grekas
7a57644a8f bug #23014 [2.8]Fix optional cache warmers are always instantiated whereas they should be lazy-loaded (romainneutron)
This PR was merged into the 2.8 branch.

Discussion
----------

[2.8]Fix optional cache warmers are always instantiated whereas they should be lazy-loaded

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | N/A

Since version 2.8, if a Twig extension throws an exception in constructor, then the Kernel can not boot anymore because a service used by the Twig cache warmer instantiates Twig. As Twig cache warmer is optional, Twig should not be loaded at Kernel boot, and this patch fixes the issue

Commits
-------

3371db9 Fix optional cache warmers are always instantiated whereas they should be lazy-loaded
2017-06-02 11:15:27 +02:00
Nicolas Grekas
018b1a3d2d feature #23022 [Di] Remove closure-proxy arguments (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Di] Remove closure-proxy arguments

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

With #23008, we don't need this in core anymore.
Let's drop it now.
Technically that's a BC break, but for a feature that is very new, and still quite hidden.
Doing this now would save us from maintaining this code, and help reduce the overall complexity.

Basically reverts #20953

Commits
-------

57daadb [Di] Remove closure-proxy arguments
2017-06-02 11:10:29 +02:00
Nicolas Grekas
d7ec7e80c6 Merge branch '3.3' into 3.4
* 3.3:
  fix merge
  typo
  [EventDispatcher] Fix ContainerAwareEventDispatcher::hasListeners(null)
  Use namespaced Twig
2017-06-02 11:04:42 +02:00
Nicolas Grekas
8d609d9bba fix merge 2017-06-02 11:00:03 +02:00
Nicolas Grekas
e5a698e215 Merge branch '3.2' into 3.3
* 3.2:
  typo
  [EventDispatcher] Fix ContainerAwareEventDispatcher::hasListeners(null)
  Use namespaced Twig
2017-06-02 10:55:39 +02:00
Nicolas Grekas
59751226e2 Merge branch '2.8' into 3.2
* 2.8:
  typo
2017-06-02 10:29:21 +02:00
Nicolas Grekas
99e0836fd4 typo 2017-06-02 10:28:06 +02:00
Nicolas Grekas
a6b525e136 Merge branch '2.8' into 3.2
* 2.8:
  [EventDispatcher] Fix ContainerAwareEventDispatcher::hasListeners(null)
  Use namespaced Twig
2017-06-02 10:26:05 +02:00
Romain Neutron
3371db9f8c
Fix optional cache warmers are always instantiated whereas they should be lazy-loaded 2017-06-02 09:53:17 +02:00
Nicolas Grekas
434c8334ed Merge branch '2.7' into 2.8
* 2.7:
  [EventDispatcher] Fix ContainerAwareEventDispatcher::hasListeners(null)
  Use namespaced Twig
2017-06-02 09:47:27 +02:00
Nicolas Grekas
36f00509bc minor #22962 Use namespaced Twig (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

Use namespaced Twig

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | needs https://github.com/twigphp/Twig/pull/2490 and https://github.com/twigphp/Twig/pull/2491
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

Commits
-------

c3d1262 Use namespaced Twig
2017-06-02 09:20:11 +02:00
Vincent AUBERT
7f4824c987 add some \ on PHP_VERSION_ID for 2.8 2017-06-02 07:32:06 +02:00
Nicolas Grekas
5f2b26e19d [FrameworkBundle] Fix FC with 4.0 having autowiring types removed 2017-06-02 00:03:58 +02:00
Nicolas Grekas
e7c4149e78 [EventDispatcher] Fix ContainerAwareEventDispatcher::hasListeners(null) 2017-06-01 23:49:12 +02:00
Nicolas Grekas
c3d1262208 Use namespaced Twig 2017-06-01 23:44:38 +02:00
Fabien Potencier
69f1578d8c Merge branch '3.3' into 3.4
* 3.3: (31 commits)
  Using FQ name for PHP_VERSION_ID
  [EventDispatcher] Handle laziness internally instead of relying on ClosureProxyArgument
  Fix CacheCollectorPass priority
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  [Routing] Allow GET requests to be redirected. Fixes #23004
  [DI] Deal with inlined non-shared services
  [Cache] Ignore missing annotations.php
  [DI] Autowiring exception thrown when inlined service is removed
  Improving deprecation message when hitting the "deprecated type" lookup, but an alias is available
  Harden the debugging of Twig filters and functions
  Fixing a bug where an autowiring exception was thrown even when that service was removed
  Remove extra arg in call to TraceableAdapter::start()
  Support unknown compiler log format
  [Config] Allow empty globs
  Fix decorating TagAware adapters in dev
  [Profiler] Fix clicking on links inside toggle
  [Profiler] Fix text selection on exception pages
  bumped Symfony version to 3.3.1
  updated VERSION for 3.3.0
  updated CHANGELOG for 3.3.0
  ...
2017-06-01 14:02:15 -07:00
Fabien Potencier
60b89bb67f Merge branch '3.2' into 3.3
* 3.2:
  Using FQ name for PHP_VERSION_ID
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  Harden the debugging of Twig filters and functions
  bumped Symfony version to 3.2.10
  updated VERSION for 3.2.9
  updated CHANGELOG for 3.2.9
  bumped Symfony version to 2.8.22
  updated VERSION for 2.8.21
  updated CHANGELOG for 2.8.21
  bumped Symfony version to 2.7.29
  updated VERSION for 2.7.28
  update CONTRIBUTORS for 2.7.28
  updated CHANGELOG for 2.7.28
2017-06-01 14:01:25 -07:00
Fabien Potencier
2c57bf20ad Merge branch '2.8' into 3.2
* 2.8:
  Using FQ name for PHP_VERSION_ID
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  Harden the debugging of Twig filters and functions
  bumped Symfony version to 2.8.22
  updated VERSION for 2.8.21
  updated CHANGELOG for 2.8.21
  bumped Symfony version to 2.7.29
  updated VERSION for 2.7.28
  update CONTRIBUTORS for 2.7.28
  updated CHANGELOG for 2.7.28
2017-06-01 14:00:24 -07:00
Nicolas Grekas
57daadbf67 [Di] Remove closure-proxy arguments 2017-06-01 22:59:07 +02:00
Fabien Potencier
bd62b148db Merge branch '2.7' into 2.8
* 2.7:
  Using FQ name for PHP_VERSION_ID
  [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
  Harden the debugging of Twig filters and functions
  bumped Symfony version to 2.7.29
  updated VERSION for 2.7.28
  update CONTRIBUTORS for 2.7.28
  updated CHANGELOG for 2.7.28
2017-06-01 13:52:29 -07:00
Fabien Potencier
3fc1189910 bug #23008 [EventDispatcher] Handle laziness internally instead of relying on ClosureProxyArgument (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[EventDispatcher] Handle laziness internally instead of relying on ClosureProxyArgument

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

If we decide to go this way, we might drop ClosureProxyArgument entirely because we won't need it internally. I'll propose it in another PR for discussion if this one is accepted.

This PR allows "high-order" listeners, as `array(Closure, method)`. Closure is called to get the actual instance when needed only.

How does it look to you? (I'll add tests once confirmed)

Commits
-------

c17a009d66 [EventDispatcher] Handle laziness internally instead of relying on ClosureProxyArgument
2017-06-01 13:46:45 -07:00
Fabien Potencier
f91a020b84 Using FQ name for PHP_VERSION_ID 2017-06-01 13:44:56 -07:00
Nicolas Grekas
c17a009d66 [EventDispatcher] Handle laziness internally instead of relying on ClosureProxyArgument 2017-06-01 20:27:22 +02:00
Fabien Potencier
156a50d124 bug #23018 [FrameworkBundle] Fix CacheCollectorPass priority (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle] Fix CacheCollectorPass priority

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

It was run before optimization, so child definitions were not resolved yet.

Commits
-------

28b253ab40 Fix CacheCollectorPass priority
2017-06-01 10:43:34 -07:00
Fabien Potencier
f32ec458be bug #23009 [Routing] Allow GET requests to be redirected. Fixes #23004 (frankdejonge)
This PR was merged into the 3.3 branch.

Discussion
----------

[Routing] Allow GET requests to be redirected. Fixes #23004

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

GET requests didn't get the same redirect treatment as HEAD requests. I've also added tests cases for all the different trailing/non-trailing slash situations.

Commits
-------

71d4e366a9 [Routing] Allow GET requests to be redirected. Fixes #23004
2017-06-01 10:33:26 -07:00
Robin Chalas
28b253ab40 Fix CacheCollectorPass priority 2017-06-01 19:06:24 +02:00
Jáchym Toušek
dfb5549f63
[PhpUnitBridge] Fix detection of PHPUnit 5 2017-06-01 16:45:22 +02:00
Ryan Weaver
9578fd3eb6 Adding a new event subscriber that "parses" the _controller attribute in the FW 2017-06-01 10:00:07 -04:00
Nicolas Grekas
36bd06a152 bug #22996 [2.7][Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323 (romainneutron)
This PR was merged into the 2.7 branch.

Discussion
----------

[2.7][Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

The issue is documented here.
The current symfony code works when `intl.use_exception` is off. however, it's on on PHP 7+ and the issue is reproducible. See https://3v4l.org/PllP1 and https://3v4l.org/3XnKI

Commits
-------

f42c73f [Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323
2017-06-01 14:45:44 +02:00
Romain Neutron
f42c73f213
[Form] Fix \IntlDateFormatter timezone parameter usage to bypass PHP bug #66323 2017-06-01 11:48:44 +02:00
Frank de Jonge
71d4e366a9 [Routing] Allow GET requests to be redirected. Fixes #23004 2017-06-01 11:46:06 +02:00
Nicolas Grekas
996698d996 [DI] Deal with inlined non-shared services 2017-06-01 08:31:18 +02:00
Fabien Potencier
7a9875c3cd bug #22965 [Cache] Ignore missing annotations.php (ro0NL)
This PR was squashed before being merged into the 3.3 branch (closes #22965).

Discussion
----------

[Cache] Ignore missing annotations.php

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

Avoids the following notices if cache is not warmed up (i.e. `cache:clear --no-warmup` > hit the browser).

```
Warning: include(<base-path>/app/cache/<env>/annotations.php): failed to open stream: No such file or directory

Warning: include(): Failed opening '<base-path>/app/cache/<env>/annotations.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php')
```

Commits
-------

e8f70c75b9 [Cache] Ignore missing annotations.php
2017-05-31 11:18:45 -07:00
Roland Franssen
e8f70c75b9 [Cache] Ignore missing annotations.php 2017-05-31 11:18:44 -07:00
Fabien Potencier
9cd68ee77e bug #22993 [DI] Autowiring exception thrown when inlined service is removed (weaverryan)
This PR was squashed before being merged into the 3.3 branch (closes #22993).

Discussion
----------

[DI] Autowiring exception thrown when inlined service is removed

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | yes
| Deprecations? | yes (on a new & internal method)
| Tests pass?   | yes
| Fixed tickets | #22977
| License       | MIT
| Doc PR        | n/a

We suppress autowiring exceptions if a service is ultimately removed from the container. This fixes a bug where we incorrectly report that a service was NOT removed, when really, it WAS removed. This happens when `ServiceA` is inlined in `ServiceB`... but then `ServiceB` is removed from the container for being unused.

Commits
-------

793b9a001f [DI] Autowiring exception thrown when inlined service is removed
2017-05-31 11:16:22 -07:00
Ryan Weaver
793b9a001f [DI] Autowiring exception thrown when inlined service is removed 2017-05-31 11:16:20 -07:00
Fabien Potencier
5e40e19081 bug #22999 Better DI type deprecation message (weaverryan)
This PR was merged into the 3.3 branch.

Discussion
----------

Better DI type deprecation message

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

This is the most common autowiring deprecation:

```php
public function __construct(UserPasswordEncoder $encoder)
```

You *should* type-hint `UserPasswordEncoderInterface`

Current deprecation message:
> Autowiring services based on the types they implement is deprecated since Symfony 3.3 and won’t be supported in version 4.0. You should rename (or alias) the "security.user_password_encoder.generic" service to "Symfony\Component\Security\Core\Encoder\UserPasswordEncoder" instead.

Updated message:
> Autowiring services based on the types they implement is deprecated since Symfony 3.3 and won't be supported in version 4.0. Try changing the type-hint for argument "$encoder" of method "AppBundle\Service\TestServiceSubscriber::__construct()" to "Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface" instead.

This only happens if we detect that there is a service/alias in the container (e.g. `...\UserPasswordEncoderInterface`) for the type-hint (`...\UserPasswordEncoder)`. Otherwise, if there is no correct type-hint in the container, we give the old recommendation (about aliasing).

The only complex case (of giving good directions on *where* to fix things) is with a class that implements `ServiceSubscriberInterface` (where the type-hint is in the `getSusbcribedServices()` method). In that case, the notice is:

> Autowiring services based on the types they implement is deprecated since Symfony 3.3 and won't be supported in version 4.0. Try changing the type-hint for "Symfony\Component\Security\Core\Encoder\UserPasswordEncoder" in "AppBundle\Service\TestServiceSubscriber" to "Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface" instead.

Commits
-------

a990d5c558 Improving deprecation message when hitting the "deprecated type" lookup, but an alias is available
2017-05-31 11:14:35 -07:00
Fabien Potencier
b13671957b bug #22985 [Config] Allow empty globs (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Config] Allow empty globs

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

This considers globs as valid even if they return no matches when they have a prefix (and when that prefix exists, according to `$ignoreErrors`).
This means there is an edge-case:
`*.abc` with at least one match is OK, but when it has no match, it falls back to regular import, then usually will fil.
But rewriting this to `./*.abc` resolves the ambiguity and turns this into a glob that won't fail if no matches are found.

This should provide the expected behavior in most cases (but ambiguous described one of course).

Commits
-------

c5b9c1a8c8 [Config] Allow empty globs
2017-05-31 11:07:24 -07:00
Fabien Potencier
e87994502c bug #22961 [HttpKernel] Support unknown format in LoggerDataCollector (iltar)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpKernel] Support unknown format in LoggerDataCollector

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

The new expected format for the compiler log is `CompilerPassClass: Message`. However, this is not enforced by the old logging method as seen in schmittjoh/JMSDiExtraBundle#276

This PR adds the ability to read those lines without crashing with `Uncaught Notice: Undefined offset: 1`.

Please note that I have not tested this in an application so testers are welcome to confirm this fix!

Commits
-------

a8dfbb1180 Support unknown compiler log format
2017-05-31 11:00:08 -07:00
Ryan Weaver
a990d5c558 Improving deprecation message when hitting the "deprecated type" lookup, but an alias is available 2017-05-31 13:54:02 -04:00
Fabien Potencier
44f34825a6 bug #22991 [DI] Don't throw Autowire exception for removed service with private __construct (weaverryan)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Don't throw Autowire exception for removed service with private __construct

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none (was talking to a user)
| License       | MIT
| Doc PR        | n/a

Suppose you have:

```php
class A
{
    private function construct() {}
}
```

This service will fail to be autowired. But, like other autowiring failures, if this service will ultimately be removed from the container, this exception should be ignored. This fixes that. Unless someone is using the `AutowirePass` directly inside a `try/catch`, there is no BC break (the behavior change is that the exception is now stored, instead of being thrown).

This also clarifies (in the test & phpdoc) that `AutowirePass` always throws `AutowiringFailedException`s.

Thanks!

Commits
-------

2d3e44e11e Fixing a bug where an autowiring exception was thrown even when that service was removed
2017-05-31 10:51:11 -07:00
Fabien Potencier
9724e8b22f bug #22968 [Profiler] Fix text selection & click on file links on exception pages (ogizanagi)
This PR was squashed before being merged into the 3.3 branch (closes #22968).

Discussion
----------

[Profiler] Fix text selection & click on file links on exception pages

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see comment below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #22957, #22978 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

I don't really know the purpose of this css rule here, but I admit it's quite frustrating not to be able to select something here.

This PR also prevents the following annoying behavior (selecting text collapses/uncollapses traces):
![mai-30-2017 18-26-29](https://cloud.githubusercontent.com/assets/2211145/26593977/3afbc510-4566-11e7-9114-8934ba6126a2.gif)

About the trick used, I think the browser support is safe enough: https://caniuse.com/#search=window.getSelection

EDIT: new commit added which allows to fix #22978

Commits
-------

8618399e42 [Profiler] Fix clicking on links inside toggle
ff6151b15f [Profiler] Fix text selection on exception pages
2017-05-31 10:44:02 -07:00
Christophe Coevoet
63a8aff2c8 Harden the debugging of Twig filters and functions
Removing the environment and context arguments is now based on Twig metadata
rather than on some wild guessing which might go wrong.
2017-05-31 17:20:46 +02:00
Ryan Weaver
2d3e44e11e Fixing a bug where an autowiring exception was thrown even when that service was removed
The specific report was for a service with a private constructor. This also clarifies
that the AutowirePass throws AutowiringFailedException for all situations. And a bug
was fixed in the constructor of AutowiringFailedException
2017-05-31 09:52:17 -04:00
Robin Chalas
a3793198fa Remove extra arg in call to TraceableAdapter::start() 2017-05-31 13:48:12 +02:00
Kévin Dunglas
47d5e6b82c
[PropertyInfo][DoctrineBridge] The bigint Doctrine's type must be converted to string 2017-05-31 12:58:03 +02:00
Iltar van der Berg
a8dfbb1180 Support unknown compiler log format 2017-05-31 12:12:10 +02:00
Dariusz
8c3c0fe65e CS: adjust chaining indentation 2017-05-31 11:30:46 +02:00
Nicolas Grekas
c5b9c1a8c8 [Config] Allow empty globs 2017-05-31 10:49:17 +02:00
Robin Chalas
28e615a656 Fix decorating TagAware adapters in dev 2017-05-31 10:24:58 +02:00
Maxime Steinhausser
8618399e42 [Profiler] Fix clicking on links inside toggle 2017-05-31 01:27:40 +02:00
Maxime Steinhausser
ff6151b15f [Profiler] Fix text selection on exception pages 2017-05-30 18:34:49 +02:00
Michał Kurzeja
65297de3aa #22839 - changed debug toolbar dump section to relative and use full window width 2017-05-30 10:18:53 +02:00
Fabien Potencier
adc39a2f57 bumped Symfony version to 3.3.1 2017-05-29 14:23:02 -07:00
Fabien Potencier
e6eb52c5e0 updated VERSION for 3.3.0 2017-05-29 14:02:12 -07:00
Fabien Potencier
17deeaf42e bumped Symfony version to 3.2.10 2017-05-29 13:10:37 -07:00
Fabien Potencier
a948880ecb updated VERSION for 3.2.9 2017-05-29 12:32:04 -07:00
Fabien Potencier
af6b25b28c bumped Symfony version to 2.8.22 2017-05-29 12:30:05 -07:00
Fabien Potencier
ecf57807c8 updated VERSION for 2.8.21 2017-05-29 12:14:58 -07:00
Fabien Potencier
aa04f35092 bumped Symfony version to 2.7.29 2017-05-29 12:14:01 -07:00
Fabien Potencier
a13a17ad04 updated VERSION for 2.7.28 2017-05-29 12:04:18 -07:00
Fabien Potencier
1fba4d6020 Merge branch '3.2' into 3.3
* 3.2:
  [Form] fix guesed value param type in docblock
2017-05-29 11:50:47 -07:00
Fabien Potencier
538591c21f Merge branch '2.8' into 3.2
* 2.8:
  [Form] fix guesed value param type in docblock
2017-05-29 11:50:38 -07:00
Fabien Potencier
2c84ac23b4 Merge branch '2.7' into 2.8
* 2.7:
  [Form] fix guesed value param type in docblock
2017-05-29 11:50:29 -07:00
Fabien Potencier
c82fe60168 Merge branch '3.3' into 3.4
* 3.3:
  [Config] Fallback to regular import when glob fails
2017-05-29 11:41:56 -07:00
Nicolas Grekas
7b4066e8ab [Config] Fallback to regular import when glob fails 2017-05-29 11:41:32 -07:00
Yonel Ceruto
84f5de902d mix attr options between type-guess options and user options 2017-05-29 13:20:45 -04:00
Christian Flothmann
43636ba630 [Form] fix guesed value param type in docblock 2017-05-29 10:38:15 +02:00
Tom Panier
58e733b49e [PropertyInfo] Made ReflectionExtractor's prefix lists instance variables
This allows for easier, instance-specific overriding of said values.
2017-05-29 10:18:12 +02:00
Fabien Potencier
0cfb574291 Merge branch '3.3' into 3.4
* 3.3:
  [Console] ChoiceQuestion must have choices
  [Filesystem] improve error handling in lock()
  [FrameworkBundle][Console] Fix the override of a command registered by the kernel
2017-05-28 07:09:32 -07:00
Fabien Potencier
daac6dbb41 Merge branch '3.2' into 3.3
* 3.2:
  [Console] ChoiceQuestion must have choices
  [Filesystem] improve error handling in lock()
  [FrameworkBundle][Console] Fix the override of a command registered by the kernel
2017-05-28 07:08:56 -07:00
Fabien Potencier
46fc4c4ae6 Merge branch '2.8' into 3.2
* 2.8:
  [Console] ChoiceQuestion must have choices
  [Filesystem] improve error handling in lock()
  [FrameworkBundle][Console] Fix the override of a command registered by the kernel
2017-05-28 07:08:39 -07:00
Fabien Potencier
44cf367497 Merge branch '2.7' into 2.8
* 2.7:
  [Console] ChoiceQuestion must have choices
  [Filesystem] improve error handling in lock()
  [FrameworkBundle][Console] Fix the override of a command registered by the kernel
2017-05-28 07:07:33 -07:00
Fabien Potencier
20485d1f9b bug #22847 [Console] ChoiceQuestion must have choices (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #22847).

Discussion
----------

[Console] ChoiceQuestion must have choices

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

<!--
![image](https://cloud.githubusercontent.com/assets/1047696/26301309/1bfa52ca-3ee1-11e7-883b-f627f16e9d2f.png)
-->

Commits
-------

96e307fd5c [Console] ChoiceQuestion must have choices
2017-05-28 06:43:15 -07:00
Roland Franssen
96e307fd5c [Console] ChoiceQuestion must have choices 2017-05-28 06:43:13 -07:00
Fabien Potencier
979bd62ed8 bug #22900 [FrameworkBundle][Console] Fix the override of a command registered by the kernel (aaa2000)
This PR was merged into the 2.7 branch.

Discussion
----------

[FrameworkBundle][Console] Fix the override of a command registered by the kernel

| Q             | A
| ------------- | ---
| Branch?       |2.7
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #18558 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        |  <!--highly recommended for new features-->

<!--
- 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 3.4,
  legacy code removals go to the master branch.
- Please fill in this template according to the PR you're about to submit.
- Replace this comment by a description of what your PR is solving.
-->

Fix the override of a command registered by the kernel

Commits
-------

3e6643bd90 [FrameworkBundle][Console] Fix the override of a command registered by the kernel
2017-05-28 06:38:40 -07:00
Nicolas Grekas
457538c847 Merge branch '3.3' into 3.4
* 3.3:
  Revert "bug #22925 [PhpUnitBridge] Adjust PHPUnit class_alias check to also check for namespaced class (GawainLynch)"
2017-05-28 13:17:57 +02:00
Nicolas Grekas
934c0c0e9c Revert "bug #22925 [PhpUnitBridge] Adjust PHPUnit class_alias check to also check for namespaced class (GawainLynch)"
This reverts commit cfb090d1c5, reversing
changes made to 4e8f403a7c.
2017-05-28 13:10:04 +02:00
Nicolas Grekas
b07ec6b332 Merge branch '3.3' into 3.4
* 3.3:
  typo
  Fixed options stub values display in form profiler
  [Console] Fix tests
  Make the simple exception pages match the new style
  [Console] Fixed different behaviour of key and value user inputs in multiple choice question
  Adjust PHPUnit class_alias check to also check for namespaced class
  [Cache] Dont use pipelining with RedisCluster
  [Yaml] fix colon without space deprecation
  [Intl] Fix intl tests for PHP < 5.5.10
2017-05-28 12:56:43 +02:00
Nicolas Grekas
bb84872e6d Merge branch '3.2' into 3.3
* 3.2:
  typo
  [Console] Fix tests
  [Console] Fixed different behaviour of key and value user inputs in multiple choice question
  [Cache] Dont use pipelining with RedisCluster
  [Yaml] fix colon without space deprecation
  [Intl] Fix intl tests for PHP < 5.5.10
2017-05-28 12:56:20 +02:00
Nicolas Grekas
029f89a7ff typo 2017-05-28 12:47:46 +02:00
Nicolas Grekas
3ac8c5b2e0 bug #22910 [Filesystem] improve error handling in lock() (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Filesystem] improve error handling in lock()

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

Commits
-------

25381a2 [Filesystem] improve error handling in lock()
2017-05-28 11:34:04 +02:00
Nicolas Grekas
88cdd3cca3 bug #22924 [Cache] Dont use pipelining with RedisCluster (nicolas-grekas)
This PR was merged into the 3.2 branch.

Discussion
----------

[Cache] Dont use pipelining with RedisCluster

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

phpredis doesn't support pipelining with RedisCluster
see https://github.com/phpredis/phpredis/blob/develop/cluster.markdown#pipelining
and multiple operations (MSET/MGET) work but only "per-shard".

We have to fetch keys one by one for now at least.

Commits
-------

eb93ac9 [Cache] Dont use pipelining with RedisCluster
2017-05-28 11:24:43 +02:00
HeahDude
5e6b3a5886 Fixed options stub values display in form profiler 2017-05-28 02:21:30 +02:00
Maxime Steinhausser
01ca241744 [Console] Fix tests 2017-05-27 23:29:56 +02:00
Fabien Potencier
706ac18d38 Merge branch '2.8' into 3.2
* 2.8:
  [Console] Fixed different behaviour of key and value user inputs in multiple choice question
  [Intl] Fix intl tests for PHP < 5.5.10
2017-05-27 10:24:21 -07:00
Fabien Potencier
2663293522 Merge branch '2.7' into 2.8
* 2.7:
  [Console] Fixed different behaviour of key and value user inputs in multiple choice question
  [Intl] Fix intl tests for PHP < 5.5.10
2017-05-27 10:24:13 -07:00
Fabien Potencier
6f12757505 minor #22761 [Intl] Fix intl tests for PHP < 5.5.10 (ogizanagi)
This PR was merged into the 2.7 branch.

Discussion
----------

[Intl] Fix intl tests for PHP < 5.5.10

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

Should fix tests in upper branches (see https://github.com/symfony/symfony/pull/22760).

Commits
-------

fab0629206 [Intl] Fix intl tests for PHP < 5.5.10
2017-05-27 10:23:24 -07:00
Fabien Potencier
a80348b228 feature #22838 Make the simple exception pages match the new style (javiereguiluz)
This PR was squashed before being merged into the 3.3 branch (closes #22838).

Discussion
----------

Make the simple exception pages match the new style

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

If you create an application with Symfony Flex and don't install the TwigBundle explicitly, you see the exception pages like this:

![before](https://cloud.githubusercontent.com/assets/73419/26286531/3737f41c-3e68-11e7-8f1f-d9454bbc81f2.png)

This PR updates that page to match the style of the rest of exceptions:

![after](https://cloud.githubusercontent.com/assets/73419/26286534/488a2e4c-3e68-11e7-9d9e-8af8a478ff44.png)

For comparison, this is how the full exception page looks:

![full-exception](https://cloud.githubusercontent.com/assets/73419/26286535/56d69f26-3e68-11e7-8068-8334f045a63d.png)

---

Should I add the small black top header with the Symfony logo too?

Commits
-------

bab4b9c23c Make the simple exception pages match the new style
2017-05-27 09:02:28 -07:00
Javier Eguiluz
bab4b9c23c Make the simple exception pages match the new style 2017-05-27 09:02:27 -07:00
Fabien Potencier
1d1d997b5b bug #22718 [Console] Fixed different behaviour of key and value user inputs in multiple choice question (borNfreee)
This PR was squashed before being merged into the 2.7 branch (closes #22718).

Discussion
----------

[Console] Fixed different behaviour of key and value user inputs in multiple choice question

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

Fixed a bug when value from multiple choice list could not be selected by user's input
while it could be selected by typing its index in the list.

Commits
-------

2861bd7b01 [Console] Fixed different behaviour of key and value user inputs in multiple choice question
2017-05-27 07:10:28 -07:00
borNfreee
2861bd7b01 [Console] Fixed different behaviour of key and value user inputs in multiple choice question 2017-05-27 07:10:26 -07:00
Nicolas Grekas
e92232f97d Add missing var-dumper dep to framework-bundle 2017-05-27 12:38:52 +02:00
Gawain Lynch
7ba3afd859
Adjust PHPUnit class_alias check to also check for namespaced class 2017-05-27 12:34:25 +02:00
Nicolas Grekas
dd617b3204 Merge branch '3.3' into 3.4
* 3.3:
  fixed CS
  Only override getProjectDir if it exists in the kernel
  [FrameworkBundle][Validator] Move the PSR-11 factory to the component
2017-05-27 12:21:10 +02:00
Nicolas Grekas
eb93ac904c [Cache] Dont use pipelining with RedisCluster 2017-05-27 12:12:52 +02:00
Nicolas Grekas
e9f0e84c0e Merge branch '3.3' into 3.4
* 3.3:
  Fix kernel.project_dir extensibility
2017-05-27 12:02:34 +02:00
Fabien Potencier
4e8f403a7c fixed CS 2017-05-26 07:03:51 -07:00
Andreas Schempp
c7ed08e2c0 Only override getProjectDir if it exists in the kernel 2017-05-26 15:28:14 +02:00
Christophe Coevoet
cf60f6d744 feature #22905 [FrameworkBundle][Validator] Move the PSR-11 factory to the component (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle][Validator] Move the PSR-11 factory to the component

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see comment below -->
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | yes <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22887#issuecomment-303765795 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Instead of the 3 following deprecations:
 * The `ConstraintValidatorFactory::$validators` and `$container` properties
   have been deprecated and will be removed in 4.0.
 * Extending `ConstraintValidatorFactory` is deprecated and won't be supported in 4.0.
* Passing an array of validators or validator aliases as the second argument of
   `ConstraintValidatorFactory::__construct()` is deprecated since 3.3 and will
   be removed in 4.0. Use the service locator instead.

I'd suggest simply deprecating the FrameworkBundle's class in favor of using a new `ContainerConstraintValidatorFactory`. To me, there is no reason anyone using the validator component without the framework bundle cannot use this PSR-11 compliant implementation, nor I see a reason to make it final.

Commits
-------

68c1917af9 [FrameworkBundle][Validator] Move the PSR-11 factory to the component
2017-05-26 12:01:03 +02:00
Maxime Steinhausser
68c1917af9 [FrameworkBundle][Validator] Move the PSR-11 factory to the component 2017-05-26 10:48:50 +02:00
Christian Flothmann
25381a2809 [Filesystem] improve error handling in lock() 2017-05-26 09:33:33 +02:00
Fabien Potencier
26afd2c1bf bug #22728 [HttpKernel] Fix kernel.project_dir extensibility (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpKernel] Fix kernel.project_dir extensibility

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

Alternative to #22727 that makes use of the existing public api.

Commits
-------

3230fc7e70 Fix kernel.project_dir extensibility
2017-05-25 16:46:48 -07:00
Fabien Potencier
ec4689122c bug #22829 [Yaml] fix colon without space deprecation (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[Yaml] fix colon without space deprecation

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

A colon after a mapping key that is not followed by a space is valid if the mapping key is quoted.

Commits
-------

57f6941e25 [Yaml] fix colon without space deprecation
2017-05-25 16:42:36 -07:00
Fabien Potencier
683b236625 minor #22885 [3.4] Allow 4.* deps (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[3.4] Allow 4.* deps

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

This is implementing option 3 as described in #22756.
See #22769 for corresponding PR on 2.8: everything goes well and this allows catching a few more potential mistakes.

Commits
-------

c3e1646af8 [3.4] Allow 4.* deps
2017-05-25 16:27:00 -07:00
Fabien Potencier
3c9a591c06 feature #22903 [DI] Deprecate XML services without ID (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Deprecate XML services without ID

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

On slack someone had a issue with class named services;

> So, probably should have done this sooner, I stepped through with a debugger and it looks like \Symfony\Component\DependencyInjection\Loader\XmlFileLoader::processAnonymousServices assigns a sha256 to services that don't have any IDs
> When my manually wired service is registered, it has an ID that looks like 1_344b468f6069ffe8c32092409d99c59abc218f41071ce4c4230c198876129bc0, so it doesn't override the auto-loaded one
> I swear I read that IDs default to the class name now...

The fix was easy; doing `<service id="ClassName"/>` instead of `<service class="ClassName"/>`. However the thing is... i made the exact same mistake trying to reproduce 😅

I think given the recent developments (dropping type based autowiring and class named services) it makes sense to force XML service to specify an ID attribute (the top level ones). This would be consistent with YAML and PHP as well.

Fixing deprecations is also easy, just change `class` attribute to `id` like i've done for the frameworkbundle in this PR.

Any thoughts?

Commits
-------

b8c68da010 [DI] Deprecate XML services without ID
2017-05-25 16:22:40 -07:00
Fabien Potencier
f34a2556af Merge branch '3.3' into 3.4
* 3.3:
  [HttpFoundation] Add Request::HEADER_X_FORWARDED_AWS_ELB const
  [DI] Avoid private call to Container::has()
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  [Yaml] parse PHP constants in mapping keys
  don't call getTrustedHeaderName() if possible
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 16:10:58 -07:00
Fabien Potencier
bf85c7d4e2 Merge branch '3.2' into 3.3
* 3.2:
  [DI] Avoid private call to Container::has()
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 16:10:31 -07:00
Fabien Potencier
810623df5e Merge branch '2.8' into 3.2
* 2.8:
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 15:59:05 -07:00
Fabien Potencier
321e41cb6b Merge branch '2.7' into 2.8
* 2.7:
  Fixing missing abstract attribute in XmlDumper
  [Form] Remove DateTimeToStringTransformer $parseUsingPipe option
  Fix file perms
  Fixed filename in help text for update-data.php
2017-05-25 15:57:22 -07:00
Fabien Potencier
966f3877e7 bug #22901 Fix missing abstract key in XmlDumper (weaverryan)
This PR was merged into the 2.7 branch.

Discussion
----------

Fix missing abstract key in XmlDumper

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

Unless I'm missing something, the abstract key was missing in the XmlDumper. I noticed it when using `debug:container some_abstract_service` and was seeing "no" for abstract.

When this merges to 3.3, the `services-abstract.xml` will need to change to this:

```xml
<?xml version="1.0" encoding="utf-8"?>
<container xmlns="http://symfony.com/schema/dic/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
  <services>
    <service id="service_container" class="Symfony\Component\DependencyInjection\ContainerInterface" synthetic="true"/>
    <service id="foo" class="Foo" abstract="true"/>
    <service id="Psr\Container\ContainerInterface" alias="service_container" public="false"/>
    <service id="Symfony\Component\DependencyInjection\ContainerInterface" alias="service_container" public="false"/>
  </services>
</container>
```

Commits
-------

40f60ec60d Fixing missing abstract attribute in XmlDumper
2017-05-25 15:55:11 -07:00
Fabien Potencier
fa93ff1389 feature #22904 [HttpFoundation] Add Request::HEADER_X_FORWARDED_AWS_ELB const (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpFoundation] Add Request::HEADER_X_FORWARDED_AWS_ELB const

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes (a missing part of a 3.3 feat.)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

See https://github.com/symfony/symfony-docs/issues/7045

Commits
-------

9ba12b0d2a [HttpFoundation] Add Request::HEADER_X_FORWARDED_AWS_ELB const
2017-05-25 15:25:56 -07:00
Nicolas Grekas
9ba12b0d2a [HttpFoundation] Add Request::HEADER_X_FORWARDED_AWS_ELB const 2017-05-25 15:39:26 +02:00
Nicolas Grekas
1eac1506df bug #22878 [Yaml] parse PHP constants in mapping keys (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[Yaml] parse PHP constants in mapping keys

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

Commits
-------

ae52fe6 [Yaml] parse PHP constants in mapping keys
2017-05-25 15:35:55 +02:00
Nicolas Grekas
4e95aacc17 bug #22873 [HttpKernel] don't call getTrustedHeaderName() if possible (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpKernel] don't call getTrustedHeaderName() if possible

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://travis-ci.org/symfony/symfony/jobs/235008102 (failing tests of #22863)
| License       | MIT
| Doc PR        |

Commits
-------

6350dab don't call getTrustedHeaderName() if possible
2017-05-25 15:34:36 +02:00
Roland Franssen
56892819e3 [DI] Avoid private call to Container::has() 2017-05-25 14:59:08 +02:00
Ryan Weaver
40f60ec60d Fixing missing abstract attribute in XmlDumper
Caused mis-reporting of abstract key (always no) in debug:container
2017-05-25 08:56:45 -04:00
Maxime Steinhausser
a841496238 [Form] Remove DateTimeToStringTransformer $parseUsingPipe option 2017-05-25 12:07:32 +02:00
Roland Franssen
b8c68da010 [DI] Deprecate XML services without ID 2017-05-25 11:24:58 +02:00
Nicolas Grekas
e5a0062a18 Merge branch '3.3' into 3.4
* 3.3:
  [CACHE] fix README
  [Cache] Fix phpunit.xml.dist
  [ProxyManager] Add FC layer
2017-05-25 07:53:40 +02:00
Nicolas Grekas
2642e725da Merge branch '3.2' into 3.3
* 3.2:
  [CACHE] fix README
2017-05-25 07:53:23 +02:00
Nicolas Grekas
20f52f4f56 feature #22892 [ProxyManager] Add FC layer (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[ProxyManager] Add FC layer

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | yes - minor
| Deprecations? | yes - made a class final
| Tests pass?   | yes
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

This makes PRoxyDumper compatible with DumperInterface v4.0.
Technically, this is a BC break, but since I really don't expect anyone to extend ProxyDumper, I think we should do it - on 3.3 to close the gap as early as possible.

Commits
-------

4aeb6d8 [ProxyManager] Add FC layer
2017-05-25 07:52:28 +02:00
adev
3e6643bd90 [FrameworkBundle][Console] Fix the override of a command registered by the kernel
Fix #18558
2017-05-24 23:07:05 +02:00
Christian Flothmann
ae52fe6dab [Yaml] parse PHP constants in mapping keys 2017-05-24 21:40:35 +02:00
Nicolas Grekas
b0b7a36354 minor #22897 [CACHE] fix README (IndraGunawan)
This PR was merged into the 3.2 branch.

Discussion
----------

[CACHE] fix README

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

Add Resources section to Cache component readme

Commits
-------

c224ad7 [CACHE] fix README
2017-05-24 20:50:14 +02:00
Indra Gunawan
c224ad7770 [CACHE] fix README 2017-05-25 00:25:35 +07:00
Nicolas Grekas
c9da3d9233 Merge branch '3.2' into 3.3
* 3.2:
  [Cache] Fix phpunit.xml.dist
2017-05-24 18:53:35 +02:00
Nicolas Grekas
38a768e3cc [Cache] Fix phpunit.xml.dist 2017-05-24 18:45:53 +02:00
Nicolas Grekas
4aeb6d8749 [ProxyManager] Add FC layer 2017-05-24 18:13:59 +02:00
Nicolas Grekas
9a081d83c4 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Check privates before aliases consistently
  [Yaml] Add missing deprecation annotation
  [DI] Check for privates before shared services
2017-05-24 16:44:14 +02:00
Nicolas Grekas
b494106e2f Merge branch '3.2' into 3.3
* 3.2:
  [DI] Check privates before aliases consistently
2017-05-24 16:39:04 +02:00
Nicolas Grekas
1d9b1af4a3 [DI] Check privates before aliases consistently 2017-05-24 16:36:51 +02:00
Nicolas Grekas
d7981e5838 Merge branch '3.2' into 3.3
* 3.2:
  [Yaml] Add missing deprecation annotation
  [DI] Check for privates before shared services
2017-05-24 16:31:45 +02:00
Fabien Potencier
69583b2403 bug #22866 [DI] Check for privates before shared services (ro0NL)
This PR was merged into the 3.2 branch.

Discussion
----------

[DI] Check for privates before shared services

| Q             | A
| ------------- | ---
| Branch?       | 3.2
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22801#discussion_r117732213, https://github.com/symfony/symfony/pull/22801#discussion_r117732599
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

cc @stof

Commits
-------

4f683a9a5b [DI] Check for privates before shared services
2017-05-24 16:25:02 +02:00
Nicolas Grekas
e2689d42fc Merge branch '3.3' into 3.4
* 3.3:
  [DI] prepare for signature change in 4.0
  [DI] Add missing deprecation on Extension::getClassesToCompile
  [Routing] remove an unused routing fixture
  [Yaml] fix multiline block handling
  [WebProfilerBundle] Fix sub-requests display in time profiler panel
  [FrameworkBundle] Handle project dir in cache:clear command
  [WebServerBundle] Mark ServerCommand as internal
  [DI] Fix autowire error for inlined services
  Close PHP code in phpt file
  [Profiler][VarDumper] Fix searchbar css when in toolbar
  Prevent auto-registration of UserPasswordEncoderCommand
  [Process] Fixed incorrectly escaping arguments on Windows when inheritEnvironmentVariables is set to false
  avoid double blanks while rendering form attributes
  use getProjectDir() when possible
  [PhpUnitBridge] add a changelog file
  [FrameworkBundle][Validator] Deprecate passing validator instances/aliases over using the service locator
2017-05-24 13:37:21 +02:00
Nicolas Grekas
feaf5c987e Merge branch '3.2' into 3.3
* 3.2:
  [Routing] remove an unused routing fixture
  [WebProfilerBundle] Fix sub-requests display in time profiler panel
  [PhpUnitBridge] add a changelog file
2017-05-24 13:35:23 +02:00
Nicolas Grekas
667efd251e minor #22818 [DependencyInjection] prepare for signature change in 4.0 (xabbuh)
This PR was submitted for the 3.4 branch but it was merged into the 3.3 branch instead (closes #22818).

Discussion
----------

[DependencyInjection] prepare for signature change in 4.0

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

see failing tests in #22785

Commits
-------

c4b6e20 [DI] prepare for signature change in 4.0
2017-05-24 13:33:24 +02:00
Christian Flothmann
c4b6e2014c [DI] prepare for signature change in 4.0 2017-05-24 13:31:33 +02:00
Nicolas Grekas
879c9129b7 feature #22884 [DI] Add missing deprecation on Extension::getClassesToCompile (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Add missing deprecation on Extension::getClassesToCompile

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

Already dropped on master

Commits
-------

95fb929 [DI] Add missing deprecation on Extension::getClassesToCompile
2017-05-24 12:51:20 +02:00
Christian Flothmann
cf458fa871 minor #22883 [Yaml] Add missing deprecation annotation (nicolas-grekas)
This PR was merged into the 3.2 branch.

Discussion
----------

[Yaml] Add missing deprecation annotation

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

Commits
-------

c67dd38 [Yaml] Add missing deprecation annotation
2017-05-24 11:51:02 +02:00
Nicolas Grekas
c3e1646af8 [3.4] Allow 4.* deps 2017-05-24 11:02:43 +02:00
Nicolas Grekas
95fb929c58 [DI] Add missing deprecation on Extension::getClassesToCompile 2017-05-24 10:46:17 +02:00
Nicolas Grekas
c67dd3805b [Yaml] Add missing deprecation annotation 2017-05-24 10:41:50 +02:00
Fabien Potencier
df443f023f minor #22881 [Routing] remove an unused routing fixture (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[Routing] remove an unused routing fixture

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

This was initially removed in #13361 and accidentally added again
in #11394.

Commits
-------

6f67221129 [Routing] remove an unused routing fixture
2017-05-24 08:39:34 +02:00
Fabien Potencier
a3078804ef feature #22597 [Lock] Re-add the Lock component in 3.4 (jderusse)
This PR was squashed before being merged into the 3.4 branch (closes #22597).

Discussion
----------

[Lock] Re-add the Lock component in 3.4

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

This PR reverts #22590 as decided in  #22580.

Commits
-------

3b6c495c89 [Lock] Re-add the Lock component in 3.4
2017-05-24 08:31:10 +02:00
Jérémy Derussé
3b6c495c89 [Lock] Re-add the Lock component in 3.4 2017-05-24 08:31:08 +02:00
Fabien Potencier
047a06e235 bug #22853 [Yaml] fix multiline block handling (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[Yaml] fix multiline block handling

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #21114, https://github.com/symfony/symfony/pull/22105#issuecomment-288386147
| License       | MIT
| Doc PR        |

Commits
-------

a2079d6e2e [Yaml] fix multiline block handling
2017-05-24 07:58:03 +02:00
Christian Flothmann
6f67221129 [Routing] remove an unused routing fixture
This was initially removed in #13361 and accidentally added again
in #11394.
2017-05-24 00:01:29 +02:00
Christian Flothmann
a2079d6e2e [Yaml] fix multiline block handling 2017-05-23 20:34:36 +02:00
Christian Flothmann
6350dab5bf don't call getTrustedHeaderName() if possible 2017-05-23 20:22:28 +02:00
Roland Franssen
4f683a9a5b [DI] Check for privates before shared services 2017-05-23 19:58:02 +02:00
Nicolas Grekas
d715cc4a27 [WebProfilerBundle] Fix sub-requests display in time profiler panel 2017-05-23 15:50:20 +02:00
Fabien Potencier
aef39bcee5 bug #22872 [FrameworkBundle] Handle project dir in cache:clear command (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle] Handle project dir in cache:clear command

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

Commits
-------

fadffad2aa [FrameworkBundle] Handle project dir in cache:clear command
2017-05-23 14:42:40 +02:00
Nicolas Grekas
fadffad2aa [FrameworkBundle] Handle project dir in cache:clear command 2017-05-23 13:48:44 +02:00
Nicolas Grekas
c91d19574f [WebServerBundle] Mark ServerCommand as internal 2017-05-23 11:11:47 +02:00
Nicolas Grekas
4a766693a8 feature #22808 [FrameworkBundle][Validator] Deprecate passing validator instances/aliases over using the service locator (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle][Validator] Deprecate passing validator instances/aliases over using the service locator

| Q             | A
| ------------- | ---
| Branch?       | 3.3 <!-- see comment below -->
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | yes <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22800#issuecomment-302865630 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

df747ce [FrameworkBundle][Validator] Deprecate passing validator instances/aliases over using the service locator
2017-05-23 11:02:41 +02:00
Nicolas Grekas
cbd256135b minor #22845 [Form][3.3] avoid double blanks while rendering form attributes (craue)
This PR was merged into the 3.3 branch.

Discussion
----------

[Form][3.3] avoid double blanks while rendering form attributes

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | kind of
| New feature?  | no
| BC breaks?    | no (rather reverts one)
| Deprecations? | no
| Tests pass?   | we'll see
| Fixed tickets | --
| License       | MIT
| Doc PR        | --

This fix avoids the double blanks introduced by #20365 when using the Twig template. The `attributes` block already renders one blank before each attribute, so there's no need to add another one prior to calling the block.

Commits
-------

a9c11c9 avoid double blanks while rendering form attributes
2017-05-23 10:58:47 +02:00
Nicolas Grekas
2f4dea56b4 bug #22857 [DI] Fix autowire error for inlined services (weaverryan)
This PR was squashed before being merged into the 3.3 branch (closes #22857).

Discussion
----------

[DI] Fix autowire error for inlined services

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

The `AutowirePass` defers autowiring exceptions until later so that we don't throw autowiring exceptions for services that are ultimately removed. But, if a service is *inlined*, then it appears to be removed, and so we don't throw the exception. This fixes that.

It's an easy fix - but it's a bit ugly. We're adding a bit more "state" to the passes... simply because there is some information that needs to be shared through the compiler process. There might be a better way of doing this in the future (e.g. storing some metadata on the `Compiler`), but this *does* work well.

Commits
-------

4bcef3d [DI] Fix autowire error for inlined services
2017-05-23 10:56:47 +02:00
Ryan Weaver
4bcef3d67c [DI] Fix autowire error for inlined services 2017-05-23 10:56:44 +02:00
Nicolas Grekas
bca7b41afd bug #22858 [SecurityBundle] Prevent auto-registration of UserPasswordEncoderCommand (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[SecurityBundle] Prevent auto-registration of UserPasswordEncoderCommand

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

Always registers the command as a service even if no encoders are configured so that it is not auto-registered via reflection.
Prevents an irrelevant deprecation when no encoders are configured and, if a day the per-convention command registration is removed, ensures that the command always exists (leading to an exception saying that you have no configured encoder, better than nothing).
ping @ogizanagi

Commits
-------

b39b35b Prevent auto-registration of UserPasswordEncoderCommand
2017-05-23 10:54:54 +02:00
Nicolas Grekas
4d93e144a8 bug #22859 [Profiler][VarDumper] Fix searchbar css when in toolbar (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[Profiler][VarDumper] Fix searchbar css when in toolbar

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | N/A

Because css is hard (`.sf-toolbarreset *` has precedence since 4acec8973f moved the `toolbar.css.twig` inclusion from up to bottom):

|Before|After|
|--|--|
|<img width="291" alt="screenshot 2017-05-22 a 19 36 06" src="https://cloud.githubusercontent.com/assets/2211145/26321182/208780c0-3f26-11e7-89bb-7aa64f17c7b5.PNG">|<img width="280" alt="screenshot 2017-05-22 a 19 36 27" src="https://cloud.githubusercontent.com/assets/2211145/26321188/248ed0ce-3f26-11e7-852a-40968fba2e9f.PNG">|

Commits
-------

98b3002 [Profiler][VarDumper] Fix searchbar css when in toolbar
2017-05-23 09:35:31 +02:00
Nicolas Grekas
ec54341ee0 minor #22861 Close PHP code in phpt file (keradus)
This PR was merged into the 3.3 branch.

Discussion
----------

Close PHP code in phpt file

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

that's the only phpt file that is not closing php code section
this causes linting via `php -l` to fail

Commits
-------

36f6e05 Close PHP code in phpt file
2017-05-23 09:33:33 +02:00
Fabien Potencier
222325f088 minor #22843 use getProjectDir() when possible (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

use getProjectDir() when possible

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

Commits
-------

a8e298a66c use getProjectDir() when possible
2017-05-23 07:59:48 +02:00
Dariusz Rumiński
36f6e05a2e Close PHP code in phpt file 2017-05-22 22:45:58 +02:00
Maxime Steinhausser
98b3002caf [Profiler][VarDumper] Fix searchbar css when in toolbar 2017-05-22 19:32:12 +02:00
Robin Chalas
b39b35b95d Prevent auto-registration of UserPasswordEncoderCommand 2017-05-22 18:58:55 +02:00
Nicolas Grekas
82ec56b40c bug #22614 [Process] Fixed escaping arguments on Windows when inheritEnvironmentVariables is set to false (maryo)
This PR was merged into the 3.3 branch.

Discussion
----------

[Process]  Fixed escaping arguments on Windows when inheritEnvironmentVariables is set to false

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

I've added a FAILING testcase on Windows. It incorrectly substitutes an argument containing a quotation mark probably assuming it's an env var needed to backup when inheritEnvironmentVariables is set to false.

Commits
-------

26032ef [Process] Fixed incorrectly escaping arguments on Windows when inheritEnvironmentVariables is set to false
2017-05-22 14:37:50 +02:00
maryo
26032ef055 [Process] Fixed incorrectly escaping arguments on Windows when inheritEnvironmentVariables is set to false 2017-05-22 14:32:03 +02:00
Nicolas Grekas
49d6604ee4 Fix file perms 2017-05-22 13:36:46 +02:00
Roland Franssen
e0eb247229 [DI] Deprecate Container::initialized() for privates 2017-05-22 13:20:30 +02:00
Nicolas Grekas
98a2d3c429 Merge branch '3.3' into 3.4
* 3.3:
  [Serializer] Remove a useless legacy annotation
  Fixed extra semi-colon
  fix docblock position
  [DependencyInjection] remove unused variable
  [PhpUnitBridge] add changelog entries for #21140
  [DI] Remove dead service_container checks
2017-05-22 11:56:34 +02:00
Kévin Dunglas
987749bb99
[Serializer] Remove a useless legacy annotation 2017-05-22 11:36:51 +02:00
Nicolas Grekas
e014b8a7a3 minor #22850 [VarDumper] CS Fix extra semi-colon (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[VarDumper] CS Fix extra semi-colon

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

Commits
-------

c252c08 Fixed extra semi-colon
2017-05-22 11:26:56 +02:00
Robin Chalas
c252c08d44 Fixed extra semi-colon 2017-05-22 11:10:57 +02:00
Nicolas Grekas
d33b6c5306 minor #22846 [FrameworkBundle][Translation] fix docblock position (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle][Translation] fix docblock position

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

The `$defaultLocale` argument is present in the `Translator` class of
the FrameworkBundle, but is not part of the Translation component.

Commits
-------

0829964 fix docblock position
2017-05-22 09:49:45 +02:00
Nicolas Grekas
40b17336fc minor #22825 [DI] Remove dead service_container checks (ro0NL)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Remove dead service_container checks

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

Since #21627

Commits
-------

9a8ea93 [DI] Remove dead service_container checks
2017-05-22 09:45:40 +02:00
Christian Flothmann
082996417d fix docblock position
The `$defaultLocale` argument is present in the `Translator` class of
the FrameworkBundle, but is not part of the Translation component.
2017-05-22 09:42:36 +02:00
Maxime Steinhausser
c10a780afb [Serializer] DateTimeNormalizer: allow to provide timezone 2017-05-22 09:35:43 +02:00
Christian Raue
a9c11c9b20 avoid double blanks while rendering form attributes 2017-05-22 09:32:45 +02:00
Maxime Steinhausser
d102fc08e4 [FrameworkBundle] KernelTestCase: deprecate not using KERNEL_CLASS 2017-05-22 09:24:33 +02:00
Christian Flothmann
a8e298a66c use getProjectDir() when possible 2017-05-22 09:09:23 +02:00
Hugo Hamon
1c2383f1a5 [DependencyInjection] remove unused variable 2017-05-21 23:03:33 +02:00
Fabien Potencier
4feb530fc9 minor #22834 [PhpUnitBridge] add changelog entries for #21140 (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[PhpUnitBridge] add changelog entries for #21140

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

Commits
-------

c83c5bc6b1 [PhpUnitBridge] add changelog entries for #21140
2017-05-21 20:34:13 +02:00
Christian Flothmann
e5455db84f [PhpUnitBridge] add a changelog file 2017-05-21 19:48:56 +02:00
Christian Flothmann
c83c5bc6b1 [PhpUnitBridge] add changelog entries for #21140 2017-05-21 19:39:57 +02:00
Nicolas Grekas
08aa6a8582 feature #22828 [Finder] Deprecate FilterIterator (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Finder] Deprecate FilterIterator

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | yes <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22820#pullrequestreview-39351934
| License       | MIT
| Doc PR        | N/A

Commits
-------

946066c [Finder] Deprecate FilterIterator
2017-05-21 19:37:44 +02:00
Nicolas Grekas
bb2a2e2a32 bug #22830 [SecurityBundle] forward compatibility with Symfony 4 (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[SecurityBundle] forward compatibility with Symfony 4

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony/pull/22821#issuecomment-302935588

Commits
-------

c783e1e forward compatibility with Symfony 4
2017-05-21 19:30:27 +02:00
Brandon Kelly
50fdcd6c4f Fixed filename in help text for update-data.php 2017-05-21 19:28:42 +02:00
Maxime Steinhausser
946066cc29 [Finder] Deprecate FilterIterator 2017-05-21 19:11:47 +02:00
Maxime Steinhausser
df747ce43f [FrameworkBundle][Validator] Deprecate passing validator instances/aliases over using the service locator 2017-05-21 19:05:02 +02:00
Christian Flothmann
c783e1e7f0 forward compatibility with Symfony 4 2017-05-21 16:43:08 +02:00
Nicolas Grekas
8308b32b9f Merge branch '3.3' into 3.4
* 3.3:
  document deprecation of the StringUtil class
  Add missing doc param & deprecation changelog entries
2017-05-21 15:55:35 +02:00
Nicolas Grekas
b1349a7889 Merge branch '3.2' into 3.3
* 3.2:
  document deprecation of the StringUtil class
2017-05-21 15:55:13 +02:00
Nicolas Grekas
c3be3ea898 feature #22826 [Validator] improve strict option value deprecation (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] improve strict option value deprecation

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

Commits
-------

a820b42 improve strict option value deprecation
2017-05-21 14:54:27 +02:00
Christian Flothmann
57f6941e25 [Yaml] fix colon without space deprecation
A colon after a mapping key that is not followed by a space is valid if
the mapping key is quoted.
2017-05-21 14:39:29 +02:00
Christian Flothmann
a820b42a2d improve strict option value deprecation 2017-05-21 12:30:01 +02:00
Roland Franssen
9a8ea93139 [DI] Remove dead service_container checks 2017-05-21 12:19:15 +02:00
Christian Flothmann
f00c47ac9c document deprecation of the StringUtil class 2017-05-21 12:07:34 +02:00
Robin Chalas
7b14d4f4ec Add missing doc param & deprecation changelog entries 2017-05-21 12:00:14 +02:00
Nicolas Grekas
aeec858c00 Merge branch '3.3' into 3.4
* 3.3:
  update phpunit-bridge cache-id
  respect optional error handler arguments
  [Intl] Fix bin/common.php PHP7 compatibility
2017-05-21 11:48:53 +02:00
Nicolas Grekas
cd217fd121 Merge branch '3.2' into 3.3
* 3.2:
  update phpunit-bridge cache-id
  respect optional error handler arguments
  [Intl] Fix bin/common.php PHP7 compatibility
2017-05-21 11:48:35 +02:00
Nicolas Grekas
39b0515abf Merge branch '2.8' into 3.2
* 2.8:
  update phpunit-bridge cache-id
  respect optional error handler arguments
  [Intl] Fix bin/common.php PHP7 compatibility
2017-05-21 11:47:49 +02:00
Nicolas Grekas
7a792eb896 Merge branch '2.7' into 2.8
* 2.7:
  update phpunit-bridge cache-id
  respect optional error handler arguments
  [Intl] Fix bin/common.php PHP7 compatibility
2017-05-21 11:46:38 +02:00
Nicolas Grekas
74faead115 bug #22774 [FrameworkBundle] add forward compatibility layer for FrameworkBundle (hhamon)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] add forward compatibility layer for FrameworkBundle

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

9f14d06 [FrameworkBundle] add forward compatibility layer when using FrameworkBundle in version 3.4 with DependencyInjection component in version 4.0
2017-05-21 11:23:49 +02:00
Christian Flothmann
f7d1a064c6 respect optional error handler arguments 2017-05-21 11:00:20 +02:00
Nicolas Grekas
b6fced6261 Merge branch '3.3' into 3.4
* 3.3:
  [PhpUnitBridge] remove unused use statement
  do not mock a deprecated interface
  [DI] Added missing deprecation in changelog
  [Ldap] add a changelog file
  [Security][Serializer][DI] Add new arguments typehints in preparation for 4.0
  [MonologBridge] Fix the Monlog ServerLogHandler from Hanging on Windows
  [DependencyInjection] Fix dumping of RewindableGenerator with empty IteratorArgument
  [DI][Serializer] Fix missing de(normalizer|coder) autoconfig
  Use 0.0.0.0 as the server log host default.
2017-05-21 10:57:11 +02:00
Nicolas Grekas
023cf9e014 Merge branch '3.2' into 3.3
* 3.2:
  do not mock a deprecated interface
  [DI] Added missing deprecation in changelog
  [Ldap] add a changelog file
2017-05-21 10:56:50 +02:00
Nicolas Grekas
455b09bd3d minor #22802 [Ldap] add a changelog file (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[Ldap] add a changelog file

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

Commits
-------

5bdda6c [Ldap] add a changelog file
2017-05-21 10:51:01 +02:00
Nicolas Grekas
a0364bc3eb minor #22757 [Security][Serializer][DI] Add new arguments typehints in preparation for 4.0 (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[Security][Serializer][DI] Add new arguments typehints in preparation for 4.0

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22743#pullrequestreview-38950305
| License       | MIT
| Doc PR        | N/A

See https://github.com/symfony/symfony/pull/22743#pullrequestreview-38950305 discussion for the motivations.

Commits
-------

b973b30 [Security][Serializer][DI] Add new arguments typehints in preparation for 4.0
2017-05-21 10:47:05 +02:00
Nicolas Grekas
c268ebafc3 bug #22781 [DI][Serializer] Fix missing de(normalizer|coder) autoconfig (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI][Serializer] Fix missing de(normalizer|coder) autoconfig

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes(ish)
| New feature?  | no (at least complete the 3.3 feature)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | N/A
| License       | MIT
| Doc PR        | N/A

Just migrating an app to `3.3.0-RC1`, I get surprised it wasn't already registered :)

Commits
-------

3c3a276 [DI][Serializer] Fix missing de(normalizer|coder) autoconfig
2017-05-21 10:45:16 +02:00
Nicolas Grekas
5c40e1264c bug #22790 [DependencyInjection] Fix dumping of RewindableGenerator with empty IteratorArgument (meyerbaptiste)
This PR was merged into the 3.3 branch.

Discussion
----------

[DependencyInjection] Fix dumping of RewindableGenerator with empty IteratorArgument

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

According with https://github.com/symfony/symfony/issues/22780#issuecomment-302747395, when an `IteratorArgument` is empty, the closure generated by the `PhpDumper` should be `function () { return new EmptyIterator();` instead of `function () {}`, which is an invalid traversable for the `RewindableGenerator`.

Commits
-------

c2db0c1 [DependencyInjection] Fix dumping of RewindableGenerator with empty IteratorArgument
2017-05-21 10:44:23 +02:00
Nicolas Grekas
9b4a0c7af4 bug #22814 [FrameworkBundle] FC with EventDispatcher 4.0 (xabbuh)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[FrameworkBundle] FC with EventDispatcher 4.0

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

Commits
-------

b7c76f7 [FrameworkBundle] FC with EventDispatcher 4.0
2017-05-21 10:41:40 +02:00
Nicolas Grekas
8529e02879 minor #22810 [DI] Added missing deprecation in changelog (ro0NL)
This PR was merged into the 3.2 branch.

Discussion
----------

[DI] Added missing deprecation in changelog

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

See #20113

Commits
-------

b3d58c5 [DI] Added missing deprecation in changelog
2017-05-21 10:40:13 +02:00
Christian Flothmann
c36ea03e68 [PhpUnitBridge] remove unused use statement 2017-05-21 10:03:01 +02:00
Christian Flothmann
f20885eefe do not used deprecated validator test case class 2017-05-21 09:57:21 +02:00
Christian Flothmann
a920274709 do not mock a deprecated interface 2017-05-21 09:39:50 +02:00
Roland Franssen
b3d58c54a4 [DI] Added missing deprecation in changelog 2017-05-20 22:16:10 +02:00
Christian Flothmann
5bdda6ce74 [Ldap] add a changelog file 2017-05-20 15:43:53 +02:00
Maxime Steinhausser
b973b3072a [Security][Serializer][DI] Add new arguments typehints in preparation for 4.0 2017-05-20 12:13:18 +02:00
Nicolas Grekas
628ec8118e minor #22748 [Intl] Fix bin/common.php PHP7 compatibility (ondrejfuhrer)
This PR was squashed before being merged into the 2.7 branch (closes #22748).

Discussion
----------

[Intl] Fix bin/common.php PHP7 compatibility

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

Created for Symfony 2.7 version which is the oldest maintained impacted branch.

Commits
-------

c2ccf36 [Intl] Fix bin/common.php PHP7 compatibility
2017-05-20 11:41:39 +02:00
Ondřej Führer
c2ccf36040 [Intl] Fix bin/common.php PHP7 compatibility 2017-05-20 11:41:38 +02:00
Fabien Potencier
159f3c59d5 bug #22787 [MonologBridge] Fix the Monlog ServerLogHandler from Hanging on Windows (ChadSikorra)
This PR was squashed before being merged into the 3.3 branch (closes #22787).

Discussion
----------

[MonologBridge] Fix the Monlog ServerLogHandler from Hanging on Windows

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

This resolves the issue discussed in https://github.com/symfony/symfony/issues/22712. This works on both Windows and Linux. Specifically it removes the additional hanging that was caused on Windows when attempting to write/close a TCP socket that's not open on the other end in asynchronous mode.

Commits
-------

be60aa401f [MonologBridge] Fix the Monlog ServerLogHandler from Hanging on Windows
2017-05-20 09:30:50 +02:00
Chad Sikorra
be60aa401f [MonologBridge] Fix the Monlog ServerLogHandler from Hanging on Windows 2017-05-20 09:30:49 +02:00
meyerbaptiste
c2db0c14e1 [DependencyInjection] Fix dumping of RewindableGenerator with empty IteratorArgument 2017-05-19 23:56:58 +02:00
Fabien Potencier
649ad8cf55 bug #22768 Use 0.0.0.0 as the server log command host default. (ChadSikorra)
This PR was merged into the 3.3 branch.

Discussion
----------

Use 0.0.0.0 as the server log command host default.

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

This fixes the `server:log` command on Windows when run with default settings. The current setting `0` has no meaning on Windows, and `0.0.0.0` is the standard "listen on all addresses/interfaces", so should be the most compatible. It works on both Linux and Windows for me this way.

I mentioned this in another PR where the logger config has the same issue on Windows:

https://github.com/symfony/symfony-standard/pull/1077

Commits
-------

3fcc810dd7 Use 0.0.0.0 as the server log host default.
2017-05-19 21:45:04 +02:00
Maxime Steinhausser
3c3a276374 [DI][Serializer] Fix missing de(normalizer|coder) autoconfig 2017-05-19 18:52:57 +02:00
Nicolas Grekas
e9e19e7f4d Merge branch '3.3' into 3.4
* 3.3:
  typo
  CI fixes
  Improved how profiler errors are dispalyed on small screens
  bumped Symfony version to 3.3.0
  updated VERSION for 3.3.0-RC1
  updated CHANGELOG for 3.3.0-RC1
2017-05-19 14:13:29 +02:00
Nicolas Grekas
7938fdeceb Merge branch '3.2' into 3.3
* 3.2:
  typo
  CI fixes
  Improved how profiler errors are dispalyed on small screens
2017-05-19 14:13:17 +02:00
Nicolas Grekas
f154e67000 Merge branch '2.8' into 3.2
* 2.8:
  CI fixes
  Improved how profiler errors are dispalyed on small screens
2017-05-19 14:10:04 +02:00
Nicolas Grekas
f7b3252cc1 Merge branch '2.7' into 2.8
* 2.7:
  CI fixes
2017-05-19 13:49:58 +02:00
Hugo Hamon
9f14d06c11 [FrameworkBundle] add forward compatibility layer when using FrameworkBundle in version 3.4 with DependencyInjection component in version 4.0 2017-05-19 12:02:59 +02:00
Maxime Steinhausser
fab0629206 [Intl] Fix intl tests for PHP < 5.5.10 2017-05-19 08:06:36 +02:00
Chad Sikorra
3fcc810dd7 Use 0.0.0.0 as the server log host default. 2017-05-18 21:05:32 -05:00
Nicolas Grekas
a34b8ce2df CI fixes 2017-05-18 17:56:45 +02:00
Robin Chalas
3230fc7e70 Fix kernel.project_dir extensibility 2017-05-18 16:23:46 +02:00
Kévin Dunglas
bcc408cfad Allow individual bridges, bundles and components to be used with 4.0 2017-05-18 14:56:12 +02:00
Javier Eguiluz
3d6d80d843 Improved how profiler errors are dispalyed on small screens 2017-05-18 11:06:54 +02:00
David Maicher
16da6861be [Security] fix switch user _exit without having current token 2017-05-17 20:41:55 +02:00
Fabien Potencier
98021ae918 bumped Symfony version to 3.3.0 2017-05-17 20:35:24 +02:00
Fabien Potencier
297a65dbe8 updated VERSION for 3.3.0-RC1 2017-05-17 20:09:50 +02:00
Fabien Potencier
7b59412301 updated version to 3.4 2017-05-17 18:21:40 +02:00
Fabien Potencier
1bbc35a34a Merge branch '3.2'
* 3.2:
  removed unneeded annotation in tests
  [Intl][Form] Update tests, TimeZoneTransformer, and DateTimeToLocalizedStringTransformer for the GMT and UTC split in ICU
  remove Security deps from the require section
  [Intl] Update ICU data to 59.1
2017-05-15 08:17:59 -07:00
Fabien Potencier
94871fac80 removed unneeded annotation in tests 2017-05-15 08:15:28 -07:00
Fabien Potencier
9fd95ca9ef Merge branch '2.8' into 3.2
* 2.8:
  [Intl][Form] Update tests, TimeZoneTransformer, and DateTimeToLocalizedStringTransformer for the GMT and UTC split in ICU
  [Intl] Update ICU data to 59.1
2017-05-15 08:08:20 -07:00
Fabien Potencier
b8c95976c3 Merge branch '2.7' into 2.8
* 2.7:
  [Intl][Form] Update tests, TimeZoneTransformer, and DateTimeToLocalizedStringTransformer for the GMT and UTC split in ICU
  [Intl] Update ICU data to 59.1
2017-05-15 08:02:37 -07:00
Fabien Potencier
c4abc1566d minor #22627 [Intl] Update ICU data to 59.1 (jakzal)
This PR was squashed before being merged into the 2.7 branch (closes #22627).

Discussion
----------

[Intl] Update ICU data to 59.1

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

The [GMT timezone has been split from the UTC](http://site.icu-project.org/download/59) timezone [in CLDR](http://cldr.unicode.org/index/downloads/cldr-31) (which ICU is based on).

For example, the code blow:
* before ICU 59.1 would return "GMT" in all cases
* with ICU 59.1 it returns "UTC" for the first three ('z', 'zz', 'zzz')
  and "Coordinated Universal Time" for the last two ('zzzz', 'zzzzz').

```php
foreach (['z', 'zz', 'zzz', 'zzzz', 'zzzzz'] as $pattern) {
    $formatter = new \IntlDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, new \DateTimeZone('UTC'), IntlDateFormatter::GREGORIAN, $pattern);
    var_dump($formatter->format(new \DateTime('@0')));
}
```

Similarly Form's `DateTimeToLocalizedStringTransformer` is also affected:

```php
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', null, \IntlDateFormatter::FULL);
var_dump($transformer->transform(new \DateTime('2010-02-03 04:05:06 UTC')));
// ICU 58.2: '03.02.2010, 04:05:06 GMT'
// ICU 59.1: '03.02.2010, 04:05:06 Koordinierte Weltzeit'
```

Refer to added and modified test cases for more changes. I split this PR in two commits for easier review. First commit updates ICU data (generated files), the second updates code and test cases to be compatible with updated data.

Commits
-------

5d3d1b25e0 [Intl][Form] Update tests, TimeZoneTransformer, and DateTimeToLocalizedStringTransformer for the GMT and UTC split in ICU
00acb37205 [Intl] Update ICU data to 59.1
2017-05-15 07:59:44 -07:00
Jakub Zalas
5d3d1b25e0
[Intl][Form] Update tests, TimeZoneTransformer, and DateTimeToLocalizedStringTransformer for the GMT and UTC split in ICU
The [GMT timezone has been split from the UTC](http://site.icu-project.org/download/59) timezone [in CLDR](http://cldr.unicode.org/index/downloads/cldr-31) (which ICU is based on).

For example, the code blow:
* before ICU 59.1 would return "GMT" in all cases
* with ICU 59.1 it returns "UTC" for the first three ('z', 'zz', 'zzz')
  and "Coordinated Universal Time" for the last two ('zzzz', 'zzzzz').

```php
foreach (['z', 'zz', 'zzz', 'zzzz', 'zzzzz'] as $pattern) {
    $formatter = new \IntlDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, new \DateTimeZone('UTC'), IntlDateFormatter::GREGORIAN, $pattern);
    var_dump($formatter->format(new \DateTime('@0')));
}
```

Similarly Form's `DateTimeToLocalizedStringTransformer` is also affected:

```php
$transformer = new DateTimeToLocalizedStringTransformer('UTC', 'UTC', null, \IntlDateFormatter::FULL);
var_dump($transformer->transform(new \DateTime('2010-02-03 04:05:06 UTC')));
// ICU 58.2: '03.02.2010, 04:05:06 GMT'
// ICU 59.1: '03.02.2010, 04:05:06 Koordinierte Weltzeit'
```

Refer to added and modified test cases for more changes. I split this PR in two commits for easier review. First commit updates ICU data (generated files), the second updates code and test cases to be compatible with updated data.
2017-05-15 15:46:23 +01:00
Fabien Potencier
401c55004b bug #22715 [FrameworkBundle] remove Security deps from the require section (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[FrameworkBundle] remove Security deps from the require section

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

These requirements have been moved in #20075 before and are still
present in the `require-dev` section.

see symfony/flex#14

Commits
-------

c690256966 remove Security deps from the require section
2017-05-15 07:30:51 -07:00
Christian Flothmann
c690256966 remove Security deps from the require section
These requirements have been moved in #20075 before and are still
present in the `require-dev` section.
2017-05-15 15:20:33 +02:00
Nicolas Grekas
af4ec231b0 Merge branch '3.2'
* 3.2:
  Fix errors not rethrown even if not handled by console.error listeners
  [VarDumper] Fix dumping of non-nested stubs
  [Security] Avoid unnecessary route lookup for empty logout path
  respect inline level when dumping objects as maps
  Test case for not in-lined map-objects
2017-05-15 14:04:53 +02:00
Nicolas Grekas
5857e7c4e1 Merge branch '2.8' into 3.2
* 2.8:
  Fix errors not rethrown even if not handled by console.error listeners
  [VarDumper] Fix dumping of non-nested stubs
  [Security] Avoid unnecessary route lookup for empty logout path
2017-05-15 14:02:31 +02:00
Nicolas Grekas
6ef78ec553 Merge branch '2.7' into 2.8
* 2.7:
  Fix errors not rethrown even if not handled by console.error listeners
  [VarDumper] Fix dumping of non-nested stubs
  [Security] Avoid unnecessary route lookup for empty logout path
2017-05-15 13:59:37 +02:00
Nicolas Grekas
03914e9e9b bug #22613 [Process] Fix incorrectly calling PHP process when path contains space (maryo)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Process] Fix incorrectly calling PHP process when path contains space

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

I have PHP installed at "D:\Program Files\PHP" which contains a space. `PhpExecutableFinder` found it but then `PhpProcess` splitted the path by space. This PR fixes it. I wanted to write a test but I don't know ho to do it properly since it is dependent on the location where PHP is installed and I can't even mock `PhpExecutableFinder` because it is hardcoded dependency and an implementation detail.

Commits
-------

9c08109 Fix incorrectly calling PHP process on Windows when path contains space
2017-05-15 10:12:59 +02:00
Fabien Potencier
fb532bfc17 feature #22680 [DI] Fixing missing "exclude" functionality from PSR4 loader (weaverryan)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Fixing missing "exclude" functionality from PSR4 loader

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

When the PSR4 loader was added in #21289, @nicolas-grekas said this:

> given that glob() is powerful enough to include/exclude dirs, I removed the Test special exclusion (source: https://github.com/symfony/symfony/pull/21289#issuecomment-272821106)

But, I don't believe that's true! [Glob is all about inclusion, not exclusion](https://en.wikipedia.org/wiki/Glob_(programming)#Syntax) - the maximum you can exclude is a single character. Thus, I've marked this as a bug.

My motivation came from upgrading KnpU to the new 3.3 DI stuff. We have many directories (40) in `src/`, and listing them all one-by-one in `resource:` is crazy - the `resource` line would be ~350 characters long and quite unreadable. What I really want to do is include *everything* and then exclude few directories. I tried to do this with `glob`, but it's not possible.

This PR allows for something like this:

```yml
services:
    _defaults:
        public: false

    # ...
    AppBundle\:
        resource: '../../src/AppBundle/*'
        exclude: '../../src/AppBundle/{AppBundle.php,Entity}'
```

This works *beautifully* in practice. And even if I forget to exclude a directory - since the services are private -  **they're ultimately removed from the container anyways**. In fact, the *only* reason I need to exclude *anything* is because of the new "service argument resolver", which causes entities to not be properly removed from the compiled container.

Thanks!

Commits
-------

7d07f19459 Allowing prototype/PSR4 service loading ability to exclude, because glob doesn't support this
2017-05-14 09:23:24 -07:00
Ryan Weaver
7d07f19459 Allowing prototype/PSR4 service loading ability to exclude, because glob doesn't support this 2017-05-13 13:10:49 -04:00
Fabien Potencier
76190ab8c2 minor #22709 [Security] Remove polyfill-util dependancy from security-core (BPScott)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] Remove polyfill-util dependancy from security-core

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

Security-core no longer directly depends upon polyfill-util since #16382.

This does not change the existing dependancy tree as polyfill-util is
transitivly depended on via polyfill-php56.

Commits
-------

fb140aa939 Remove polyfill-util dependancy from security-core
2017-05-13 07:15:20 -07:00
Fabien Potencier
d975419a6c bug #22699 [TwigBundle] service workflow.twig_extension should stay public (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[TwigBundle] service workflow.twig_extension should stay public

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

While it's not really required for this service to be public AFAIK, it was not made private when introducing it in 3.2. Which means it should stay public in upper branches. But [since we now default to `public: false`](https://github.com/symfony/symfony/pull/22615) in every service config file, it's currently private in 3.3.

I had a quick look on commits merged after this PR and didn't find any other similar case.

Commits
-------

5d07c6aa76 [TwigBundle] service workflow.twig_extension should stay public
2017-05-13 07:11:43 -07:00
Ben Scott
fb140aa939 Remove polyfill-util dependancy from security-core
Security-core no longer directly depends upon polyfill-util since #16382.

This does not change the existing dependancy tree as polyfill-util is
transitivly depended on via polyfill-php56.
2017-05-13 13:09:51 +01:00
Ryan Weaver
fe40cb21d4 Adding autowire alias for AuthenticationUtils 2017-05-12 11:05:58 -07:00
Maxime Steinhausser
5d07c6aa76 [TwigBundle] service workflow.twig_extension should stay public 2017-05-12 19:24:04 +02:00
Christian Flothmann
84bb34fa05 [WebServerBundle] fix dependencies 2017-05-12 12:42:32 +02:00
Maxime Steinhausser
85f6710424 [TwigBundle] Remove ClassExistenceResource usage 2017-05-11 20:00:39 +02:00
Fabien Potencier
1c2c3fc677 bug #22647 [VarDumper] Fix dumping of non-nested stubs (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Fix dumping of non-nested stubs

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

Commits
-------

dd5b7a632b [VarDumper] Fix dumping of non-nested stubs
2017-05-11 10:53:06 -07:00
Fabien Potencier
8f4eb92b64 bug #22409 [Yaml] respect inline level when dumping objects as maps (goetas, xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[Yaml] respect inline level when dumping objects as maps

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

Commits
-------

3cca48c715 respect inline level when dumping objects as maps
4f5c149798 Test case for not in-lined map-objects
2017-05-11 10:37:16 -07:00
Fabien Potencier
1ccc3de17b removed duplicate use statement 2017-05-11 10:33:45 -07:00
Fabien Potencier
2a288dba78 bug #22584 [Security] Avoid unnecessary route lookup for empty logout path (ro0NL)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] Avoid unnecessary route lookup for empty logout path

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

i first included this with #22572 where having `logout: { path: ~ }` makes more sense for disabling logout path matching/generation. But currently it's already allowed and causes an unneeded route lookup and url generation.

Commits
-------

2967807b14 [Security] Avoid unnecessary route lookup for empty logout path
2017-05-11 10:27:33 -07:00
Fabien Potencier
1503f3de40 bug #22642 [DX] Making the RegisterControllerArgumentLocatorsPass throw exception on bad types (weaverryan)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DX] Making the RegisterControllerArgumentLocatorsPass throw exception on bad types

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

Suppose you type-hint a controller arg with a non-existent class:

```php
public function fooAction(FakeClass $foo)
```

Current error:

> Class AppBundle\Controller\FakeClass does not exist

(from `ParamConverterListener`, and only when you hit that route)

New error:

> Cannot determine controller argument for "AppBundle\Controller\BlogController::indexAction()
  ": the $foo argument is type-hinted with the non-existent class or interface: "AppBundle\Con
  troller\FakeClass". Did you forget to add a use statement?

(at build time)

The extra `Did you forget to add a use statement?` only shows up if it appears you likely forgot a `use` statement.

I think this will be a really common error (especially forgetting the `use` statement)... so let's make it a *really* nice error! An alternative would be to enhance the args resolver to throw a clearer exception when no arg can be wired and the type-hint is bad (we would also need to make the `ParamConverterListener` stop throwing the current error... so that the args resolver would have the opportunity to do that. Disadvantage would be that this error would only happen when you hit the route, not at build time.

Cheers!

Commits
-------

22b905226d Making the RegisterControllerArgumentLocatorsPass throw an exception on a bad type-hint
2017-05-11 10:20:43 -07:00
Fabien Potencier
83114ade04 bug #22664 [Security] Fix TraceableAccessDecisionManager / DebugAccessDecisionManager BC layer (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] Fix TraceableAccessDecisionManager / DebugAccessDecisionManager BC layer

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22657#issuecomment-299728726
| License       | MIT
| Doc PR        | N/A

Same as #22657 for the renaming of `DebugAccessDecisionManager` into `TraceableAccessDecisionManager`. Indeed, I think we also require to redeclare the old `DebugAccessDecisionManager` for composer `classmap-authoritative` autoloading strategy & classmap dumper.

AppVeyor failures unrelated.

Edit: Re-thinking about it, it's probably not very common to dump the classmap and use the `classmap-authoritative` strategy when using those classes... That's to say: in debug mode/dev env. So it may be the reason why the class wasn't redeclared on contrary of `DefinitionDecorator`.

Commits
-------

5b123b9674 [Security] Fix TraceableAccessDecisionManager / DebugAccessDecisionManager BC layer
2017-05-11 10:16:35 -07:00
Fabien Potencier
05240ce60d bug #22690 [Console] Fix errors not rethrown even if not handled by console.error listeners (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Fix errors not rethrown even if not handled by console.error listeners

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

https://github.com/symfony/symfony/pull/22261 has been squashed while revisiting error handling, this fixes it again while keeping latest changes intact.

__code__
```php
public function execute(InputInterface $input, OutputInterface $output) {
    $this->barr();
}

public function bar() { }
```

__before__
![before](http://image.prntscr.com/image/38aa3b46fed6439ead693908ab104fb3.png)

__after__
![after](http://image.prntscr.com/image/071322bfa52247c6a02eac6ef9d8284a.png)

Commits
-------

75f098fcb8 Fix errors not rethrown even if not handled by console.error listeners
2017-05-11 10:13:33 -07:00
Fabien Potencier
b33f1dfe07 bug #22681 Fixing a bug where abstract classes were wired with the prototype loader (weaverryan)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Fixing a bug where abstract classes were wired with the prototype loader

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

The prototype/PSR-4 loader currently tries to wire abstract classes. The problem is if, for example, you have, for example:

```php
abstract class BaseCommand extends Command
{
}
```

If this is registered as a service, and you have `autoconfigure`, then the console `Application` will try to use this a command.

Was there some reason abstract classes were originally allowed to be registered as services with the PSR4/prototype loader? I don't know if there is a real use-case for registering abstract classes. If you wanted to use that service as a parent service... then you'll probably be configuring it yourself anyways. We could also fix this by changing all tags compiler passes to skip classes that are abstract... *if* there is a use-case for Abstract classes being auto-registered.

Cheers!

Commits
-------

5326bab10a Fixing a bug where abstract classes were wired
2017-05-11 10:11:08 -07:00
Fabien Potencier
a3f78608e8 feature #22665 [DI] Do not throw autowiring exceptions for a service that will be removed (weaverryan)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Do not throw autowiring exceptions for a service that will be removed

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

Hi guys!

tl;dr Do no throw a "Cannot autowire service id foo_bar" if that service (`foo_bar`) is private and is ultimately removed from the container.

I ran into a problem with the new PSR-4 service loader: our existing projects often contains directories with a mixture of services and model classes. In reality, that's not a problem: since the services are private, if any "extra" classes are registered as service, they're removed from the container because they're not referenced. In other words, the system is great: model classes do *not* become services naturally... because nobody tries to inject them as services.

However, if your model classes have constructor args... then things blow up on compilation. This fixes that: it delays autowiring errors until after `RemoveUnusedDefinitionsPass` runs and then does *not* throw those exceptions if the service is gone.

Cheers!

Commits
-------

f4913feaa8 Fixing a bug where services that were eventually removed could cause autowire errors
2017-05-11 10:07:41 -07:00
Fabien Potencier
428b9bfa4f Merge branch '3.2'
* 3.2:
  [Console] Do not duplicate Helper::strlen() code
  [FrameworkBundle] Adding the extension XML
  [Form] Minor: Fix comment in ChoiceType
  [FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice
  fixed CS
  fixed CS
  [DI] Fix PhpDumper blank lines around namespace
  fixed CS
  [Workflow] fix use directives
  [Workflow] Move twig extension registration to twig bundle
  Filesystem: annotate the one network test with a "network" group.
  [DependencyInjection] Don't store default deprecation template in every service definition instance
2017-05-11 09:47:52 -07:00
Fabien Potencier
329e96c583 Merge branch '2.8' into 3.2
* 2.8:
  [Console] Do not duplicate Helper::strlen() code
  [FrameworkBundle] Adding the extension XML
  [Form] Minor: Fix comment in ChoiceType
  [FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice
2017-05-11 09:41:44 -07:00
Fabien Potencier
433dfd42a1 Merge branch '2.7' into 2.8
* 2.7:
  [Console] Do not duplicate Helper::strlen() code
  [FrameworkBundle] Adding the extension XML
  [Form] Minor: Fix comment in ChoiceType
  [FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice
2017-05-11 09:41:12 -07:00
Fabien Potencier
0ad2f2ef9f bug #22669 [FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice (ogizanagi)
This PR was merged into the 2.7 branch.

Discussion
----------

[FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice

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

As spotted in https://github.com/symfony/recipes/issues/46, there is no reason to call `registerBundles` on the kernel instance, as it's already booted. So we just have to use `getBundles` instead and `registerBundles` can be implemented in a non-rewindable way, as done with flex.

Commits
-------

040edfec4a [FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice
2017-05-11 09:38:53 -07:00
Robin Chalas
75f098fcb8 Fix errors not rethrown even if not handled by console.error listeners 2017-05-11 16:06:19 +02:00
Ryan Weaver
5326bab10a Fixing a bug where abstract classes were wired 2017-05-11 05:42:51 -04:00
Ryan Weaver
22b905226d Making the RegisterControllerArgumentLocatorsPass throw an exception on a bad type-hint 2017-05-10 15:41:43 -04:00
Fabien Potencier
2f1c28bbbc minor #22683 [Console] Do not duplicate Helper::strlen() code (ogizanagi)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Do not duplicate Helper::strlen() code

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

Commits
-------

01c2c099a4 [Console] Do not duplicate Helper::strlen() code
2017-05-10 11:24:43 -07:00
Ryan Weaver
f4913feaa8 Fixing a bug where services that were eventually removed could cause autowire errors 2017-05-10 09:32:00 -04:00
Maxime Steinhausser
01c2c099a4 [Console] Do not duplicate Helper::strlen() code 2017-05-09 20:54:25 +02:00
Fabien Potencier
2d72b0b8ce minor #22673 [Form] Minor: Fix comment in ChoiceType (issei-m)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Minor: Fix comment in ChoiceType

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | n/a
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Forgotten to be updated in: #21957

Commits
-------

a49d79c856 [Form] Minor: Fix comment in ChoiceType
2017-05-09 07:57:36 -07:00
Flug
6fe2ad0558 [FrameworkBundle] Adding the extension XML
required by XmlUtils and not installed by default
2017-05-09 07:43:21 -07:00
Fabien Potencier
ae9bda1ffc bug #22611 [FrameworkBundle] Fix "Locale class not found" in AboutCommand (rubenrua)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle] Fix "Locale class not found" in AboutCommand

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

Found testing http://fabien.potencier.org/symfony4-demo.html with docker `php:7.1`

Commits
-------

0269f9d422 [FrameworkBundle] Fix "Locale class not found" in AboutCommand
2017-05-09 07:36:16 -07:00
Ryan Weaver
7cc7c85919 Fixing bug where indexed args were set wrong in pass in some situations 2017-05-09 05:53:08 -04:00
Issei.M
a49d79c856 [Form] Minor: Fix comment in ChoiceType 2017-05-09 13:05:50 +09:00
Fabien Potencier
f389fa3a56 bug #22652 [Workflow] Move twig extension registration to twig bundle (ogizanagi)
This PR was merged into the 3.2 branch.

Discussion
----------

[Workflow] Move twig extension registration to twig bundle

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

It's probably very late, but I think the twig extension registration is supposed to be done from the `TwigBundle` rather than the `FrameworkBundle`. Fortunately, it doesn't cause any issue currently when using the framework bundle and the workflow component without twig, because it only creates a `workflow.twig_extension` service you'll probably never call, and the `twig.extension` tag is never processed. But still, creates a useless service that cannot be called (and is not removed because it's public).

So this PR aims for consistency over other twig extensions registration, and removing this service when not using twig.
It isn't a BC break to me, as you usually already use the `TwigBundle` for other extensions.

Commits
-------

3fc80d10ef [Workflow] Move twig extension registration to twig bundle
2017-05-08 09:35:15 -07:00
Fabien Potencier
3646d08735 feature #22668 [FrameworkBundle] KernelTestCase: allow to provide the kernel class with a var (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle] KernelTestCase: allow to provide the kernel class with a var

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | no
| New feature?  | yes, but must-have for the new project structure when using flex
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #22661
| License       | MIT
| Doc PR        | todo in https://symfony.com/doc/current/testing.html#your-first-functional-test

So, when using flex, the new `phpunit.xml.dist` will be:

```diff
<?xml version="1.0" encoding="UTF-8"?>

<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/6.1/phpunit.xsd"
         backupGlobals="false"
         colors="true"
         bootstrap="vendor/autoload.php"
>
    <php>
        <ini name="error_reporting" value="-1" />
-        <server name="KERNEL_DIR" value="etc/" />
+        <server name="KERNEL_CLASS" value="App\Kernel" />
    </php>

    <testsuites>
        <testsuite name="Project Test Suite">
            <directory>tests/</directory>
        </testsuite>
    </testsuites>
</phpunit>
```

As it may cause issues when refactoring, I added a `class_exists` check with an appropriate exception to indicate the class is either not found or not autoloadable.

Commits
-------

4f68912552 [FrameworkBundle] KernelTestCase: allow to provide the kernel class with a var
2017-05-08 06:59:10 -07:00
Maxime Steinhausser
040edfec4a [FrameworkBundle] AbstractConfigCommand: do not try registering bundles twice 2017-05-08 10:50:08 +02:00
Maxime Steinhausser
4f68912552 [FrameworkBundle] KernelTestCase: allow to provide the kernel class with a var 2017-05-08 10:36:21 +02:00
Fabien Potencier
ec92b68bad minor #22653 [Workflow] fix use directives (ogizanagi)
This PR was merged into the 3.2 branch.

Discussion
----------

[Workflow] fix use directives

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

Spotted while creating https://github.com/symfony/symfony/pull/22652

Commits
-------

08f4ad2275 [Workflow] fix use directives
2017-05-07 20:43:20 -07:00
Fabien Potencier
33d6f5c327 fixed CS 2017-05-07 19:28:57 -07:00
Fabien Potencier
b81a6629ee Merge branch '2.8' into 3.2
* 2.8:
  fixed CS
  [DI] Fix PhpDumper blank lines around namespace
  fixed CS
  Filesystem: annotate the one network test with a "network" group.
  [DependencyInjection] Don't store default deprecation template in every service definition instance
2017-05-07 18:51:21 -07:00
Fabien Potencier
a23330bf1e fixed CS 2017-05-07 18:19:21 -07:00
Fabien Potencier
ae3d88c215 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Fix PhpDumper blank lines around namespace
2017-05-07 18:18:23 -07:00
Maxime Steinhausser
5b123b9674 [Security] Fix TraceableAccessDecisionManager / DebugAccessDecisionManager BC layer 2017-05-07 21:52:37 +02:00
Maxime Steinhausser
c9f6c1680f [DI] Fix PhpDumper blank lines around namespace 2017-05-07 19:29:35 +02:00
Javier Eguiluz
c21782dcae Tweaked the tabs of the logger profiler panel 2017-05-07 19:02:29 +02:00
Fabien Potencier
57129de78c Merge branch '2.7' into 2.8
* 2.7:
  fixed CS
  Filesystem: annotate the one network test with a "network" group.
2017-05-07 09:04:05 -07:00
Fabien Potencier
219bce9916 fixed CS 2017-05-07 09:03:57 -07:00
Fabien Potencier
f56245594c minor #22659 Improved the stack traces that don't contain a function (javiereguiluz)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Improved the stack traces that don't contain a function

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

When a trace doesn't have a method/function associated, we display `n/a` and the file path below it. This usually happens in the first line of the stack traces. I don't think this looks OK, so I'm proposing to change it as follows:

### Before

![before-exception](https://cloud.githubusercontent.com/assets/73419/25782450/ae521cc6-334b-11e7-9e22-b31342667f6c.png)

### After

![after-exception](https://cloud.githubusercontent.com/assets/73419/25782451/b1b9957e-334b-11e7-812f-8c24ab8872df.png)

Commits
-------

9457558457 Improved the stack traces that don't contain a function
2017-05-07 08:55:12 -07:00
Javier Eguiluz
9457558457 Improved the stack traces that don't contain a function 2017-05-07 17:32:13 +02:00
Fabien Potencier
66c4c35396 bug #22639 [WebLink][TwigBundle] Fix registration of the twig extension (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[WebLink][TwigBundle] Fix registration of the twig extension

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | See http://symfony.com/blog/new-in-symfony-3-3-weblink-component comments
| License       | MIT
| Doc PR        | N/A

BTW it is the only extension not using a classic service definition and adding the tag using the `Symfony\Bundle\TwigBundle\DependencyInjection\Compiler\ExtensionPass` class.

(Fabbot failure fixed in https://github.com/symfony/symfony/pull/22640)

Commits
-------

3d8a5646e7 [WebLink][TwigBundle] Fix registration of the twig extension
2017-05-07 08:24:22 -07:00
Fabien Potencier
56feeec7dc bug #22658 Make the exception pages work when the WebProfilerBundle is not installed (javiereguiluz)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Make the exception pages work when the WebProfilerBundle is not installed

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

Commits
-------

98353b0032 Make the exception pages work when the WebProfilerBundle is not installed
2017-05-07 08:23:41 -07:00
Fabien Potencier
b0236cef9b minor #22656 [DI][DX] Fix missing autoconfigure in container debug (Christopher Hertel)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI][DX] Fix missing autoconfigure in container debug

| 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

Added missing autoconfigure flag for `debug:container` with service id.

Commits
-------

f50afad839 fixed missing autoconfigure in container debug
2017-05-07 08:22:37 -07:00
Fabien Potencier
5b6928dbe9 bug #22657 [DI] Fix Cannot declare class ...\DefinitionDecorator, because the name is already in use (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Fix Cannot declare class ...\DefinitionDecorator, because the name is already in use

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

The `return` trick doesn't seem to work, and php is still trying to declare the `DefinitionDecorator` class, which causes the "Cannot declare class ...\DefinitionDecorator, because the name is already in use" error because of the `class_alias` previously declared in `ChildDefinition.php`.

This never happens as soon as the `ChildDefinition` class is used first, as the alias will take hand, but their are some situations, like in some unit test cases it can happen apparently, because `DefinitionDecorator` is used first.

Commits
-------

530849e4b5 [DI] Fix Cannot declare class ...\DefinitionDecorator, because the name is already in use
2017-05-07 08:20:56 -07:00
Javier Eguiluz
98353b0032 Make the exception pages work when the WebProfilerBundle is not installed 2017-05-07 17:01:53 +02:00
Maxime Steinhausser
530849e4b5 [DI] Fix Cannot declare class ...\DefinitionDecorator, because the name is already in use 2017-05-07 11:42:51 +02:00
Christopher Hertel
f50afad839 fixed missing autoconfigure in container debug 2017-05-07 00:45:28 +02:00
Maxime Steinhausser
08f4ad2275 [Workflow] fix use directives 2017-05-06 11:04:08 +02:00
Maxime Steinhausser
3fc80d10ef [Workflow] Move twig extension registration to twig bundle 2017-05-06 10:33:49 +02:00
Ryan Weaver
5a3c156798 Improving autowire exception when you type-hint a class and there is an interface alias available 2017-05-05 11:28:37 -04:00
Nicolas Grekas
dd5b7a632b [VarDumper] Fix dumping of non-nested stubs 2017-05-05 13:16:12 +02:00
Mathias Geat
7f416ede17 [FrameworkBundle] Add type hint for ContainerInterface to ControllerTrait 2017-05-05 12:24:11 +02:00
Maxime Steinhausser
3d8a5646e7 [WebLink][TwigBundle] Fix registration of the twig extension 2017-05-04 23:41:34 +02:00
Maxime Steinhausser
044cbaf1e1 [TwigBundle] Remove unecessary use to make fabbot happy 2017-05-04 23:27:16 +02:00
Michael Orlitzky
fd0dd57e74 Filesystem: annotate the one network test with a "network" group.
Tests that require network access can be problematic, because they
depend on some external state not under your control. That can lead to
"random" failures when the code in question actually works fine. The
Filesystem component has one such test, and this commit adds it to the
"network" group (for PHPUnit).

Doing so lets the user skip that particular test, by running phpunit
with the --exclude-group flag. We take advantage of this in Gentoo,
where every user has the ability to run the test suite but network
access is forbidden.
2017-05-04 11:16:15 -07:00
Fabien Potencier
f6043bb8f1 feature #22624 debug:container --types (classes/interfaces) (weaverryan)
This PR was squashed before being merged into the 3.3-dev branch (closes #22624).

Discussion
----------

debug:container --types (classes/interfaces)

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none, but needed in symfony/symfony-docs#7807
| License       | MIT
| Doc PR        | n/a

In Symfony 3.3, the *type* (i.e. class/interface) is the most important thing about a service. But, we don't have a way for the user to know *what* types are available. This builds on top of `debug:container` to make `debug:container --types`:

<img width="1272" alt="screen shot 2017-05-03 at 3 42 37 pm" src="https://cloud.githubusercontent.com/assets/121003/25678671/8bebacaa-3018-11e7-9cf6-b7654e2cae88.png">

I think we need this for 3.3, so I've made the diff as *small* as possible. We could make improvements for 3.4, but just *having* this is the most important. I could even remove `format` support to make the diff smaller.

~~This depends on #22385, which fixes a "bug" where private services aren't really shown.~~

Thanks!

Commits
-------

25a39c2682 debug:container --types (classes/interfaces)
2017-05-04 11:13:14 -07:00
Ryan Weaver
25a39c2682 debug:container --types (classes/interfaces) 2017-05-04 11:13:13 -07:00
Alan Bondarchuk
388ee467c5 [DependencyInjection] Don't store default deprecation template in every service definition instance 2017-05-04 20:21:54 +03:00
Nicolas Grekas
eeafabbf15 Merge branch '3.2'
* 3.2:
  [appveyor] Run the test suite on PHP 7.1
  [appveyor][3.x] Run the test suite on PHP 7.1
  [EventDispatcher] fix merge of #22541 from 2.8
  bumped Symfony version to 3.2.9
  updated VERSION for 3.2.8
  updated CHANGELOG for 3.2.8
  bumped Symfony version to 2.8.21
  updated VERSION for 2.8.20
  updated CHANGELOG for 2.8.20
  bumped Symfony version to 2.7.28
  updated VERSION for 2.7.27
  update CONTRIBUTORS for 2.7.27
  updated CHANGELOG for 2.7.27
2017-05-04 14:23:07 +02:00
Yonel Ceruto
7916ea9e47 Fix missing parenthesis 2017-05-03 17:49:07 -04:00
Robin Chalas
73c51987af Flag webserver commands as private 2017-05-03 21:56:11 +02:00
Fabien Potencier
f583291cea bug #22621 [Config] Fix resource tracking with new GlobResource (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Config] Fix resource tracking with new GlobResource

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

Right now, resource tracking is done via tracking of directories mtimes, which means a container is rebuilt each time a file is either removed or added, but not when an existing file is modified.
This looks nice on the surface.
BUT.
Most code editors do create a temporary file when you open your code, thus change the parent dir mtime, thus trigger a container rebuild.
When working with PSR-4 loaders, this means each time you just open a file, most of you will trigger a container rebuild.
This is bad :(

Here is a new GlobResource to fix this issue.

Commits
-------

9190e108c1 [Config] Fix resource tracking with new GlobResource
2017-05-03 12:38:16 -07:00
Fabien Potencier
deda9eac03 minor #22607 Add some missing docs for the web server bundle (fabpot)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Add some missing docs for the web server bundle

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

This is an alternative to #22471

Commits
-------

987a6819d2 added some missing docs for the web server bundle
2017-05-03 12:32:29 -07:00
Fabien Potencier
987a6819d2 added some missing docs for the web server bundle 2017-05-03 12:30:25 -07:00
Fabien Potencier
09f22f43e8 feature #22385 [DX][FrameworkBundle] Show private aliases in debug:container (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DX][FrameworkBundle] Show private aliases in debug:container

| 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/issues/16388 https://github.com/Haehnchen/idea-php-symfony2-plugin/issues/618
| License       | MIT
| Doc PR        | n/a

By building and compiling the container without `TYPE_REMOVING` passes, private aliases are available (shown when `--show-private` is passed). The ContainerBuilderDebugDumpPass now makes use of the ConfigCache component, removing the need for clearing the cache to get the debug:container output up to date (in sync with latest config).

Config
-------

```yaml
services:
    AppBundle\Foo:
        public: false

    foo_consumer1:
        class: AppBundle\Foo
        arguments: [ '@AppBundle\Foo' ]

    foo_consumer2:
        class: AppBundle\Foo
        arguments: [ '@AppBundle\Foo' ]

    foo_alias:
        alias: AppBundle\Foo

    foo_private_alias:
        public: false
        alias: AppBundle\Foo
```

Before
-------

![before](http://image.prntscr.com/image/2a69485a4a764316a90260b4e3dfc2a2.png)

After
------

![after](http://image.prntscr.com/image/ea42daa0e5c94841a28dd256450dc8ef.png)

Commits
-------

883723ef53 Show private aliases in debug:container
2017-05-03 12:26:38 -07:00
Fabien Potencier
c89d2f96e2 bug #22615 [DI] Defaults to public=false in all service config files (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Defaults to public=false in all service config files

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

This is what we call "eating your own dog food" :)
Made me realize that we need a tweak to the defaults<>ChildDefinition conflict we have now:
tags should be applied, and there should be *no* conflict when everything is set *explicitly* on the child definition.

Commits
-------

0656284f7f [DI] Defaults to public=false in all service config files
2017-05-03 12:16:37 -07:00
Jakub Zalas
00acb37205
[Intl] Update ICU data to 59.1 2017-05-03 19:20:02 +01:00
Nicolas Grekas
0656284f7f [DI] Defaults to public=false in all service config files 2017-05-03 19:24:51 +02:00
Nicolas Grekas
9190e108c1 [Config] Fix resource tracking with new GlobResource 2017-05-03 15:21:08 +02:00
maryo
9c08109739 Fix incorrectly calling PHP process on Windows when path contains space 2017-05-03 02:32:32 +02:00
rubenrua
49ea93a23c [Validator] Update Galician (gl) translations 2017-05-02 18:40:49 +02:00
rubenrua
0269f9d422 [FrameworkBundle] Fix "Locale class not found" in AboutCommand 2017-05-02 18:27:29 +02:00
Nicolas Grekas
0c704cf76a minor #22602 [EventDispatcher] fix merge of #22541 from 2.8 (dmaicher)
This PR was merged into the 3.2 branch.

Discussion
----------

[EventDispatcher] fix merge of #22541 from 2.8

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

This cleans up a test case that was merged from 2.8 into 3.2 here: 824dc8ba5f

@fabpot due to different implementations I created 2 PR's:

2.8: https://github.com/symfony/symfony/pull/22541
3.2: https://github.com/symfony/symfony/pull/22568

So the 2.8 merge into 3.2 of my change-set introduced some unused variable `$isWrapped` here: 824dc8ba5f (diff-af3c4fbca8bb77957c00087543ae5a4dR113)

This PR just cleans it up and also removes the data provider 😉

Commits
-------

f67eba8 [EventDispatcher] fix merge of #22541 from 2.8
2017-05-02 11:20:19 +02:00
Fabien Potencier
85e2d2f91d bumped Symfony version to 3.3.0 2017-05-01 11:49:34 -07:00
David Maicher
f67eba863c [EventDispatcher] fix merge of #22541 from 2.8 2017-05-01 20:34:19 +02:00
Fabien Potencier
b3937618a6 updated VERSION for 3.3.0-BETA1 2017-05-01 11:30:25 -07:00
Fabien Potencier
da26b3f32f bumped Symfony version to 3.2.9 2017-05-01 11:00:12 -07:00
Fabien Potencier
e3133489bc updated VERSION for 3.2.8 2017-05-01 10:46:48 -07:00
Fabien Potencier
1f1b5d4f9e bumped Symfony version to 2.8.21 2017-05-01 10:40:16 -07:00
Fabien Potencier
db017ebba2 updated VERSION for 2.8.20 2017-05-01 09:14:16 -07:00
Fabien Potencier
0e9a243bba bumped Symfony version to 2.7.28 2017-05-01 09:13:24 -07:00
Fabien Potencier
161bed58be updated VERSION for 2.7.27 2017-05-01 09:01:24 -07:00
Fabien Potencier
33d4bce1f9 Merge branch '3.2'
* 3.2:
  fixed tests
  fixed merge
  Fix minor phpdoc mismatches with the code(detected by phan)
  [Asset] Starting slash should indicate no basePath wanted
  [Security] Fix phpdoc logout listener
  [EventDispatcher] fix getting priorities of listeners during dispatch
  Add iconv extension to suggested dependencies
  Fix minor typo in the main README.md
  Allow Upper Case property names in ObjectNormalizer
  [EventDispatcher] fix: unwrap listeners for correct info
2017-05-01 08:01:29 -07:00
Fabien Potencier
c7a7170e0e fixed tests 2017-05-01 07:58:48 -07:00
Fabien Potencier
9c610ee1a2 fixed merge 2017-05-01 07:56:26 -07:00
Fabien Potencier
824dc8ba5f Merge branch '2.8' into 3.2
* 2.8:
  Fix minor phpdoc mismatches with the code(detected by phan)
  [Asset] Starting slash should indicate no basePath wanted
  [Security] Fix phpdoc logout listener
  Add iconv extension to suggested dependencies
  Fix minor typo in the main README.md
  Allow Upper Case property names in ObjectNormalizer
  [EventDispatcher] fix: unwrap listeners for correct info
2017-05-01 07:55:58 -07:00
Fabien Potencier
6000fafa27 Merge branch '2.7' into 2.8
* 2.7:
  Fix minor phpdoc mismatches with the code(detected by phan)
  [Asset] Starting slash should indicate no basePath wanted
  [Security] Fix phpdoc logout listener
  Fix minor typo in the main README.md
2017-05-01 07:31:55 -07:00
Fabien Potencier
3c9a7e4dc5 minor #22591 [Profiler] DataCollector: Remove unused static property (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Profiler] DataCollector: Remove unused static property

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

Unless I missed something, any usage of this property were removed in https://github.com/symfony/symfony/pull/21638.

Commits
-------

96743e69ad [Profiler] DataCollector: Remove unused static property
2017-05-01 07:29:48 -07:00
Ryan Weaver
037a782b91 Making tags under _defaults always apply and removing inherit_tags entirely
Now that inherit_tags has been removed, 3.3 has the same functionality as 3.2: tags
are *never* cascaded from parent to child (but you tags do inherit from defaults
to a service and instanceof to a service).
2017-05-01 09:36:02 -04:00
Maxime Steinhausser
96743e69ad [Profiler] DataCollector: Remove unused static property 2017-04-30 18:37:23 +02:00
Fabien Potencier
37ec869511 [Lock] remove the component from 3.3 2017-04-30 08:55:30 -07:00
Christophe Coevoet
82a6a35446 bug #22585 [Security] json login listener: ensure a json response is sent on bad request (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] json login listener: ensure a json response is sent on bad request

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

I would have simply recommended to set the proper format when declaring the route:

```yml
# routing.yml
api_login:
    path: /login
    defaults: { _format: json }
```

but, since https://github.com/symfony/symfony/pull/22477 has been merged, and considering https://github.com/symfony/symfony/pull/22477#issuecomment-295897629:

> my point above regarding checking the content type is so that one could use form_login and json_login in parallel on the same routes and within the same firewall

we may consider setting the request format to json when throwing the `BadRequestHttpException`, so used conjointly with the TwigBundle, the exception is rendered using the `exception.json.twig` template.

ping @lsmith77

(An alternative would be to check the Accept header to set the request format to json if it's the preferred one instead of doing it each time we throw the exception. But Symfony never used such content negotiation AFAIK, and I think it's safe enough to assume someone sending json is expecting json as ouput for exceptions.)

Commits
-------

4427cf9157 [Security] json login listener: ensure a json response is sent on bad request
2017-04-30 14:43:24 +02:00
Maxime Steinhausser
4427cf9157 [Security] json login listener: ensure a json response is sent on bad request 2017-04-30 11:12:10 +02:00
Iltar van der Berg
f81c57755d [DI] Test references inside ServiceLocator are not inlined 2017-04-29 20:26:40 +02:00
Nicolas Grekas
8783602946 [DI] Fix invalid callables dumped for ArgumentInterface objects 2017-04-29 20:26:39 +02:00
Roland Franssen
2967807b14 [Security] Avoid unnecessary route lookup for empty logout path 2017-04-29 20:08:02 +02:00
Robin Chalas
b6948ddb34 Fix tests 2017-04-29 19:49:33 +02:00
Fabien Potencier
8872833c5d feature #22527 [DI] Throw useful exception on bad XML argument tags (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Throw useful exception on bad XML argument tags

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

I still think that the feature request in #22525 would make things better.
But at least, let's make thing fail loudly, instead of silently today, with the associated usual wtfs :)

Commits
-------

91828ecd17 [DI] Throw useful exception on bad XML argument tags
2017-04-29 09:33:57 -07:00
Nicolas Grekas
91828ecd17 [DI] Throw useful exception on bad XML argument tags 2017-04-29 18:31:27 +02:00
Fabien Potencier
c84ee65b99 minor #22453 Fix minor phpdoc mismatches with the code(detected by phan) (TysonAndre)
This PR was squashed before being merged into the 2.7 branch (closes #22453).

Discussion
----------

Fix minor phpdoc mismatches with the code(detected by phan)

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

Fix minor mismatches between phpdoc and the type of the code itself, detected by etsy/phan (Prevent confusion in the future)
The actual return types of a few functions have changed from int to bool where preg_match or `&` was used.
Fix optional param before required param in src/Symfony/Component/Serializer/Normalizer/AbstractObjectNormalizer.php

The config used and the rest of the output is at https://gist.github.com/TysonAndre/91bed0e16583301f1e6e5cc2a4807081 (Uses some patches to etsy/phan that weren't merged to master yet)

Commits
-------

12f1239565 Fix minor phpdoc mismatches with the code(detected by phan)
2017-04-29 08:58:47 -07:00
Tyson Andre
12f1239565 Fix minor phpdoc mismatches with the code(detected by phan) 2017-04-29 08:58:46 -07:00
Fabien Potencier
35608f57d5 minor #22477 [Security] add Request type json check in json_login (lsmith77)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] add Request type json check in json_login

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

follow up to https://github.com/symfony/symfony/pull/22425 to limit the `UsernamePasswordJsonAuthenticationListener` to only requests with appropriate JSON content type.

I am not entirely happy with this implementation but mostly because Symfony out of the box only provides very limited content type negotiation. I guess anyone that wants to tweak the content negotiation will simply need to ensure the Request::$format is set accordingly before the code is triggered.

Commits
-------

045a36b303 add Request type json check in json_login
2017-04-29 08:53:46 -07:00
Fabien Potencier
5863e4b6a1 minor #22555 [Serializer] Add missing normalizer options constants (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Serializer] Add missing normalizer options constants

| Q             | A
| ------------- | ---
| Branch?       | master (3.3)
| Bug fix?      | not really
| New feature?  | yesish, but for 3.3 as those options were added on this branch and not released yet
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22537#discussion_r113719848
| License       | MIT
| Doc PR        | N/A

As seen in https://github.com/symfony/symfony/pull/22537#discussion_r113719848.

@dunglas : I'm not sure about the exposing the `key_type` option as a constant in `ArrayDenormalizer`/`AbstractObjectNormalizer`, as it looks more or less like a detail of the AbstractObjectNormalizer implementation, but anyway it should be in 3.2 if we add it, so I haven't included it here.
However, I wonder if this option shouldn't directly accept a string too, rather than just a `Symfony\Component\PropertyInfo\Type` instance if we want to consider this option "public"?

Commits
-------

b0c414f2c8 [Serializer] Add missing normalizer options constants
2017-04-29 08:51:18 -07:00
Fabien Potencier
1cef186dfe feature #22537 [Serializer] Allow to pass csv encoder options in context (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Serializer] Allow to pass csv encoder options in context

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

CSV contents typically are provided by one or many third-parties, not always allowing you to get control over the provided format. In case you need to import csv files with different formats, either you have to instantiate a decoder yourself/inject it instead of the main serializer instance, either you need another serializer instance with a differently configured csv encoder registered within.

This PR allows to configure any encoder option through the context, so you can keep injecting and using the same serializer instance.

Commits
-------

10a76aac15 [Serializer] Allow to pass csv encoder options in context
2017-04-29 08:50:00 -07:00
Fabien Potencier
07fc0602e1 bug #22550 Allow Upper Case property names in ObjectNormalizer (insekticid)
This PR was merged into the 2.8 branch.

Discussion
----------

Allow Upper Case property names in ObjectNormalizer

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

Same problem that has been fixed here https://github.com/symfony/symfony/pull/22265
and here https://github.com/api-platform/core/pull/1037

ObjectNormalizer returns $id instead of $Id. It is bad naming convention, but is possible

```php
class Entity {
    protected $Id;

    public function getId()
    {
        return $this->Id;
    }
}
```

Commits
-------

b2b4faa3c0 Allow Upper Case property names in ObjectNormalizer
2017-04-29 08:44:59 -07:00
Fabien Potencier
460fcbf23b bug #22569 [Security] Handle bad request format in json auth listener (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] Handle bad request format in json auth listener

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

In https://github.com/symfony/symfony/pull/22034, I wondered myself if we shouldn't throw a dedicated exception to handle bad formatted requests and give more inputs to the client by returning a 400 response with an explicit message.

~~Here is a suggestion, introducing a new `BadRequestFormatException` and using it in `UsernamePasswordJsonAuthenticationListener` whenever there is no custom failure handler set (but someone using its own handler should be able to treat the failure properly too).~~

As discussed with @chalasr , it seems better to directly throw a `BadRequestHttpException` as it's actually out of the whole security process. PR updated.

Commits
-------

93a8cb9cd4 [Security] Handle bad request format in json auth listener
2017-04-29 08:39:09 -07:00
Fabien Potencier
288d55f620 bug #22551 [Process] Ecaping of CLI arguments containing slashes on Windows (maryo)
This PR was squashed before being merged into the 3.3-dev branch (closes #22551).

Discussion
----------

[Process] Ecaping of CLI arguments containing slashes on Windows

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

Actually only the first argument - the command needs to be escaped but that would need another condition. I think it should be OK.

Commits
-------

0d073128de [Process] Ecaping of CLI arguments containing slashes on Windows
2017-04-29 08:36:13 -07:00
maryo
0d073128de [Process] Ecaping of CLI arguments containing slashes on Windows 2017-04-29 08:36:12 -07:00
Fabien Potencier
89979ca1eb feature #22563 Not allowing autoconfigure, instanceofConditionals or defaults for ChildDefinition (weaverryan)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Not allowing autoconfigure, instanceofConditionals or defaults for ChildDefinition

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes (removing risky behavior)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | see #22530
| License       | MIT
| Doc PR        | n/a

This PR *prohibits* using `autoconfigure`, `_instanceof` and `_defaults` for ChildDefinition.

Additionally, I added many "integration" test cases: we need to test and prove all edge cases. These are in the `integration/` directory: the `main.yml` file is parsed and compared to `expected.yml`. Both are in YAML to ease comparing the before/after. We need to check these out and make sure they're right and we're not missing anything else.

This PR removes MANY of the "wtf" cases, but there are still 4 that I know of... and of course they all deal with parent-child stuff :).

A) [MAJOR] [autoconfigure_parent_child_tags](https://github.com/symfony/symfony/pull/22563/files#diff-fd6cf15470c5abd40156e4e7dc4e7f6d) `instanceof` tags from autoconfigure are NEVER applied to the child (you can't set `autoconfigure` directly on a Child, but you still can set it on a parent and inherit it... sneaky). We could throw an Exception I suppose to prevent this `autoconfigure` from cascading from parent to child... but it's tricky due to `instanceof`.

B( [MAJOR] [instanceof_parent_child](https://github.com/symfony/symfony/pull/22563/files#diff-14666e9a25322d44b3c2c583b6814dc2) `instanceof` tags that are applied to the parent, are not applied to the child. Again, you can't set `instanceof` directly on a Child, but you *can* set it on a parent, and have that cascade to the child. Like before, we could maybe throw an exception to prevent this.

C) [MINOR] ([autoconfigure_child_not_applied](https://github.com/symfony/symfony/pull/22563/files#diff-3372a1dcaf3af30d14a7d0a6c8bfa988))  automatic `instanceof` will not be applied to the child when the parent class has a different (non-instanceof-ed) class. If we could throw an exception for (A), then it would cover this too.

D) `_tags` from defaults are never used (unless you have inherit_tags) - fixed in #22530

A, B & C are effectively caused by there being a "sneaky" way to re-enable `autoconfigure` and `instanceof` for ChildDefinition... which opens up wtf cases.

## Wait, why not support `_defaults`, `autoconfigure` and `_instanceof` for child definitions?

1 big reason: reduction of wtf moments where we arbitrarily decide override logic. PLUS, since `_defaults`, `instanceof` and `autoconfigure` *are* applied to parent definitions, in practice (other than tags), this makes no difference: the configuration will still pass from parent down to child.

Also, using parent-child definitions is already an edge case, and this *simply* prevents *just* those services from using the new features.

## Longer reasons why

The reason behind this is that parent-child definitions are a different mechanism for "inheritance"
than `_instanceof` and `_defaults`... creating some edge cases when trying to figure out which settings "win". For example:

```yml
# file1.yml
services:
    _defaults:
        public: false

    ChildService:
        parent: parent_service

# file2.yml
services:
    _defaults:
        public: true

    ParentService: ~
```

Is `ChildDefinition` `public: true` (so the parent
overrides the child, even though it only came from _defaults) or `public: false` (where
the child wins... even though it was only set from its _defaults)?

Or, if ParentService is explicitly set to `public: true`, should that override the `public: false` of ChildService (which it got from its `_defaults`)? On one hand, ParentService is being explicitly
set. On the other hand, ChildService is explicitly in a file settings `_defaults` `public: false`
There's no correct answer.

There are also problems with `_instanceof`. The importance goes:

> defaults < instanceof < service definition

But how do parent-child relationships fit into that? If a child has public: false
from an _instanceof, but the parent explicitly sets public: true, which wins? Should
we assume the parent definition wins because it's explicitly set? Or would the
_instanceof win, because that's being explicitly applied to the child definition's
class by an _instanceof that lives in the same file as that class (whereas the parent
definition may live in a different file).

Because of this, @nicolas-grekas and I (we also talked a bit to Fabien) decided that
the complexity was growing too much. The solution is to not allow any of these
new feature to be used by ChildDefinition objects. In other words, when you want some
sort of "inheritance" for your service, you should *either* giving your service a
parent *or* using defaults and instanceof. And instead of silently not applying
defaults and instanceof to child definitions, I think it's better to scream that it's
not supported.

Commits
-------

a943b96d42 Not allowing autoconfigure, instanceofConditionals or defaults for ChildDefinition
2017-04-29 08:25:33 -07:00
Fabien Potencier
8806628d43 bug #22579 [Console][HttpKernel] Avoid reflection-based registration for command public services (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Console][HttpKernel] Avoid reflection-based registration for command public services

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22410#issuecomment-298158585
| License       | MIT
| Doc PR        | n/a

By mapping commands ids by their alias in `console.command.ids` (even if the alias is not registered in the container for public services), then skipping reflection if the predictable alias exists as a key of `console.command.ids`.

Please note that the whole command service registration process is far from ideal.
I'm working on changing this for 3.4 in a transparent way regarding end users, leveraging PSR-11 to make the console component DI friendly, allowing to register commands as true private services (no more public aliases) and providing laziness for those.

Commits
-------

6c1b384b75 Avoid reflection-based registration for command public services
2017-04-29 08:24:25 -07:00
Christophe Coevoet
ceabf11b64 bug #22564 Fixing problem where _defaults set to null was seen as a service (weaverryan)
This PR was squashed before being merged into the 3.3-dev branch (closes #22564).

Discussion
----------

Fixing problem where _defaults set to null was seen as a service

| 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

```yml
services:
    _defaults:
```

If you leave `_defaults` empty (i.e. null), you got a bad error before. Now it's better :)

Before:
>The definition for "_defaults" has no class. If you intend to inject this service dynamicall
  y at runtime, please mark it as synthetic=true. If this is an abstract definition solely use
  d by child definitions, please add abstract=true, otherwise specify a class to get rid of th
  is error.

After:
> Service "_defaults" key must be an array, "NULL" given in "/path/to/services.yml"

Commits
-------

4b7e148a9b Fixing problem where _defaults set to null was seen as a service
2017-04-29 12:32:06 +02:00
Ryan Weaver
4b7e148a9b Fixing problem where _defaults set to null was seen as a service 2017-04-29 12:32:04 +02:00
Robin Chalas
6c1b384b75 Avoid reflection-based registration for command public services 2017-04-29 11:46:23 +02:00
Fabien Potencier
c669b88403 bug #22528 [Asset] Starting slash should indicate no basePath wanted (weaverryan)
This PR was squashed before being merged into the 2.7 branch (closes #22528).

Discussion
----------

[Asset] Starting slash should indicate no basePath wanted

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

**Important** View the second commit for an accurate diff. The first commit just renames some strings in a test for clarity.

When we moved `PathPackage` from `Templating` to `Asset`, we actually changed its behavior. Assume that we're deployed under a `/subdir` subdirectory:

**Before** `{{ asset('/main.css') }}` would *not* have the base path prefixed -> `/main.css`

**After** `{{ asset('/main.css') }}` *does* have the base path prefixed -> `/subdir/main.css`

3adff11d72/src/Symfony/Component/Templating/Asset/PathPackage.php (L61-L63)

This PR simply reverses that, to the *previous* behavior. This *is* a BC break... and also arguably a bug fix :). Interestingly, when we changed the behavior the first time (i.e. broke BC), I don't think that anyone noticed. It should only affect users deployed under a subdirectory.

Why do I care? I'm using the new `JsonManifestVersionStrategy` with a library that is outputting paths that *already* include my subdirectory:

```json
{
    "build/main.css": "/subdir/build/main.abc123.css"
}
```

So, I do not want Symfony to detect the `/subdir` and apply it a second time.

Commits
-------

3cc096b540 [Asset] Starting slash should indicate no basePath wanted
2017-04-28 16:08:26 -07:00
Ryan Weaver
3cc096b540 [Asset] Starting slash should indicate no basePath wanted 2017-04-28 16:08:24 -07:00
Ryan Weaver
a943b96d42 Not allowing autoconfigure, instanceofConditionals or defaults for ChildDefinition
Also, not allowing arguments or method calls for autoconfigure. This is a safety
mechanism, since we don't have merging logic. It will allow us to add this in the
future if we want to.

The reason is that parent-child definitions are a different mechanism for "inheritance"
than instanceofConditionas and defaults... creating some edge cases when trying to
figure out which settings "win". For example:

Suppose a child and parent definitions are defined in different YAML files. The
child receives public: false from its _defaults, and the parent receives public: true
from its _defaults. Should the final child definition be public: true (so the parent
overrides the child, even though it only came from _defaults) or public: false (where
the child wins... even though it was only set from its _defaults). Or, if the parent
is explicitly set to public: true, should that override the public: false of the
child (which it got from its _defaults)? On one hand, the parent is being explicitly
set. On the other hand, the child is explicitly in a file settings _defaults public
to false. There's no correct answer.

There are also problems with instanceof. The importance goes:
  defaults < instanceof < service definition

But how does parent-child relationships fit into that? If a child has public: false
from an _instanceof, but the parent explicitly sets public: true, which wins? Should
we assume the parent definition wins because it's explicitly set? Or would the
_instanceof win, because that's being explicitly applied to the child definition's
class by an _instanceof that lives in the same file as that class (whereas the parent
definition may live in a different file).

Because of this, @nicolas-grekas and I (we also talked a bit to Fabien) decided that
the complexity was growing too much. The solution is to not allow any of these
new feature to be used by ChildDefinition objects. In other words, when you want some
sort of "inheritance" for your service, you should *either* giving your service a
parent *or* using defaults and instanceof. And instead of silently not applying
defaults and instanceof to child definitions, I think it's better to scream that it's
not supported.
2017-04-28 17:09:21 -04:00
Ryan Weaver
ab0fd6e663 If a (non-global) instanceof does not exist, throw an exception 2017-04-28 14:07:50 -04:00
Roland Franssen
e843924c03 [Security] Fix phpdoc logout listener 2017-04-28 10:36:25 -07:00
Pierre Rineau
3cb2e5b7dd Fixes twig bundle project root dir discovery 2017-04-28 10:16:50 -07:00
Maxime Steinhausser
93a8cb9cd4 [Security] Handle bad request format in json auth listener 2017-04-28 14:46:31 +02:00
David Maicher
79b71c069d [EventDispatcher] fix getting priorities of listeners during dispatch 2017-04-28 13:59:53 +02:00
Julien Falque
13f17079ef
Add iconv extension to suggested dependencies 2017-04-28 08:26:40 +02:00
Maxime Steinhausser
b0c414f2c8 [Serializer] Add missing normalizer options constants 2017-04-27 17:51:26 +02:00
Nicolas Grekas
9d9f628d92 minor #22531 Throwing an exception if the class is not found (weaverryan)
This PR was squashed before being merged into the 3.3-dev branch (closes #22531).

Discussion
----------

Throwing an exception if the class is not found

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

We now throw an exception if the user makes a mistake with their PSR-4 prefix and namespace. For example:

```yml
AppBundle\Controller\:
    resource: '../../src/AppBundle/{Controller}'
    public: true
```

I should not have the `\Controller` at the end of the key. Previously, it would silently not import any services from the directory. Now it throws:

> Expected to find class "AppBundle\Controller\Controller\Admin\BlogController" in file "/path/to/project/src/AppBundle/Controller/Admin/BlogController.php" while importing services from resource "../../src/AppBundle/{Controller}", but it was not found! Check the namespace prefix used with the resource.

The only "downside" is that this prevents someone from importing files from a resource that has a file with no class in it (`functions.php`). @nicolas-grekas and I decided today that we can throw an exception now to be safe, and see if anyone has that valid use-case.

Cheers!

Commits
-------

e85bcc9 Throwing an exception if the class is not found
2017-04-27 10:37:41 -04:00
Ryan Weaver
e85bcc9e8d Throwing an exception if the class is not found 2017-04-27 10:37:33 -04:00
insekticid
b2b4faa3c0 Allow Upper Case property names in ObjectNormalizer
| Q                | A
| ---------------- | -----
| Bug report?      | yes
| Feature request? | no
| BC Break report? | yes
| RFC?             | no
| Symfony version  | 2.8.19

Same problem that has been fixed here https://github.com/symfony/symfony/pull/22265
and here https://github.com/api-platform/core/pull/1037

ObjectNormalizer returns $id instead of $Id. It is bad naming convention, but is possible

```php
class Entity {
    protected $Id;

    public function getId()
    {
        return $this->Id;
    }
}
```
2017-04-27 14:34:21 +02:00
Roland Franssen
dc375794a5 [FrameworkBundle] Remove deprecated session listener from class compilation 2017-04-27 12:05:49 +02:00
Lesnykh Ilia
2fa1628743
Fix misprint. 2017-04-27 10:47:28 +03:00
Fabien Potencier
b11822640a bug #22481 [FrameworkBundle] Restore 3.2-like behavior for FormPass, to help BC with Sonata (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle] Restore 3.2-like behavior for FormPass, to help BC with Sonata

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

I tried updating a Sonata project to 3.3, and found it broken.
The issue is that Sonata uses the constructor arguments of the `form.extension` to create its own `form.extension` service - but borrows its first args from the Symfony one.

Here is the form pass doing that:
https://github.com/sonata-project/SonataCoreBundle/blob/3.x/DependencyInjection/Compiler/FormFactoryCompilerPass.php
And the implementation of the form extension:
https://github.com/sonata-project/SonataCoreBundle/blob/3.x/DependencyInjection/SonataCoreExtension.php

Question: is this covered by the BC policy? It shouldn't to me, because that would prevent *any* service reconfiguration.

Thus, I'm proposing the attached patch, which basically reverts the deprecated `FormPass` in FrameworkBundle to its 3.2 state.

I added a check to the new `FormPass` in the Form component so that it doesn't overwrite such compatibility configurations.

See for corresponding fix on https://github.com/sonata-project/SonataCoreBundle/pull/399

Commits
-------

c97b08e6c0 [FrameworkBundle] Restore 3.2-like behavior for FormPass, to help BC with Sonata
2017-04-26 13:20:29 -04:00
Fabien Potencier
0257013308 minor #22475 [SecurityBundle] Enhance FirewallContext::getListeners() (ro0NL)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[SecurityBundle] Enhance FirewallContext::getListeners()

| 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/20417#discussion_r91704023, https://github.com/symfony/symfony/pull/20417#discussion_r91704145
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

I think @stof is right.. and the fact we can do this on master currently without the hassle.

cc @chalasr

Commits
-------

ba650783f5 [SecurityBundle] Enhance FirewallContext::getListeners()
2017-04-26 13:18:04 -04:00
David Maicher
d8c5869b7c [EventDispatcher] fix: unwrap listeners for correct info 2017-04-26 18:56:54 +02:00
Nicolas Grekas
0085a07acb Merge branch '3.2'
* 3.2:
  [Asset] Fix invalid assets.xml
  Preventing the base path or absolute URL from being prefixed incorrectly on an absolute URL
2017-04-26 10:23:43 -04:00
Nicolas Grekas
eb1e27737e Merge branch '2.8' into 3.2
* 2.8:
  [Asset] Fix invalid assets.xml
  Preventing the base path or absolute URL from being prefixed incorrectly on an absolute URL
2017-04-26 10:23:18 -04:00
Nicolas Grekas
1bee0adef1 Merge branch '2.7' into 2.8
* 2.7:
  Preventing the base path or absolute URL from being prefixed incorrectly on an absolute URL
2017-04-26 10:23:06 -04:00
Maxime Steinhausser
10a76aac15 [Serializer] Allow to pass csv encoder options in context 2017-04-26 16:04:52 +02:00
Fabien Potencier
345b8c287a minor #22529 [Asset] Fix invalid assets.xml (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[Asset] Fix invalid assets.xml

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

Fixes invalid xml definitions.

Commits
-------

de1b20ac58 [Asset] Fix invalid assets.xml
2017-04-26 08:53:26 -04:00
Fabien Potencier
fc1fe8decf bug #22526 [Asset] Preventing the base path or absolute URL from being prefixed incorrectly (weaverryan)
This PR was merged into the 2.7 branch.

Discussion
----------

[Asset] Preventing the base path or absolute URL from being prefixed incorrectly

| 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

Fixes an edge case (which I need) where the version strategy returns an absolute URL. Currently, if this happens, the baseUrl or basePath is prefixed - giving `https://baseurl.com/https://pathreturnedfromversioning.com` or `/basePath/https://pathreturnedfromversioning.com`.

I don't see any reason to prevent an absolute URL from being returned by the version strategy. And it's not a BC break, because the previous paths that were returned were nonsense.

Cheers!

Commits
-------

746c91eea4 Preventing the base path or absolute URL from being prefixed incorrectly on an absolute URL
2017-04-26 08:47:35 -04:00
Robin Chalas
cf6110225f Do not extend @final SessionListener internally 2017-04-26 14:32:32 +02:00
Nicolas Grekas
de1b20ac58 [Asset] Fix invalid assets.xml 2017-04-25 21:58:43 -04:00
Nicolas Grekas
8701cae777 Merge branch '3.2'
* 3.2:
  Fixed the flickering when loading complex profiler panels
  [Console] Fix bar width with multilines ProgressBar's format
  [DI] Add missing check in PhpDumper
  [Serializer] XmlEncoder: fix negative int and large numbers handling
  [Console] Fix dispatching throwables from ConsoleEvents::COMMAND
2017-04-25 21:46:15 -04:00
Nicolas Grekas
8a8d92d793 Merge branch '2.8' into 3.2
* 2.8:
  Fixed the flickering when loading complex profiler panels
  [DI] Add missing check in PhpDumper
  [Serializer] XmlEncoder: fix negative int and large numbers handling
  [Console] Fix dispatching throwables from ConsoleEvents::COMMAND
2017-04-25 21:39:17 -04:00
Nicolas Grekas
3adff11d72 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Add missing check in PhpDumper
  [Serializer] XmlEncoder: fix negative int and large numbers handling
  [Console] Fix dispatching throwables from ConsoleEvents::COMMAND
2017-04-25 21:38:53 -04:00
Fabien Potencier
00a33dd360 feature #22441 [Console] Review console.ERROR related behavior (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Console] Review console.ERROR related behavior

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

This PR is a follow up of #18140 that I wanted to do since a few weeks.
It enhances this work with fixes and behavior changes.
It embeds #22435 and resolves issues like the one described in #20808.

- makes ConsoleErrorEvent *not* extend the deprecated ConsoleExceptionEvent
- replace ConsoleErrorEvent::markErrorAsHandled by ConsoleErrorEvent::setExitCode
- triggers the deprecation in a more appropriate moment
- renames ExceptionListener to ErrorListener
- tweaks the behavior in relation to  #22435

Commits
-------

a7c67c9ab2 [Console] Review console.ERROR related behavior
2017-04-25 21:33:28 -04:00
Ryan Weaver
746c91eea4 Preventing the base path or absolute URL from being prefixed incorrectly on an absolute URL
If the version strategy returns an absolute URL, that should be the final URL.
2017-04-25 21:08:25 -04:00
Nicolas Grekas
d696b391a1 bug #22465 [Cache] Keep only hit/miss (not values) in TraceableAdapter/Cache (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Cache] Keep only hit/miss (not values) in TraceableAdapter/Cache

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

Right now, TraceableAdapter and TraceableCache both keep all fetched values.
This exhaustive reporting is too much data gathering to me.
Here is a PR that keeps only true/false for each hit/miss + all corresponding keys.
That can still be a lot of data (one item per fetched key) - but a bit better.
Should we go further in stats-only gathering? Or should we *not* do this and keep collecting *all* the values?
The PR also fixes "Traversable" handling.

ping @Nyholm

The profiler panel still works (although breaking lines in the middle of words is strange, but this is the profiler's CSS, nothing special to this specific case).

![capture du 2017-04-19 11-40-13](https://cloud.githubusercontent.com/assets/243674/25173586/f9615dd6-24f4-11e7-8d6f-36fb2437c3b6.png)

Commits
-------

0c73c5d [Cache] Keep only hit/miss (not values) in TraceableAdapter/Cache
2017-04-25 13:35:31 -04:00
Nicolas Grekas
97747808b2 minor #22498 [DI] Add missing check in PhpDumper (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] Add missing check in PhpDumper

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

Commits
-------

5cabf88 [DI] Add missing check in PhpDumper
2017-04-25 11:08:04 -04:00
Javier Eguiluz
e9132b3445 Fixed the flickering when loading complex profiler panels 2017-04-25 16:22:01 +02:00
Nicolas Grekas
a7c67c9ab2 [Console] Review console.ERROR related behavior 2017-04-25 10:16:45 -04:00
Fabien Potencier
2145f56920 bug #21958 [Console] Fix bar width with multilines ProgressBar's format (maidmaid)
This PR was squashed before being merged into the 3.2 branch (closes #21958).

Discussion
----------

[Console] Fix bar width with multilines ProgressBar's format

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

The bar width is badly recalculated when we use multilines (``\n``) and bar placeholer (``%bar%``) in ProgressBar's format. The bar width is reduced because multilines is considered as a big oneline. This PR fixes this.

Commits
-------

3d58ab5bad [Console] Fix bar width with multilines ProgressBar's format
2017-04-25 10:15:10 -04:00
Dany Maillard
3d58ab5bad [Console] Fix bar width with multilines ProgressBar's format 2017-04-25 10:15:09 -04:00
Fabien Potencier
81f48b80f3 bug #22435 [Console] Fix dispatching throwables from ConsoleEvents::COMMAND (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Fix dispatching throwables from ConsoleEvents::COMMAND

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

Exceptions thrown by `ConsoleEvents::COMMAND` listeners should be trigger `ConsoleEvents::EXCEPTION` events.
(best reviewed [ignoring whitespaces](https://github.com/symfony/symfony/pull/22435/files?w=1))

Commits
-------

6d6b04ae97 [Console] Fix dispatching throwables from ConsoleEvents::COMMAND
2017-04-25 10:03:21 -04:00
Fabien Potencier
b9ee33fd03 bug #22457 [DI] Allow service subscribers to leverage autowiring to know where their locator should be injected (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Allow service subscribers to leverage autowiring to know where their locator should be injected

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

Commits
-------

e407b3d42e [DI] Allow service subscribers to leverage autowiring to know where the locator should be injected
2017-04-25 09:50:48 -04:00
Fabien Potencier
63dca040e6 bug #22487 [Process] Fix BC break: "exec" should remain an internal "detail" (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Process] Fix BC break: "exec" should remain an internal "detail"

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

Commits
-------

eedcece20b [Process] Fix BC break: "exec" should remain an internal "detail"
2017-04-25 09:44:56 -04:00
Alex Rock Ancelet
e5758317b1
Update a test value for consistency 2017-04-24 12:32:00 +02:00
Javier Eguiluz
0a95d89ed7
Minor changes to make tests more readable 2017-04-24 12:31:34 +02:00
Alex Rock Ancelet
3bf7e490b0
[DotEnv] Don't override existing $_SERVER vars 2017-04-24 12:31:34 +02:00
Lukas Kahwe Smith
045a36b303
add Request type json check in json_login 2017-04-24 08:23:15 +02:00
Fabien Potencier
3471b58318 bug #22496 [DI] Fix inlining conflict by restricting IteratorArgument to Reference[] (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Fix inlining conflict by restricting IteratorArgument to Reference[]

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

`Reference` found in `ArgumentInterface::getValue()` are currently not inlined.
While trying to do so (hint: I failed), I noticed that the current code is broken for `IteratorArgument` which can contain anonymous `Definition` for now, which are then not inlined correctly.

This PR restricts `IteratorArgument` to arrays of `Reference`, and improves a few related things found while doing it.

(fabbot failure is false positive)

Commits
-------

4d3dce1c0f [DI] Fix inlining conflict by restricting IteratorArgument to Reference[]
2017-04-23 15:36:34 -07:00
Fabien Potencier
93b7530f20 bug #22478 [Serializer] XmlEncoder: fix negative int and large numbers handling (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Serializer] XmlEncoder: fix negative int and large numbers handling

| Q             | A
| ------------- | ---
| Branch?       | 2.7 <!-- see comment below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #22329, #22333 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | n/a

Alternative to #22333.

* Negative integers are now handled
* Float are now handled
* Large numbers are converted to float (as the `JsonEncoder` and native PHP functions like `ceil` do)

@vlastv, I've adapted your test. Can you check if it fixes your problem?

Commits
-------

1eeadb0c98 [Serializer] XmlEncoder: fix negative int and large numbers handling
2017-04-23 15:32:35 -07:00
Fabien Potencier
3d4b212a09 bug #22494 [Security] Fix json_login default success/failure handling (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] Fix json_login default success/failure handling

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

This makes the `json_login` listener default configuration stateless oriented by:

- Not using the default (redirect based) failure handler, it returns a 401 (json) response containing the failure reason instead
- Not using the default (redirect based) success handler, just let the original request continue instead (reaching the targeted resource without being redirected).
- Setting `require_previous_session` to `false` by default (I have to set it on `form-login` each time I want it to be stateless)
- Removing the options related to redirections (`default_target_path`, `login_path`, ...) from the listener factory, if one wants redirections then one has to write its own handlers, not the inverse

Commits
-------

9749618ff5 Fix json_login default success/failure handling
2017-04-23 15:21:45 -07:00
Nicolas Grekas
4d3dce1c0f [DI] Fix inlining conflict by restricting IteratorArgument to Reference[] 2017-04-21 14:38:43 +02:00
Nicolas Grekas
5cabf880d6 [DI] Add missing check in PhpDumper 2017-04-21 13:48:46 +02:00
Robin Chalas
9749618ff5 Fix json_login default success/failure handling 2017-04-21 10:18:17 +02:00
Robin Chalas
883723ef53 Show private aliases in debug:container 2017-04-21 00:49:45 +02:00
Javier Eguiluz
73d81de6d2 Fixed the rendering of exceptions inside the profiler 2017-04-20 21:57:39 +02:00
Fabien Potencier
26bc96ea77 fixed CS 2017-04-20 11:21:47 -06:00
Fabien Potencier
f730ffae49 feature #22234 [DI] Introducing autoconfigure: automatic _instanceof configuration (weaverryan)
This PR was squashed before being merged into the 3.3-dev branch (closes #22234).

Discussion
----------

[DI] Introducing autoconfigure: automatic _instanceof configuration

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes (mostly, a continuation of a new feature)
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | https://github.com/symfony/symfony-docs/issues/7538

This is a proposal to allow the user to opt into some automatic `_instanceof` config. Suppose I want to auto-tag all of my voters and event subscribers

```yml
# current
services:
    _defaults:
        autowire: true

    _instanceof:
        Symfony\Component\Security\Core\Authorization\Voter\VoterInterface:
            tags: [security.voter]

        Symfony\Component\EventDispatcher\EventSubscriberInterface:
            tags: [kernel.event_subscriber]

    # services using the above tags
    AppBundle\Security\PostVoter: ~
    AppBundle\EventListener\CheckRequirementsSubscriber: ~
```

If I'm registering a service with a class that implements `VoterInterface`, when would I ever *not* want that to be tagged with `security.voter`? Here's the proposed code:

```yml
# proposed
services:
    _defaults:
        autowire: true
        autoconfigure: true

    # services using the auto_configure_instanceof functionality
    AppBundle\Security\PostVoter: ~
    AppBundle\EventListener\CheckRequirementsSubscriber: ~
```

The user must opt into this and it only applies locally to this configuration file. It works because each enabled bundle would have the opportunity to add one or more "automatic instanceof" definitions - e.g. SecurityBundle would add the `security.voter` instanceof config, FrameworkBundle would add the `kernel.event_subscriber` instanceof config, etc.

For another example, you can check out the proposed changes to `symfony-demo` - symfony/symfony-demo#483 - the `_instanceof` section is pretty heavy: 81694ac21e/app/config/services.yml (L20)

Thanks!

Commits
-------

18627bf9f6 [DI] Introducing autoconfigure: automatic _instanceof configuration
2017-04-20 11:20:32 -06:00
Ryan Weaver
18627bf9f6 [DI] Introducing autoconfigure: automatic _instanceof configuration 2017-04-20 11:20:30 -06:00
Fabien Potencier
ad86e2dff0 feature #21502 Persist app bootstrapping logs for logger datacollector (ScullWM, nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Persist app bootstrapping logs for logger datacollector

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

Logs generated during the container build are catched by the BufferingLogger with a special flag.

They are persist by the LoggerDataCollector and are available in the logger profiler.
In the profiler toolbar, the "container build" logs increment the current logs counter (even if the container was previously built).

<img width="540" alt="capture d ecran 2017-02-01 a 20 56 40" src="https://cloud.githubusercontent.com/assets/1017746/22523826/0bc12e4a-e8c1-11e6-830f-7f6238ea7423.png">

<img width="1022" alt="capture d ecran 2017-02-01 a 20 57 55" src="https://cloud.githubusercontent.com/assets/1017746/22523859/2c48a698-e8c1-11e6-9bdb-d85f3e692938.png">

The BufferingLogger now require the cachePath and the filesystem to persist a (unique) container build logs.
If the current workflow is ok, I will update the test coverage (actually they fail). Maybe we can display the appDevDebugProjectContainerCompiler.log content in that logger profile.

Commits
-------

2fd18b5503 [VarDumper] Fine tune dumping log messages
ce3ef6a96e Persist app bootstrapping logs for logger datacollector
2017-04-20 11:12:40 -06:00
Fabien Potencier
f9bb4dccb8 minor #22480 [DI] Reduce memory overhead of id normalization (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Reduce memory overhead of id normalization

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

Commits
-------

1dd3285c91 [DI] Reduce memory overhead of id normalization
2017-04-20 11:03:47 -06:00
Nicolas Grekas
eedcece20b [Process] Fix BC break: "exec" should remain an internal "detail" 2017-04-20 19:01:24 +02:00
Christian Flothmann
35fe02f101 clarify constraint for the Asset component
The conflict rule already forbids installing releases before 3.3 of the
Asset component. This will bring the constraint in the `require-dev`
section inline with the conflict rule.
2017-04-20 15:59:31 +02:00
Nicolas Grekas
c97b08e6c0 [FrameworkBundle] Restore 3.2-like behavior for FormPass, to help BC with Sonata 2017-04-20 15:25:36 +02:00
Nicolas Grekas
1dd3285c91 [DI] Reduce memory overhead of id normalization 2017-04-20 10:02:26 +02:00
Fabien Potencier
9c0067b19f bug #22322 [Console] Fix fatal error when logging console.error without command (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Console] Fix fatal error when logging console.error without command

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

Happens now that the console.error event is dispatched on command not found, I  ran into using `server:run` on 3.3 without `web-server-bundle` enabled:

> PHP Fatal error:  Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Call to a member function getName() on null

In this case, this first tries to cast the event input as string (less good than when the command name is available, there're extra quotes around the command name) and, if can't be casted, uses a generic message.

Commits
-------

97129fc611 Fix fatal error when logging console.error without a command
2017-04-19 17:40:30 -06:00
Kévin Dunglas
1eeadb0c98
[Serializer] XmlEncoder: fix negative int and large numbers handling 2017-04-19 22:42:09 +02:00
Nicolas Grekas
04ae502b0d Merge branch '3.2'
* 3.2:
  Make .travis.yml more readable
  Fold Travis CI output by component
  [VarDumper] Minor tweaks to html/css dumps
  Add trhows PHPDoc in Application::run
  [Debug] Set exit status to 255 on error
  [HttpFoundation] Store IANA's RNG files in the repository
  [PropertyInfo] Remove a useless call to count() in SerializerExtractor
  [PropertyInfo] Prevent returning int values in some cases.
  [HttpFoundation] Fix getClientIp @return docblock
  Add @throws phpdoc
  unify PHPUnit config files
2017-04-19 22:25:39 +02:00
Nicolas Grekas
fc195dc4f9 Merge branch '2.8' into 3.2
* 2.8:
  Make .travis.yml more readable
  Fold Travis CI output by component
  Add trhows PHPDoc in Application::run
  [Debug] Set exit status to 255 on error
  [HttpFoundation] Store IANA's RNG files in the repository
  [PropertyInfo] Remove a useless call to count() in SerializerExtractor
  [PropertyInfo] Prevent returning int values in some cases.
  [HttpFoundation] Fix getClientIp @return docblock
  Add @throws phpdoc
  unify PHPUnit config files
2017-04-19 22:17:50 +02:00
Nicolas Grekas
9af7354e13 Merge branch '2.7' into 2.8
* 2.7:
  Make .travis.yml more readable
  Fold Travis CI output by component
  Add trhows PHPDoc in Application::run
  [Debug] Set exit status to 255 on error
  [HttpFoundation] Store IANA's RNG files in the repository
  [HttpFoundation] Fix getClientIp @return docblock
  Add @throws phpdoc
  unify PHPUnit config files
2017-04-19 21:56:30 +02:00
Nicolas Grekas
e407b3d42e [DI] Allow service subscribers to leverage autowiring to know where the locator should be injected 2017-04-19 21:52:02 +02:00
Roland Franssen
ba650783f5 [SecurityBundle] Enhance FirewallContext::getListeners() 2017-04-19 20:32:53 +02:00
Fabien Potencier
df155dd5b4 bug #22470 [SecurityBundle] conditionally register user checker FQCN alias (xabbuh)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[SecurityBundle] conditionally register user checker FQCN alias

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

Commits
-------

eede70a8a2 conditionally register user checker FQCN alias
2017-04-19 10:21:45 -06:00
Fabien Potencier
610a2385f6 feature #22459 [HttpKernel] Fix deprecation of Extension::addClassesToCompile() / AddClassesToCachePass (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[HttpKernel] Fix deprecation of Extension::addClassesToCompile() / AddClassesToCachePass

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

As done in https://github.com/symfony/symfony/pull/20735

Commits
-------

f4b5784dd9 [HttpKernel] Fix deprecation of Extension::addClassesToCompile() / AddClassesToCachePass
2017-04-19 10:18:46 -06:00
Christian Flothmann
eede70a8a2 conditionally register user checker FQCN alias 2017-04-19 15:35:51 +02:00
Nicolas Grekas
0c73c5d1f3 [Cache] Keep only hit/miss (not values) in TraceableAdapter/Cache 2017-04-19 11:39:36 +02:00
Fabien Potencier
6c7bceda81 bug #22425 [Security] Allow to set a check_path on json_login listener (chalasr)
This PR was squashed before being merged into the 3.3-dev branch (closes #22425).

Discussion
----------

[Security] Allow to set a check_path on json_login listener

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

The listener should allow to restrict authentication to a given check_path, as stated in the docs http://symfony.com/doc/master/security/json_login_setup.html

Commits
-------

9f7eb618a4 [Security] Allow to set a check_path on json_login listener
2017-04-18 16:20:19 -06:00
Robin Chalas
9f7eb618a4 [Security] Allow to set a check_path on json_login listener 2017-04-18 16:20:11 -06:00
Nicolas Grekas
f4b5784dd9 [HttpKernel] Fix deprecation of Extension::addClassesToCompile() / AddClassesToCachePass 2017-04-18 17:56:38 +02:00
Nicolas Grekas
86dbbde66f feature #22416 [FrameworkBundle][Workflow] Deprecate the default type of a workflow (lyrixx)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle][Workflow] Deprecate the default type of a workflow

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

---

Before this patch, the default type is "workflow". Most of the time a
"state_machine" is better because it's simpler and it involves less
knowledge to be able to use it.

So this patch deprecate a missing type in Symfony 3.3. And In Symfony
4.0 the default value will become "state_machine".

Commits
-------

004751c [FrameworkBundle][Workflow] Deprecate the default type of a workflow
2017-04-18 17:41:42 +02:00
Nicolas Grekas
1674f9218b bug #22422 [FrameworkBundle][Console][EventDispatcher] Fixed debug:event command (lyrixx)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle][Console][EventDispatcher] Fixed debug:event command

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

---

before:

![screenshot5](https://cloud.githubusercontent.com/assets/408368/25013888/bcd561ba-2075-11e7-8538-b977420640d2.png)

after:

![screenshot6](https://cloud.githubusercontent.com/assets/408368/25013894/c2bc9332-2075-11e7-97f6-ebfcca70b23b.png)

Commits
-------

9960b7e [FrameworkBundle][Console][EventDispatcher] Fixed debug:event command
2017-04-18 17:38:19 +02:00
Fabien Potencier
b72c11fd05 minor #22445 [Form] rename getTypedExtensions() to getTypeExtensions() (xabbuh)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Form] rename getTypedExtensions() to getTypeExtensions()

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

Commits
-------

099f626e4d rename getTypedExtensions() to getTypeExtensions()
2017-04-18 08:29:00 -06:00
Nicolas Grekas
3b83fe115b [VarDumper] Minor tweaks to html/css dumps 2017-04-18 12:10:25 +02:00
Fabien Potencier
e4f854d8c9 minor #22451 [DI] Enhance auto-registration failure message (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Enhance auto-registration failure message

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

Commits
-------

b23d5da1c3 [DI] Enhance auto-registration failure message
2017-04-17 14:36:54 -06:00
Fabien Potencier
9296a10b4b bug #22443 [HttpKernel] Fix identifier in request data collector (ro0NL)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[HttpKernel] Fix identifier in request data collector

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

3.2

![image](https://cloud.githubusercontent.com/assets/1047696/25063277/3fe8c57c-21e0-11e7-9bc3-c2edc679bd61.png)

master

![image](https://cloud.githubusercontent.com/assets/1047696/25063279/536803ec-21e0-11e7-8b95-c29c6e042c4f.png)

Commits
-------

009f87f74e [HttpKernel] Fix identifier in request data collector
2017-04-17 14:33:40 -06:00
Nicolas Grekas
2fd18b5503 [VarDumper] Fine tune dumping log messages 2017-04-17 18:48:03 +02:00
Thomas Perez
ce3ef6a96e Persist app bootstrapping logs for logger datacollector 2017-04-17 15:51:47 +02:00
Nicolas Grekas
b23d5da1c3 [DI] Enhance auto-registration failure message 2017-04-16 19:27:11 +02:00
Christian Flothmann
099f626e4d rename getTypedExtensions() to getTypeExtensions() 2017-04-15 14:35:45 +02:00
Roland Franssen
009f87f74e [HttpKernel] Fix identifier in request data collector 2017-04-15 13:32:48 +02:00
Nicolas Grekas
6d6b04ae97 [Console] Fix dispatching throwables from ConsoleEvents::COMMAND 2017-04-14 21:35:59 +02:00
Fabien Potencier
301bfa4bc4 minor #22430 [Console] Add throws PHPDoc in Application::run() (maidmaid)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Add throws PHPDoc in Application::run()

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

Same idea than merged #22411.

Commits
-------

28332afb38 Add trhows PHPDoc in Application::run
2017-04-14 07:55:35 -07:00
Robin Chalas
8fe122fc79 Move ValidateWorkflowsPass to the Workflow component 2017-04-14 12:36:38 +02:00
Fabien Potencier
5d83502ab5 bug #22424 [Debug] Set exit status to 255 on error (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Debug] Set exit status to 255 on error

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes (no easily testable in fact)
| Fixed tickets | #20775
| License       | MIT
| Doc PR        | -

Commits
-------

67e249dc81 [Debug] Set exit status to 255 on error
2017-04-13 15:15:37 -07:00
Dany Maillard
28332afb38 Add trhows PHPDoc in Application::run 2017-04-13 23:07:15 +02:00
Nicolas Grekas
67e249dc81 [Debug] Set exit status to 255 on error 2017-04-13 22:03:51 +02:00
Fabien Potencier
f5609e809c minor #22427 [PropertyInfo] Remove a useless call to count() in SerializerExtractor (dunglas)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo] Remove a useless call to count() in SerializerExtractor

| Q             | A
| ------------- | ---
| Branch?       |  2.8 <!-- see comment below -->
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

Commits
-------

7a8a72ddbf [PropertyInfo] Remove a useless call to count() in SerializerExtractor
2017-04-13 13:03:47 -07:00
Kévin Dunglas
4d2c454fad
[HttpFoundation] Store IANA's RNG files in the repository 2017-04-13 21:16:53 +02:00
Kévin Dunglas
7a8a72ddbf
[PropertyInfo] Remove a useless call to count() in SerializerExtractor 2017-04-13 21:08:13 +02:00
Kévin Dunglas
b190ec241e
[PropertyInfo] Prevent returning int values in some cases. 2017-04-13 21:00:55 +02:00
Robin Chalas
cd4a01c247 Don't create unused aliases for public command 2017-04-13 18:59:03 +02:00
Christian Flothmann
3cca48c715 respect inline level when dumping objects as maps 2017-04-13 18:51:11 +02:00
Grégoire Pineau
9960b7e1d4 [FrameworkBundle][Console][EventDispatcher] Fixed debug:event command 2017-04-13 18:24:39 +02:00
Fabien Potencier
5742958a49 minor #22418 [HttpFoundation] Fix getClientIp @return docblock (e-moe)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Fix getClientIp @return docblock

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

Commits
-------

af3424fb95 [HttpFoundation] Fix getClientIp @return docblock
2017-04-13 08:44:20 -07:00
Fabien Potencier
eff4feb7a1 minor #22411 [Console] Add @throws PHPDoc in Command::run() (maidmaid)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Add @throws PHPDoc in Command::run()

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

7489a14656 Add @throws phpdoc
2017-04-13 08:31:13 -07:00
Fabien Potencier
4f0daa740a feature #22420 [DI] Make tagged abstract services throw earlier (nicolas-grekas)
This PR was squashed before being merged into the 3.3-dev branch (closes #22420).

Discussion
----------

[DI] Make tagged abstract services throw earlier

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

As spotted by @stof in https://github.com/symfony/symfony/pull/22388#issuecomment-293565243, skipping abstract tagged services removes an opportunity to report config mistakes to users.

Instead of skipping them, let's throw as done before (thus reverting #22039, ping @chalasr).
I made `$container->findTaggedServiceIds()` accept a 2nd arg to make this more systematic.
To keep the possibility to have abstract tagged services *for the purpose of tag inheritance*, `ResolveTagsInheritancePass` now resets their tags.

Commits
-------

388e4b3389 [DI] Make tagged abstract services throw earlier
cd06c1297b Revert "minor #22039 Skip abstract definitions in compiler passes (chalasr)"
2017-04-13 08:28:14 -07:00
Fabien Potencier
64b715bb25 bug #22386 [DI] Fix inheriting defaults with instanceof conditionals (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Fix inheriting defaults with instanceof conditionals

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

Commits
-------

168765da0f [DI] Fix inheriting defaults with instanceof conditionals
2017-04-13 08:01:38 -07:00
Grégoire Pineau
004751c5e8 [FrameworkBundle][Workflow] Deprecate the default type of a workflow
Before this patch, the default type is "workflow". Most of the time a
"state_machine" is better because it's simpler and it involves less
knowledge to be able to use it.

So this patch deprecate a missing type in Symfony 3.3. And In Symfony
4.0 the default value will become "state_machine".
2017-04-13 16:36:11 +02:00
Nicolas Grekas
8596b19374 minor #22398 Enhancing integration test to show that "override" tags show up first (weaverryan)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Enhancing integration test to show that "override" tags show up first

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

Relates a bit to #22396, in that I'm clarifying and emphasizing the following types of situations:

```yml
services:
    _instanceof:
        Symfony\Component\Security\Core\Authorization\Voter\VoterInterface:
            tags:
                # you probably shouldn't set priority here, but let's pretend we did
                - { name: security.voter, priority: 100 }

    AppBundle\Security\CoolPersonVoter:
        tags:
            - { name: security.voter, priority: 50 }
```

In the final `Definition`, the tags will appear in this order:
* security.voter, priority 50
* security.voter, priority 100

It works the same for parent-child definitions.

tl;dr; If a service has the same tag multiple times, the one that should be used should appear *earlier* in the Definition. The code already works that way - this test emphasizes it.

Commits
-------

e9b96e5 Enhancing integration test to show that "override" tags always show up first
2017-04-13 16:15:41 +02:00
Nicolas Grekas
388e4b3389 [DI] Make tagged abstract services throw earlier 2017-04-13 15:45:25 +02:00
Nicolas Grekas
8e4e741a8f minor #22417 Add a note about the ServiceLocator class in the changelog (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Add a note about the ServiceLocator class in the changelog

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

In addition to have `container.service_locator` and `container.service_subscriber` based on, this class is useful on its own as it is the one avoiding the need for having the `Container` class filling this role.

Commits
-------

92994f3 Add a note about the ServiceLocator class in the changelog
2017-04-13 13:49:54 +02:00
Nikolay Labinskiy
af3424fb95 [HttpFoundation] Fix getClientIp @return docblock 2017-04-13 14:19:24 +03:00
Robin Chalas
92994f3f94 Add a note about the ServiceLocator class in the changelog 2017-04-13 11:59:51 +02:00
Nicolas Grekas
cd06c1297b Revert "minor #22039 Skip abstract definitions in compiler passes (chalasr)"
This reverts commit 207d068a40, reversing
changes made to 4836007172.
2017-04-13 10:36:10 +02:00
Nicolas Grekas
168765da0f [DI] Fix inheriting defaults with instanceof conditionals 2017-04-13 09:57:57 +02:00
Christian Flothmann
9d733177a4 relax FormPass test assertions
Relying on a precalculated hash makes the test very fragile as the hash
value changes with every change we make for some of the DI classes.
2017-04-13 09:22:50 +02:00
Dany Maillard
7489a14656 Add @throws phpdoc 2017-04-13 00:55:15 +02:00
Nicolas Grekas
46fc0b9363 Merge branch '3.2'
* 3.2:
  add changelog for the DUMP_OBJECT_AS_MAP flag
  Relax some mocks
2017-04-12 22:43:31 +02:00
Nicolas Grekas
3d9ad54015 minor #22405 [Yaml] add changelog for the DUMP_OBJECT_AS_MAP flag (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[Yaml] add changelog for the DUMP_OBJECT_AS_MAP flag

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

Adds missing changelog entry for the `DUMP_OBJECT_AS_MAP` flag introduced in #17728.

Commits
-------

8fd3602 add changelog for the DUMP_OBJECT_AS_MAP flag
2017-04-12 22:33:42 +02:00
Christian Flothmann
53ad49b4ef unify PHPUnit config files
* add XML namespace attributes
* remove attributes using default values
* remove unknown `syntaxCheck` option
2017-04-12 21:20:43 +02:00
Christian Flothmann
8fd3602d83 add changelog for the DUMP_OBJECT_AS_MAP flag 2017-04-12 21:06:01 +02:00
Christian Flothmann
f6da5dde3e fix remaining risky tests 2017-04-12 20:55:56 +02:00
Nicolas Grekas
61be73394e Relax some mocks 2017-04-12 20:12:51 +02:00
Nicolas Grekas
2c4e186339 fix merge 2017-04-12 19:09:14 +02:00
Nicolas Grekas
3deeb0cb73 Merge branch '3.2'
* 3.2:
  [2.8] Prevent double registrations related to tag priorities
  Prevent double registrations related to tag priorities
  [3.2] Prevent double registrations related to tag priorities
2017-04-12 18:56:48 +02:00
Fabien Potencier
766ae29f85 bug #22401 [3.2] Prevent double registrations related to tag priorities (nicolas-grekas)
This PR was merged into the 3.2 branch.

Discussion
----------

[3.2] Prevent double registrations related to tag priorities

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

#22396 and #22399 on 3.2

Commits
-------

ec6a2f9eba [3.2] Prevent double registrations related to tag priorities
2017-04-12 09:53:37 -07:00
Fabien Potencier
79d2c0e2ca Merge branch '2.8' into 3.2
* 2.8:
  [2.8] Prevent double registrations related to tag priorities
  Prevent double registrations related to tag priorities
2017-04-12 09:52:46 -07:00
Fabien Potencier
d564c6ad7d bug #22399 [2.8] Prevent double registrations related to tag priorities (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[2.8] Prevent double registrations related to tag priorities

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

#22396 on 2.8

Commits
-------

2be5821743 [2.8] Prevent double registrations related to tag priorities
2017-04-12 09:50:09 -07:00
Fabien Potencier
c839532f5c Merge branch '2.7' into 2.8
* 2.7:
  Prevent double registrations related to tag priorities
2017-04-12 09:49:00 -07:00
Nicolas Grekas
2be5821743 [2.8] Prevent double registrations related to tag priorities 2017-04-12 18:45:59 +02:00
Fabien Potencier
92eb9e1616 bug #22396 Prevent double registrations related to tag priorities (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

Prevent double registrations related to tag priorities

| 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 current logic is inconsistent, and allows the same id to be used several times. This makes the first explicit priority to always win.

Commits
-------

6764dcdf39 Prevent double registrations related to tag priorities
2017-04-12 09:30:10 -07:00
Nicolas Grekas
f24a1a89a0 Merge branch '3.2'
* 3.2:
  use risky tests free version of the Form component
2017-04-12 17:55:13 +02:00
Nicolas Grekas
6764dcdf39 Prevent double registrations related to tag priorities 2017-04-12 17:35:56 +02:00
Nicolas Grekas
ec6a2f9eba [3.2] Prevent double registrations related to tag priorities 2017-04-12 17:25:29 +02:00
Christian Flothmann
e581fdadea use risky tests free version of the Form component 2017-04-12 17:22:35 +02:00
Ryan Weaver
e9b96e5f44 Enhancing integration test to show that "override" tags always show up first 2017-04-12 10:34:49 -04:00
Fabien Potencier
4e13eeecfb bug #22390 [FrameworkBundle] Fix serializer aliases (jvasseur)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle] Fix serializer aliases

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

Fix serializer aliases introduced in #22098

Commits
-------

22e72d0a62 Fix serializer aliases
2017-04-12 07:20:30 -07:00
Fabien Potencier
9541264c2b bug #22393 [TwigBundle] Fix log message formatting in exception views (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[TwigBundle] Fix log message formatting in exception views

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

| __Before__      |
| ------------- |
| ![before](http://image.prntscr.com/image/984005e787ea4418a75e76d968f3af14.png)   |

| __After__        |
| ------------- |
| ![after](http://image.prntscr.com/image/608331f67030455d9bb1eaeec2bc4eb8.png)   |

Commits
-------

0f9660b854 Fix log message formatting in exception views
2017-04-12 07:18:23 -07:00
Fabien Potencier
0c19ca8af9 feature #22384 [DI] Replace autowiring BC break by regular deprecation (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Replace autowiring BC break by regular deprecation

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

It happens that doing so is really easy now. And as discussed in #22295, this should be more friendly to our users.

Commits
-------

0ed087d972 [DI] Replace autowiring BC break by regular deprecation
2017-04-12 07:16:24 -07:00
Fabien Potencier
2f885ccc4c fail when detecting risky tests 2017-04-12 07:15:58 -07:00
Fabien Potencier
03acba5341 Merge branch '3.2'
* 3.2:
  fail when detecting risky tests
  fail when detecting risky tests
  fail when detecting risky tests
2017-04-12 07:14:56 -07:00
Fabien Potencier
0834f133ec fail when detecting risky tests 2017-04-12 07:14:23 -07:00
Fabien Potencier
d7a0737d72 Merge branch '2.8' into 3.2
* 2.8:
  fail when detecting risky tests
  fail when detecting risky tests
2017-04-12 07:13:17 -07:00
Fabien Potencier
6edd08d7c5 fail when detecting risky tests 2017-04-12 07:11:35 -07:00
Fabien Potencier
d362bb1936 Merge branch '2.7' into 2.8
* 2.7:
  fail when detecting risky tests
2017-04-12 07:07:15 -07:00
Fabien Potencier
48b048d864 feature #22383 added a more specialized exception for a better error message (fabpot)
This PR was merged into the 3.3-dev branch.

Discussion
----------

added a more specialized exception for a better error message

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

When trying to load a resource, it is very interesting to understand why a resource cannot be loaded. Especially when you get `Cannot load resource "../src/Controller/".`... when the real error is that annotation support is disabled. This PR adds more information in that case.

Commits
-------

aeb9bffa8f added a more specialized exception for a better error message
2017-04-12 06:59:41 -07:00
Asmir Mustafic
4f5c149798 Test case for not in-lined map-objects 2017-04-12 14:58:48 +02:00
Robin Chalas
0f9660b854 Fix log message formatting in exception views 2017-04-12 13:47:16 +02:00
Jérôme Vasseur
22e72d0a62 Fix serializer aliases 2017-04-12 12:44:19 +02:00
Christian Flothmann
3792ee6c93 fail when detecting risky tests 2017-04-12 09:39:27 +02:00
Nicolas Grekas
0ed087d972 [DI] Replace autowiring BC break by regular deprecation 2017-04-11 23:14:08 +02:00
Fabien Potencier
aeb9bffa8f added a more specialized exception for a better error message 2017-04-11 13:45:43 -07:00
Nicolas Grekas
9fdd36f23d Merge branch '3.2'
* 3.2:
  Fix bad merge
2017-04-11 22:43:03 +02:00
Nicolas Grekas
e71807bc60 Fix bad merge 2017-04-11 22:42:49 +02:00
Nicolas Grekas
6491fd5854 Merge branch '3.2'
* 3.2:
  Allow terminal dimensions to be set to 0 (unbounded)
  [Cache] Remove exception false-positive from FilesystemAdapterTrait
  fix risky tests
  fix risky tests
  [Yaml] release memory after parsing
  [HttpFoundation] Fix and test status codes according to IANA's data
  Add `use_strict_mode` in validOptions for session
  [Console] Inherit phpdoc from OutputFormatterInterface
2017-04-11 20:40:10 +02:00
Fabien Potencier
5b4091ed7c bug #22372 [DI] Allow using parameters in "prototype" resource paths (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Allow using parameters in "prototype" resource paths

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

Commits
-------

d3fc86c709 [DI] Allow using parameters in "prototype" resource paths
2017-04-11 11:36:38 -07:00
Nicolas Grekas
a2bd375f60 Merge branch '2.8' into 3.2
* 2.8:
  fix risky tests
  [Yaml] release memory after parsing
  [HttpFoundation] Fix and test status codes according to IANA's data
  Add `use_strict_mode` in validOptions for session
  [Console] Inherit phpdoc from OutputFormatterInterface
2017-04-11 20:36:00 +02:00
Nicolas Grekas
0bc5eea71e Merge branch '2.7' into 2.8
* 2.7:
  [Yaml] release memory after parsing
  [HttpFoundation] Fix and test status codes according to IANA's data
  Add `use_strict_mode` in validOptions for session
  [Console] Inherit phpdoc from OutputFormatterInterface
2017-04-11 20:34:35 +02:00
Fabien Potencier
bca09e4933 bug #22374 [Cache] Remove exception false-positive from FilesystemAdapterTrait (nicolas-grekas)
This PR was merged into the 3.2 branch.

Discussion
----------

[Cache] Remove exception false-positive from FilesystemAdapterTrait

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

As reported in the linked issue, there seem to be a race condition in FilesystemAdapterTrait (maybe related to realpath cache?).

Let's remove that exception: if the mkdir really fails, the error will be logged later on when a cache entry will be written (or succeed if the race is over.)

Commits
-------

a756db78d0 [Cache] Remove exception false-positive from FilesystemAdapterTrait
2017-04-11 11:23:14 -07:00
Nicolas Grekas
d3fc86c709 [DI] Allow using parameters in "prototype" resource paths 2017-04-11 20:16:57 +02:00
Fabien Potencier
8d34959fe9 minor #22380 fix risky tests (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

fix risky tests

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

Commits
-------

9125911668 fix risky tests
2017-04-11 09:38:31 -07:00
Fabien Potencier
9950b90bb6 feature #22356 [DI] Rework config hierarchy: defaults > instanceof > service config (weaverryan, nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Rework config hierarchy: defaults > instanceof > service config

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

Replaces #22294.
The main change is that ChildDefinition does not have "instanceof" applied anymore. All the complexity of the pass came from the merging logic required to deal with them. But in fact, we'd better not have any such logic and just not apply "instanceof" to ChildDefinition (but have them inherit from their parents with the usual logic).

Commits
-------

6d6116b920 Adding an integration test for the hirarchy of defaults, instanceof, child, parent definitions
ab86457b12 [DI] Rework config hierarchy: defaults > instanceof > service config
cbaee55223 [DI] Track changes at the "Definition" level
2017-04-11 09:32:21 -07:00
Craig Duncan
4c1b001891 Allow terminal dimensions to be set to 0 (unbounded) 2017-04-11 16:41:42 +01:00
Fabien Potencier
44008e8a98 minor #22378 CS fixes (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

CS fixes

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

Commits
-------

e9ce2687de CS fixes
2017-04-11 08:25:15 -07:00
Fabien Potencier
e904ab8cbe bug #22376 [FrameworkBundle] Use findDefinition() instead of getDefinition() on aliases (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle] Use findDefinition() instead of getDefinition() on aliases

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

The services for which `has()` is called might be aliases at this point so `getDefinition()` gives an exception, I ran into by executing this pass but not the removing ones (skipping ReplaceAliasByActualDefinitionPass) while working on https://github.com/symfony/symfony/issues/16388. Let's make it safe to use independently.

Commits
-------

41f3d1f166 Use findDefinition() instead of getDefinition() after calling has()
2017-04-11 08:18:29 -07:00
Robin Chalas
e9ce2687de CS fixes 2017-04-11 17:15:30 +02:00
Ryan Weaver
6d6116b920 Adding an integration test for the hirarchy of defaults, instanceof, child, parent definitions 2017-04-11 16:40:02 +02:00
Fabien Potencier
a6dbc39112 bug #22364 [Dotenv] Throwing an error when loading nothing (sanpii)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Dotenv] Throwing an error when loading nothing

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

This is a quick fix to prevent anoying when you follow a tutorial using another dotenv component. For example, this code uses [vlucas/phpdotenv](https://packagist.org/packages/vlucas/phpdotenv):

```php
$dotenv = new Dotenv\Dotenv(__DIR__.'/../');
$dotenv->load();
```

Silently failed with symfony/dotenv.

Commits
-------

911bc68991 [Dotenv] Throwing an error when loading nothing
2017-04-11 07:29:46 -07:00
Robin Chalas
41f3d1f166 Use findDefinition() instead of getDefinition() after calling has() 2017-04-11 16:03:41 +02:00
Sanpi
911bc68991 [Dotenv] Throwing an error when loading nothing 2017-04-11 15:47:47 +02:00
Nicolas Grekas
a756db78d0 [Cache] Remove exception false-positive from FilesystemAdapterTrait 2017-04-11 15:28:15 +02:00
Christian Flothmann
9125911668 fix risky tests 2017-04-11 11:53:09 +02:00
Nicolas Grekas
35afac00a0 bug #22368 [Bridge] [Twig] get and flush only flash sessions you need in getFlashes method (jordscream)
This PR was squashed before being merged into the 3.3-dev branch (closes #22368).

Discussion
----------

[Bridge] [Twig] get and flush only flash sessions you need in getFlashes method

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no ?!
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #22359
| License       | MIT
| Doc PR        | symfony/symfony-docs

@xabbuh comments about empty array to return

Commits
-------

33b044a [Bridge] [Twig] get and flush only flash sessions you need in getFlashes method
2017-04-11 11:36:34 +02:00
Jordan Samouh
33b044adb1 [Bridge] [Twig] get and flush only flash sessions you need in getFlashes method 2017-04-11 11:36:26 +02:00
Christian Flothmann
86b685f617 fix risky tests 2017-04-11 11:19:47 +02:00
Kévin Dunglas
b7ac772994
[FrameworkBundle] Fix web_link.add_link_header_listener definition 2017-04-11 11:15:03 +02:00
Kévin Dunglas
e31341a855
[WebLink] Fix tests 2017-04-11 10:27:21 +02:00
Christian Flothmann
c891413f6c [Yaml] release memory after parsing 2017-04-11 09:50:01 +02:00
Fabien Potencier
8807eaf30b feature #22362 [DI] Populate class of ChildDefinition when its id matches an existing FQCN (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Populate class of ChildDefinition when its id matches an existing FQCN

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

See linked issue for expected DX.
Instead of doing a "continue", let's throw to force the resolution of any ambiguities.
There is a minor potential BC Break, if one uses an ambiguous FQCN as child-definition id in 3.2 or below.
To me, this should be rare, and easy to fix (compile time only).
The DX enhancement this PR provides looks worth it.

> Service definition "App\Foo\Child" has a parent but no class, and its name looks like a FQCN. Either the class is missing or you want to inherit it from the parent service. To resolve this ambiguity, please rename this service to a non-FQCN (e.g. using dots), or create the missing class.

Commits
-------

3200d3738a [DI] Populate class of ChildDefinition when its id matches an existing FQCN
2017-04-10 18:20:21 -07:00
Fabien Potencier
bbb0d5ed42 feature #22239 [Finder] Glob wildcard while using double-star without ending slash (sroze)
This PR was squashed before being merged into the 3.3-dev branch (closes #22239).

Discussion
----------

[Finder] Glob wildcard while using double-star without ending slash

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

This PR allows to use the `Glob::toRegex` method to dump a glob that will match "everything after" while using the double-star without leading slash. `/foo/**` will therefore match `/foo/a` or `/foo/a/b/c` or even `/foo/a/b/c/d.e`.

The use-case for this change is an application allowing its users to match a list of files/folders from such glob pattern.

Happy to add a line in the CHANGELOG and documentation if you feel that would make sense.

Commits
-------

170b0ace2c [Finder] Glob wildcard while using double-star without ending slash
2017-04-10 10:50:33 -07:00
Samuel ROZE
170b0ace2c [Finder] Glob wildcard while using double-star without ending slash 2017-04-10 10:50:31 -07:00
Fabien Potencier
f8e1098712 minor #22342 [Console] Inherit phpdoc from OutputFormatterInterface (ro0NL)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Inherit phpdoc from OutputFormatterInterface

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22225#discussion_r109361374
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

Commits
-------

ff3cb9cb27 [Console] Inherit phpdoc from OutputFormatterInterface
2017-04-10 10:33:28 -07:00
Fabien Potencier
f7debe8a30 bug #22343 [Dotenv] Throwing an exception when loading a directory (sanpii)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Dotenv] Throwing an exception when loading a directory

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

Commits
-------

8b83b58aa5 Throwing an exception when loading a directory
2017-04-10 10:15:08 -07:00
Fabien Potencier
eeb36eb65f bug #22344 [DX] [TwigBundle] Improve default expand states of exception template (curry684)
This PR was squashed before being merged into the 3.3-dev branch (closes #22344).

Discussion
----------

[DX] [TwigBundle] Improve default expand states of exception template

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #22334
| License       | MIT

As discussed in #22334 this PR changes the default exception template to more intelligently decide which call stack to initially expand:
- All exceptions are scanned for user code, ignoring the front controller and callbacks
- Only exceptions containing user code are expanded
- If no user code is found the first exception is expanded

Commits
-------

df25691250 [DX] [TwigBundle] Improve default expand states of exception template
2017-04-10 10:12:04 -07:00
Niels Keurentjes
df25691250 [DX] [TwigBundle] Improve default expand states of exception template 2017-04-10 10:12:01 -07:00
Fabien Potencier
dbfea949fe bug #22361 [HttpKernel et al.] Move DataCollector::cloneVar() to lateCollect() (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[HttpKernel et al.] Move DataCollector::cloneVar() to lateCollect()

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

<!--
- 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.
- Please fill in this template according to the PR you're about to submit.
- Replace this comment by a description of what your PR is solving.
-->

Commits
-------

f83f971c3f [HttpKernel et al.] Move DataCollector::cloneVar() to lateCollect()
2017-04-10 10:08:49 -07:00
Fabien Potencier
bf7d08d119 [WebLink] fixed composer keyword 2017-04-10 10:04:52 -07:00
Fabien Potencier
5a76834aea feature #22273 Add a new Link component (dunglas)
This PR was squashed before being merged into the 3.3-dev branch (closes #22273).

Discussion
----------

Add a new Link component

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  |no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | todo

This a proposal to extract HTTP preloading features introduced in #21478 in their own component.

There are some good reasons to do it:

* HTTP preloading is not (only) about assets: this standalone component could be very useful to replace resources embedding in APIs by HTTP/2 pushes like described in [this article](https://evertpot.com/rest-embedding-hal-http2/) by @evert. In such case, there is no reason to carry the whole asset component for an API.
* There is no dependency nor relation at all between the code of the asset compnent and the one I've added for Preloading features
* It makes the code cleaner (no more optional dependency in the `Asset` Twig extension)

This component would also better fit in HttpFoundation than in Asset. But there is no dependency between it and HttpFoundation and it can easily be used with PSR-7 too, so IMO it better belongs in a standalone component.

Btw, ~~~I plan to add support for prefetching to this component. Except a PR soon.~~~ Prefetching and prerendering support added in this PR.

ping @symfony/deciders

Commits
-------

053de25edf Add a new Link component
2017-04-10 09:55:53 -07:00
Kévin Dunglas
053de25edf Add a new Link component 2017-04-10 09:55:52 -07:00
Nicolas Grekas
3200d3738a [DI] Populate class of ChildDefinition when its id matches an existing FQCN 2017-04-10 18:46:19 +02:00
Nicolas Grekas
ab86457b12 [DI] Rework config hierarchy: defaults > instanceof > service config 2017-04-10 18:14:18 +02:00
Ryan Weaver
cbaee55223 [DI] Track changes at the "Definition" level 2017-04-10 18:14:17 +02:00
Nicolas Grekas
f83f971c3f [HttpKernel et al.] Move DataCollector::cloneVar() to lateCollect() 2017-04-10 18:00:26 +02:00
Fabien Potencier
aada1a14cc bug #22358 [DI] Fix named args overridding (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Fix named args overridding

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

(The exception check in ResolveDefinitionTemplatesPass is not done in ResolveNamedArgumentsPass.)

Commits
-------

0c030d92f9 [DI] Fix named args overridding
2017-04-10 08:25:06 -07:00
Fabien Potencier
6d8c53ee76 added a comment in a test 2017-04-10 08:21:06 -07:00
Fabien Potencier
63592a646c bug #22352 [HttpFoundation] Add use_strict_mode in validOptions for session (sstok)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Add `use_strict_mode` in validOptions for session

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

PHP ini `session.use_strict_mode` was added in PHP 5.5.2 so I didn't target 2.8 as this still uses PHP 5.3. https://secure.php.net/manual/en/session.configuration.php#ini.session.use-strict-mode

Commits
-------

130ee327d4 Add `use_strict_mode` in validOptions for session
2017-04-10 08:18:38 -07:00
Jordan Samouh
ff82cb29bb [Bridge] [Twig] AppVariable: get and flush only flash sessions you need in getFlashes method 2017-04-10 16:49:57 +02:00
Nicolas Grekas
0c030d92f9 [DI] Fix named args overridding 2017-04-10 16:38:35 +02:00
Kévin Dunglas
72d25ccca7
[HttpFoundation] Fix and test status codes according to IANA's data 2017-04-10 16:36:56 +02:00
Christian Flothmann
bc93526731 Merge branch '3.2'
* 3.2:
  don't keep internal state between parser runs
  Add \Traversable typehint to phpdoc
  [ExpressionLanguage] Avoid dependency on ctype
  Moved ->setDate() before the deprecation handling.
  [Debug] Fix php notice
  [VarDumper] Relax tests to adapt for php 7.1rc4
2017-04-10 08:31:22 +02:00
Christian Flothmann
d41a3a56c2 Merge branch '2.8' into 3.2
* 2.8:
  don't keep internal state between parser runs
  Add \Traversable typehint to phpdoc
  [ExpressionLanguage] Avoid dependency on ctype
  [Debug] Fix php notice
  [VarDumper] Relax tests to adapt for php 7.1rc4
2017-04-09 22:04:44 +02:00
Christian Flothmann
b89ed60442 Merge branch '2.7' into 2.8
* 2.7:
  don't keep internal state between parser runs
  Add \Traversable typehint to phpdoc
  [ExpressionLanguage] Avoid dependency on ctype
  [Debug] Fix php notice
2017-04-09 20:13:48 +02:00
Sebastiaan Stok
130ee327d4
Add use_strict_mode in validOptions for session 2017-04-09 18:30:35 +02:00
Fabien Potencier
34655e69dd bug #22351 [Yaml] don't keep internal state between parser runs (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Yaml] don't keep internal state between parser runs

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

Commits
-------

faf671db0f don't keep internal state between parser runs
2017-04-09 07:34:06 -07:00
Christian Flothmann
faf671db0f don't keep internal state between parser runs 2017-04-09 10:04:00 +02:00
Ben Scott
707f74b50f [FrameworkBundle] Add autowiring alias for Stopwatch 2017-04-08 13:34:08 +01:00
Jakub Sacha
761de99552 Fix passing options with defaultCommand 2017-04-07 23:55:19 +02:00
Sanpi
8b83b58aa5 Throwing an exception when loading a directory 2017-04-07 19:12:03 +02:00
MetalArend
5310f11418 Add \Traversable typehint to phpdoc 2017-04-07 10:05:02 -07:00
Fabien Potencier
7b8409ad37 feature #22315 Add Kernel::getProjectDir() (fabpot)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Add Kernel::getProjectDir()

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

`Kernel::getRootDir()` is misleading. It returns the path where `AppKernel.php` is stored, which is `app/` in Symfony 2/3, but `src/` in Symfony 4. But most of the time, we are using `getRootDir()` to get the project root dir, so `%kernel.root_dir%/../` is a common idiom.

Changing the value of `getRootDir()` would be a hard BC break, so I propose to create a new method, `getProjectDir()` to "replace" `getRootDir()` gradually.

Commits
-------

1f680ccb2d added Kernel::getProjectDir()
2017-04-07 09:56:33 -07:00
Fabien Potencier
49ae724e9c minor #22326 [DI] Enhance wording of autowiring exceptions (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Enhance wording of autowiring exceptions

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

> Cannot autowire service "j": argument "$i" of method "Symfony\Component\DependencyInjection\Tests\Compiler\J::__construct()" references class "Symfony\Component\DependencyInjection\Tests\Compiler\I" but no such service exists. You should maybe alias this class to the existing "i" service; or type-hint against interface "Symfony\Component\DependencyInjection\Tests\Compiler\IInterface" instead.

Commits
-------

da792b2ff7 [DI] Enhance wording of autowiring exceptions
2017-04-07 09:43:12 -07:00
Michal Čihař
81de5fef4b [ExpressionLanguage] Avoid dependency on ctype
This avoids ExpressionLanguage library dependency on ctype.
2017-04-07 09:40:11 -07:00
Fabien Potencier
f04c0b5f04 bug #22340 [HttpKernel] Skip ContainerAwareInterface::setContainer from service_arguments actions registration (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[HttpKernel] Skip ContainerAwareInterface::setContainer from service_arguments actions registration

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

As it would never be used

Commits
-------

ad59e1804f Skip ContainerAwareInterface::setContainer from service_arguments actions registration
2017-04-07 07:44:54 -07:00
Roland Franssen
ff3cb9cb27 [Console] Inherit phpdoc from OutputFormatterInterface 2017-04-07 16:02:07 +02:00
Robin Chalas
ad59e1804f Skip ContainerAwareInterface::setContainer from service_arguments actions registration 2017-04-07 15:58:30 +02:00
Nicolas Grekas
325e61dbbe bug #22304 Moved $this->setDate() before the deprecation handling. (mpdonadio)
This PR was squashed before being merged into the 3.2 branch (closes #22304).

Discussion
----------

Moved $this->setDate() before the deprecation handling.

| Q             | A
| ------------- | ---
| Branch?       | 3.2 <!-- see comment below -->
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no?
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

<!--
- 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.
- Please fill in this template according to the PR you're about to submit.
- Replace this comment by a description of what your PR is solving.
-->

https://github.com/symfony/symfony/pull/22036 merged the patch into the wrong place; the `$this->setDate()` happens after the deprecation handling, so it does not always get called.

See also https://www.drupal.org/node/2712647?page=1#comment-12025349

Commits
-------

b6df4e7 Moved ->setDate() before the deprecation handling.
2017-04-07 14:28:10 +02:00
Matthew Donadio
b6df4e7834 Moved ->setDate() before the deprecation handling. 2017-04-07 14:27:40 +02:00
Nicolas Grekas
d48fae7f8c bug #22307 [Debug] Fix php notice (enumag)
This PR was submitted for the 2.8 branch but it was merged into the 2.7 branch instead (closes #22307).

Discussion
----------

[Debug] Fix php notice

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

Of course autoloading of an empty string should not actually happen (fixed that in https://github.com/twigphp/Twig/pull/2438) but if it does happen it should not throw a php notice.

```
Notice: Uninitialized string offset 0
```

Commits
-------

e333a1a [Debug] Fix php notice
2017-04-07 14:20:28 +02:00
Jáchym Toušek
e333a1a86e [Debug] Fix php notice 2017-04-07 14:16:45 +02:00
Nicolas Grekas
3672c01e3c [VarDumper] Relax tests to adapt for php 7.1rc4 2017-04-07 11:49:35 +02:00
Robin Chalas
717fa85b91 Resolve invokable controllers short notations using ServiceValueResolver 2017-04-07 11:28:11 +02:00
Nicolas Grekas
da792b2ff7 [DI] Enhance wording of autowiring exceptions 2017-04-07 10:22:28 +02:00
Nicolas Grekas
549af739af Merge branch '3.2'
* 3.2:
  [HttpFoundation] Fix transient tests
  [DI] Fix second auto-registration
2017-04-07 08:15:11 +02:00
Nicolas Grekas
db31e80f0e Merge branch '2.8' into 3.2
* 2.8:
  [HttpFoundation] Fix transient tests
  [DI] Fix second auto-registration
2017-04-07 08:13:01 +02:00
Fabien Potencier
3f07e10183 feature #22314 [HttpKernel][FrameworkBundle] Dump container logs in Kernel, to have them also on errors (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[HttpKernel][FrameworkBundle] Dump container logs in Kernel, to have them also on errors

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

Inspecting container failures without the logs is hard, let's have them at hand. This should not be the responsibility of a compiler pass.

Commits
-------

a8b83340bb [HttpKernel][FrameworkBundle] Dump container logs in Kernel, to have them also on errors
2017-04-06 20:07:22 -07:00
Fabien Potencier
abb8d2bebb feature #22316 [WebServerBundle] added a way to dump current status host/port/address when getting the status (fabpot)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[WebServerBundle] added a way to dump current status host/port/address when getting the status

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

Now that the web server can run on an automatically chosen port, it's more complex to integrate it into tests (I want to run some functional tests locally).

The `server:status` command gives this information, but not in a machine-readable way.

I propose to add a `--filter` flag to fix that:

`./bin/console server:status --filter=address`

Commits
-------

b417b62a92 [WebServerBundle] added a way to dump current status host/port/address when getting the status
2017-04-06 16:46:08 -07:00
Nicolas Grekas
9f7a6bb5e5 [HttpFoundation] Fix transient tests 2017-04-07 00:17:40 +02:00
Nicolas Grekas
6c0f5e3a6f [DI] Reporte cascades of autowiring error messages 2017-04-07 00:09:43 +02:00
Robin Chalas
97129fc611 Fix fatal error when logging console.error without a command 2017-04-06 21:41:52 +02:00
Nicolas Grekas
a8b83340bb [HttpKernel][FrameworkBundle] Dump container logs in Kernel, to have them also on errors 2017-04-06 19:59:10 +02:00
Robin Chalas
dc2fe604a2 [HttpKernel] Fix missing use statement in RegisterControllerArgumentLocatorsPass 2017-04-06 19:34:08 +02:00
Fabien Potencier
b417b62a92 [WebServerBundle] added a way to dump current status host/port/address when getting the status 2017-04-06 09:46:55 -07:00
Fabien Potencier
1f680ccb2d added Kernel::getProjectDir() 2017-04-06 09:25:05 -07:00
Nicolas Grekas
c02de845e7 [DI] Fix second auto-registration 2017-04-06 16:56:25 +02:00
Nicolas Grekas
9c53b3deb0 [DI] Restrict autowired registration to "same-vendor" namespaces 2017-04-06 11:28:30 +02:00
Fabien Potencier
ab93feae3f feature #22295 [BC BREAK][DI] Always autowire "by id" instead of using reflection against all existing services (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[BC BREAK][DI] Always autowire "by id" instead of using reflection against all existing services

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

(patch best reviewed [ignoring whitespaces](https://github.com/symfony/symfony/pull/22295/files?w=1).)

"By-id" autowiring, as introduced in #22060 is free from all the issues that "by-type" autowiring has:
- it has no magic and requires explicit type<>id matching (*vs* using reflection on all services to cherry-pick *the* one that matches some type-hint *at that time*, which is fragile)
- it is free from any ambiguities (*vs* the Damocles' sword of breaking config just by enabling some unrelated bundle)
- it is easily introspected: just look at DI config files (*vs* inspecting the type-hierarchy of all services + their type-hints)
- ~~it is side-effect free, thus plain predictable (*vs* auto-registration of discovered types as services)~~
- it plays nice with deprecated services or classes (see #22282)
- *etc.*

Another consideration is that any "by-type" autowired configuration is either broken (because of future ambiguities) - or equivalent to a "by-id" configuration (because resolving ambiguities *means* adding explicit type<>id mappings.) For theoreticians, we could say that "by-id" autowiring is the asymptotic limit of "by-type" autowiring :-)

For all these reasons - and also because it reduces the complexity of the code base - I propose to change the behavior and only support "by-id" autowiring in 3.3. This will break some configurations relying on "by-type" autowiring. Yet the break will only happen at compile-time, which means this won't *silently* break any apps. For all core Symfony services, they will work out of the box thanks to #22098 *et al.* For the remaining services, fixing ones config should be pretty straightforward: just follow the suggestions provided by the exception messages. If they are fine to you, you'll end up with the exact same config in the end. And maybe you'll spot issues that were hidden previously.

Commits
-------

cc5e582dcf [BC BREAK][DI] Always autowire "by id" instead of using reflection against all existing services
2017-04-05 16:31:59 -07:00
Fabien Potencier
d33c0ee4d1 feature #20951 Redesigned the exception pages (javiereguiluz)
This PR was squashed before being merged into the 3.3-dev branch (closes #20951).

Discussion
----------

Redesigned the exception pages

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

Here are some before/after screenshots:

| Before | After
| --- | ---
| ![exception-before-1](https://cloud.githubusercontent.com/assets/73419/21258148/f8fd6482-c37b-11e6-9efe-1bcf7b323c0f.png) | ![exception-after-1](https://cloud.githubusercontent.com/assets/73419/21258156/016059cc-c37c-11e6-8bab-80456189d614.png)

| Before | After
| --- | ---
| ![exception-before-2](https://cloud.githubusercontent.com/assets/73419/21258171/11198a46-c37c-11e6-8a28-ae45e19e3eaf.png) | ![exception-after-2](https://cloud.githubusercontent.com/assets/73419/21258223/4cb9ac66-c37c-11e6-93db-0db2c204dc0b.png)

| Before | After
| --- | ---
| ![exception-before-3](https://cloud.githubusercontent.com/assets/73419/21258239/5a0747ac-c37c-11e6-923e-564322e862a6.png) | ![exception-after-3](https://cloud.githubusercontent.com/assets/73419/21258246/62ad8b00-c37c-11e6-8838-3c1824c18287.png)

---

And here is the new design in action because everything is very dynamic and you can click anywhere to reveal/collapse things:

![exception-in-action](https://cloud.githubusercontent.com/assets/73419/21258261/7445f140-c37c-11e6-9318-f3807fe38689.gif)

Commits
-------

9d0c26377f Redesigned the exception pages
2017-04-05 16:04:34 -07:00
Javier Eguiluz
9d0c26377f Redesigned the exception pages 2017-04-05 16:04:30 -07:00
Nicolas Grekas
cc5e582dcf [BC BREAK][DI] Always autowire "by id" instead of using reflection against all existing services 2017-04-05 23:48:42 +02:00
Nicolas Grekas
12bb392a39 Merge branch '3.2'
* 3.2:
  move provider after test
  update dataProvider function name
  cast substr result to string and remove empty function use
  rename dataset provider
  Add a test to prevent future regressions
  Switch to `empty` native function to check emptiness
  remove non relevant test case
  Switch to `is_string` native method
  Remove unnecessary parentheses
  Add a test case to prevent future regressions
  Move empty condition in return statement
  Use LF line separator
  fix coding standard to comply with fabbot
  Remove malformed EmailValidatorTest + Update UrlValidator test
  Add empty check on host in other methods + add unit tests
  [Validator] Allow checkMX() to return false when $host is empty
  [DI] Prevent AutowirePass from triggering irrelevant deprecations
  [DI] Fix the xml schema
  [Translation] avoid creating cache files for fallback locales.
2017-04-05 23:43:54 +02:00
Nicolas Grekas
32f264f3c8 Merge branch '2.8' into 3.2
* 2.8:
  move provider after test
  update dataProvider function name
  cast substr result to string and remove empty function use
  rename dataset provider
  Add a test to prevent future regressions
  Switch to `empty` native function to check emptiness
  remove non relevant test case
  Switch to `is_string` native method
  Remove unnecessary parentheses
  Add a test case to prevent future regressions
  Move empty condition in return statement
  Use LF line separator
  fix coding standard to comply with fabbot
  Remove malformed EmailValidatorTest + Update UrlValidator test
  Add empty check on host in other methods + add unit tests
  [Validator] Allow checkMX() to return false when $host is empty
  [DI] Prevent AutowirePass from triggering irrelevant deprecations
  [DI] Fix the xml schema
  [Translation] avoid creating cache files for fallback locales.
2017-04-05 23:38:45 +02:00
Nicolas Grekas
8d0cfa444a Merge branch '2.7' into 2.8
* 2.7:
  move provider after test
  update dataProvider function name
  cast substr result to string and remove empty function use
  rename dataset provider
  Add a test to prevent future regressions
  Switch to `empty` native function to check emptiness
  remove non relevant test case
  Switch to `is_string` native method
  Remove unnecessary parentheses
  Add a test case to prevent future regressions
  Move empty condition in return statement
  Use LF line separator
  fix coding standard to comply with fabbot
  Remove malformed EmailValidatorTest + Update UrlValidator test
  Add empty check on host in other methods + add unit tests
  [Validator] Allow checkMX() to return false when $host is empty
  [DI] Fix the xml schema
  [Translation] avoid creating cache files for fallback locales.
2017-04-05 23:34:00 +02:00
Fabien Potencier
457174dad9 feature #21919 [Form] Deprecated usage of "choices" option in sub types (HeahDude)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Form] Deprecated usage of "choices" option in sub types

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

Follows #21880 and the discussion in #20771.

Commits
-------

b5b56fcbac [Form] Deprecated usage of "choices" option in sub types
2017-04-05 11:14:26 -07:00
apetitpa
7104c4e849 move provider after test 2017-04-05 11:10:47 -07:00
apetitpa
c07fb416ff update dataProvider function name 2017-04-05 11:10:47 -07:00
apetitpa
1825d0f2ae cast substr result to string and remove empty function use 2017-04-05 11:10:47 -07:00
apetitpa
894127bf09 rename dataset provider 2017-04-05 11:10:47 -07:00
apetitpa
d973eb1f7d Add a test to prevent future regressions 2017-04-05 11:10:47 -07:00
apetitpa
6f24b05467 Switch to empty native function to check emptiness
Switch to `empty` because depending on the PHP version, substr returns '' or false
2017-04-05 11:10:47 -07:00
apetitpa
f390f29173 remove non relevant test case 2017-04-05 11:10:47 -07:00
apetitpa
91b665c12a Switch to is_string native method 2017-04-05 11:10:46 -07:00
apetitpa
6071ff6c8f Remove unnecessary parentheses 2017-04-05 11:10:32 -07:00
apetitpa
9753a2773e Add a test case to prevent future regressions 2017-04-05 11:10:32 -07:00
apetitpa
4fcb24bacb Move empty condition in return statement 2017-04-05 11:10:32 -07:00
apetitpa
a090ef855a Use LF line separator 2017-04-05 11:10:32 -07:00
apetitpa
60392fdd43 fix coding standard to comply with fabbot 2017-04-05 11:10:32 -07:00
apetitpa
197d19f34c Remove malformed EmailValidatorTest + Update UrlValidator test
Remove malformed EmailValidatorTest + Update UrlValidator test
2017-04-05 11:10:32 -07:00
apetitpa
6b0702e52a Add empty check on host in other methods + add unit tests
Add empty on host in other methods where checkdnsrr is called and add unit tests to prevent future regressions
2017-04-05 11:10:31 -07:00
apetitpa
6dd023f255 [Validator] Allow checkMX() to return false when $host is empty
| Q | A |
| --- | --- |
| Branch? | master |
| Bug fix? | yes |
| New feature? | no |
| BC breaks? | no |
| Deprecations? | no |
| Tests pass? | yes |
| Fixed tickets | #22106 |
| License | MIT |
| Doc PR | n/a |
2017-04-05 11:10:12 -07:00
Fabien Potencier
933835c13b bug #22280 [DI] Fix the xml schema (GuilhemN)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] Fix the xml schema

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

Commits
-------

f2ef1eecef [DI] Fix the xml schema
2017-04-05 08:21:50 -07:00
Fabien Potencier
937045c839 feature #22274 [Yaml] report deprecations when linting YAML files (xabbuh)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Yaml] report deprecations when linting YAML files

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

In a project I frequently discovered usages of deprecated YAML formats. I first wanted to set up a build step that would lint all YAML files found in that project to be able to report it inside the CI. While doing so I noticed that the lint command was ignoring all deprecations after all. I suggest that catch all deprecations triggered by the YAML components and turn them into reported errors here. If we think that this could be seen as misbehaviour as the Symfony YAML parser is still able to handle these files properly, we could think about adding an additional option to the command that would turn on the deprecation handling.

Commits
-------

9b4206ff73 report deprecations when linting YAML files
2017-04-05 08:20:10 -07:00
Fabien Potencier
d45d40d732 feature #22286 [DI/Yaml] Remove @experimental flag from "instanceof" and "prototype" (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI/Yaml] Remove `@experimental` flag from "instanceof" and "prototype"

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

We don't need this flag on these features: the implementation is stable, and regular deprecations should be the way to go in the event where we decide to remove this later on.

That would leave only one single `@experimental` feature in 3.3: `CacheItem::getPreviousTags()`, which looks legitimate to me (since this method is aiming at interop).

Commits
-------

e8723df28a [DI/Yaml] Remove `@experimental` flag from "instanceof" and "prototype"
2017-04-05 08:10:17 -07:00
Fabien Potencier
2a40b6fbfd bug #22300 [WebProfiler] Fix race condition in fast Ajax requests (curry684)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[WebProfiler] Fix race condition in fast Ajax requests

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

Patch `startAjaxRequest` and `finishAjaxRequest` functions to absolute noop in case the debug toolbar itself is not loaded yet, and spool historic requests after the toolbar is loaded.

Commits
-------

538a59254f [WebProfiler] Fix race condition in fast Ajax requests
2017-04-05 08:08:32 -07:00
Fabien Potencier
54495b2bd6 feature #22181 [Console] Allow to catch CommandNotFoundException (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Console] Allow to catch CommandNotFoundException

| 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/22144#issuecomment-289200937
| License       | MIT
| Doc PR        | n/a

Basically reverts #22144, making the command argument optional in console.error event instead, so that `CommandNotFoundException` can be handled as any other console error.

Commits
-------

b21ce850e7 [Console] Allow to catch CommandNotFoundException
2017-04-05 08:05:16 -07:00
Fabien Potencier
91b025affc bug #22282 [DI] Prevent AutowirePass from triggering irrelevant deprecations (chalasr)
This PR was merged into the 2.8 branch.

Discussion
----------

[DI] Prevent AutowirePass from triggering irrelevant deprecations

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | no (just a failing test case atm)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | no
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

For populating available types the AutowirePass iterates over `$container->getDefinitions()` trying to instantiate a reflection class for each definition.
Problem is that if one of these classes is deprecated, a notice is triggered due to the reflection, even if the service is actually never used.

~~Right now this only reproduces the issue with a failing test case~~, this bug (if we agree it's a bug) breaks the test suite of a bundle I maintain (see https://travis-ci.org/lexik/LexikJWTAuthenticationBundle/jobs/218275650#L262)

Solutions I can think about for now:
- ~~Skip deprecated definitions from type registering, meaning that if a service is deprecated a day, all autowired services that rely on it will suddenly be broken, also the bug would remain if the definition is not deprecated but relies on a deprecated class, not good I think~~
- Register an error handler ignoring deprecations during the type registering process (`AutowirePass#populateAvailableType()`), ~~works but makes my test suite say `THE ERROR HANDLER HAS CHANGED`. I'll push my try as a 2nd commit.~~

Thoughts?

Commits
-------

77927f4b33 [DI] Prevent AutowirePass from triggering irrelevant deprecations
2017-04-05 08:02:21 -07:00
Fabien Potencier
a2003579e9 bug #22255 [Translation] avoid creating cache files for fallback locales. (aitboudad)
This PR was merged into the 2.7 branch.

Discussion
----------

[Translation] avoid creating cache files for fallback locales.

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

Commits
-------

22425b2692 [Translation] avoid creating cache files for fallback locales.
2017-04-05 07:56:27 -07:00
Robin Chalas
77927f4b33 [DI] Prevent AutowirePass from triggering irrelevant deprecations 2017-04-05 16:41:09 +02:00
Christian Flothmann
9b4206ff73 report deprecations when linting YAML files 2017-04-05 16:34:46 +02:00
Fabien Potencier
b65ebc7424 feature #22296 Bump monolog to 1.19 and use the agent regex const from parent (redthor)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Bump monolog to 1.19 and use the agent regex const from parent

See #22264

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

Bump monolog and use const from parent. See https://github.com/symfony/symfony/issues/22264#issuecomment-291524038

I went for `static` instead of `self` in case anyone wanted to easily override just the agent string.

Commits
-------

69f9586fd5 Bump monolog to 1.19 and use the agent regex const from parent, see #22264
2017-04-05 06:53:23 -07:00
Fabien Potencier
3aeac5aa3f Merge branch '3.2'
* 3.2:
  bumped Symfony version to 3.2.8
  updated VERSION for 3.2.7
  updated CHANGELOG for 3.2.7
  Fixes #22264 - add support for Chrome headless, see also Seldaek/monolog#966
  [Workflow] update documentation URL in readme
  bumped Symfony version to 2.8.20
  updated VERSION for 2.8.19
  updated CHANGELOG for 2.8.19
  Dont call sprintf() when no placeholders are used
2017-04-05 06:44:55 -07:00
Fabien Potencier
f53e81dd6a Merge branch '2.8' into 3.2
* 2.8:
  Fixes #22264 - add support for Chrome headless, see also Seldaek/monolog#966
  bumped Symfony version to 2.8.20
  updated VERSION for 2.8.19
  updated CHANGELOG for 2.8.19
  Dont call sprintf() when no placeholders are used
2017-04-05 06:44:24 -07:00
Fabien Potencier
f92ada80f4 Merge branch '2.7' into 2.8
* 2.7:
  Fixes #22264 - add support for Chrome headless, see also Seldaek/monolog#966
  Dont call sprintf() when no placeholders are used
2017-04-05 06:42:13 -07:00
Niels Keurentjes
538a59254f [WebProfiler] Fix race condition in fast Ajax requests
Patch startAjaxRequest and finishAjaxRequest functions to absolute noop
in case the debug toolbar itself is not loaded yet, and spool historic
requests after the toolbar is loaded.

Fixes #22297
2017-04-05 15:42:05 +02:00
Fabien Potencier
958b0aeffc bug #22279 [DI] Fix anonymous factories/configurators support (GuilhemN)
This PR was squashed before being merged into the 3.3-dev branch (closes #22279).

Discussion
----------

[DI] Fix anonymous factories/configurators support

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/21999#discussion_r106019873
| License       | MIT
| Doc PR        |

Using prototypes / instanceof conditionals, anonymous factories are inlined using `Definition`, so a new instance will be created for every service created from the prototype / conditional which is inconsistent with the way other anonymous services are managed.

Commits
-------

dda43ed8ce [DI] Fix anonymous factories/configurators support
2017-04-05 06:16:31 -07:00
Guilhem Niot
dda43ed8ce [DI] Fix anonymous factories/configurators support 2017-04-05 06:16:28 -07:00
Fabien Potencier
757e5f7f7c bumped Symfony version to 3.2.8 2017-04-05 06:13:01 -07:00
Douglas Reith
69f9586fd5 Bump monolog to 1.19 and use the agent regex const from parent, see #22264 2017-04-05 13:03:25 +00:00
Fabien Potencier
98313d4c7b updated VERSION for 3.2.7 2017-04-05 05:52:03 -07:00
Douglas Reith
a03dbd2cca Fixes #22264 - add support for Chrome headless, see also Seldaek/monolog#966 2017-04-05 12:36:22 +00:00
Nicolas Grekas
e8723df28a [DI/Yaml] Remove @experimental flag from "instanceof" and "prototype" 2017-04-05 12:13:51 +02:00
Christian Flothmann
98a18ee162 [Workflow] sync the changelog 2017-04-05 11:30:54 +02:00
Christian Flothmann
b878f7e62e [Workflow] update documentation URL in readme 2017-04-05 10:00:23 +02:00
Nicolas Grekas
6ecec3557e [HttpKernel] Fix forward compat with Request::setTrustedProxies() 2017-04-05 08:52:45 +02:00
Fabien Potencier
d5ea53325a bumped Symfony version to 2.8.20 2017-04-04 21:19:23 -07:00
Fabien Potencier
19ccd43812 updated VERSION for 2.8.19 2017-04-04 21:04:34 -07:00
Roland Franssen
a7bd9443a8 [FrameworkBundle] Fix console fixtures 2017-04-04 23:42:02 +02:00
Fabien Potencier
24b1b0d908 fixed wording 2017-04-04 12:45:53 -07:00
Fabien Potencier
ab624f1c38 feature #21437 [Security] Use IteratorArgument for voters (jvasseur)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] Use IteratorArgument for voters

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

Use an IteratorArgument for injecting voters into the AccessDecisionManager.

Commits
-------

4ec80b1ae8 Use IteratorArgument for voters
2017-04-04 12:44:44 -07:00
Nicolas Grekas
7aee0aeaf5 Merge branch '3.2'
* 3.2:
  fix merge
2017-04-04 21:00:44 +02:00
Nicolas Grekas
761d452162 fix merge 2017-04-04 21:00:33 +02:00
Nicolas Grekas
080cb5b5c2 Merge branch '3.2'
* 3.2:
  [FrameworkBundle] Update console fixtures after #22217
  Allow Upper Case property names
  fix some risky tests
  bumped Symfony version to 2.7.27
  updated VERSION for 2.7.26
  update CONTRIBUTORS for 2.7.26
  updated CHANGELOG for 2.7.26
2017-04-04 20:59:08 +02:00
Nicolas Grekas
aa46df1997 Merge branch '2.8' into 3.2
* 2.8:
  [FrameworkBundle] Update console fixtures after #22217
2017-04-04 20:55:04 +02:00
Nicolas Grekas
200b45eb43 minor #22278 [FrameworkBundle] Update console fixtures after #22217 (ro0NL)
This PR was squashed before being merged into the 2.8 branch (closes #22278).

Discussion
----------

[FrameworkBundle] Update console fixtures after #22217

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes (regression from #22217)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22217#issuecomment-291497513
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

cc @fabpot

Sorry for the inconvenience :)

Commits
-------

6e1cee6 [FrameworkBundle] Update console fixtures after #22217
2017-04-04 20:51:44 +02:00
Roland Franssen
6e1cee62b9 [FrameworkBundle] Update console fixtures after #22217 2017-04-04 20:50:26 +02:00
Nicolas Grekas
4951d3c962 Dont call sprintf() when no placeholders are used 2017-04-04 20:32:29 +02:00
Guilhem Niot
f2ef1eecef
[DI] Fix the xml schema 2017-04-04 20:13:57 +02:00
Jérôme Vasseur
4ec80b1ae8 Use IteratorArgument for voters 2017-04-04 19:58:27 +02:00
Fabien Potencier
08ef799f60 feature #22277 [DI] Add "factory" support to named args and autowiring (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Add "factory" support to named args and autowiring

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

To me, factories are expected to work named arguments.
Doing so also unlocks supporting them when autowiring, and will benefit #22187 soon.

Commits
-------

27470de62a [DI] Add "factory" support to named args and autowiring
2017-04-04 10:30:46 -07:00
Fabien Potencier
ff286d6da9 Merge branch '2.8' into 3.2
* 2.8:
  Allow Upper Case property names
  fix some risky tests
  bumped Symfony version to 2.7.27
  updated VERSION for 2.7.26
  update CONTRIBUTORS for 2.7.26
  updated CHANGELOG for 2.7.26
2017-04-04 08:30:56 -07:00
Fabien Potencier
945fee14db Merge branch '2.7' into 2.8
* 2.7:
  fix some risky tests
  bumped Symfony version to 2.7.27
  updated VERSION for 2.7.26
  update CONTRIBUTORS for 2.7.26
  updated CHANGELOG for 2.7.26
2017-04-04 08:24:26 -07:00
Fabien Potencier
a2cd63c885 minor #22267 fix some more risky tests (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

fix some more risky tests

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

Continuation of #22066 fixing the tests for the following components:

* Config
* Form
* HttpFoundation
* Security

Commits
-------

fffcd247b2 fix some risky tests
2017-04-04 08:21:03 -07:00
Abdellatif Ait boudad
22425b2692 [Translation] avoid creating cache files for fallback locales. 2017-04-04 16:15:29 +01:00
insekticid
2fe1631be8 Allow Upper Case property names
ReflectionExtractor::getProperties() returns $id instead of $Id. It is bad naming convention, but is possible

```
class Entity {
    protected $Id;

    public function getId()
    {
        return $this->Id;
    }
}
```

# Conflicts:
#	src/Symfony/Component/PropertyInfo/Tests/Extractors/ReflectionExtractorTest.php
#	src/Symfony/Component/PropertyInfo/Tests/Fixtures/Dummy.php
2017-04-04 08:07:48 -07:00
Fabien Potencier
6e54cdf855 bug #22261 [Console] Give errors back to error handler if not handled by console.error listeners (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Console] Give errors back to error handler if not handled by console.error listeners

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

Re-throws errors if `ConsoleErrorEvent::markErrorAsHandled()` hasn't been called so that they can reach the global error handler, fixing the BC break.

Commits
-------

5a5bf54d37 [Console] Give errors back to error handlers if not handled by console.error listeners
2017-04-04 08:00:37 -07:00
Christian Flothmann
fffcd247b2 fix some risky tests 2017-04-04 16:55:33 +02:00
Fabien Potencier
a146e4da1b feature #22276 [FrameworkBundle] Returns the kernel instance in KernelTestCase::bootKernel (lyrixx)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle] Returns the kernel instance in KernelTestCase::bootKernel

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

Commits
-------

da333a035d [FrameworkBundle] Returns the kernel instance in KernelTestCase::bootKernel
2017-04-04 07:53:29 -07:00
Fabien Potencier
e47a50b7b2 Merge branch '3.2'
* 3.2:
  [Console] Fix render exception test
  [Workflow] fix risky tests
2017-04-04 07:34:05 -07:00
Fabien Potencier
6c8bdb782d minor #22270 [Console] Fix render exception test (ro0NL)
This PR was squashed before being merged into the 3.2 branch (closes #22270).

Discussion
----------

[Console] Fix render exception test

| Q             | A
| ------------- | ---
| Branch?       | 3.2 and up
| Bug fix?      | yes (regression from #22188 in master)
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/pull/22217#issuecomment-291437500
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

As pointed out by @chalasr tests are mysteriously broken.. not sure what i missed but this is apparently needed now..

cc @fabpot

Commits
-------

6b71722392 [Console] Fix render exception test
2017-04-04 07:33:43 -07:00
Roland Franssen
6b71722392 [Console] Fix render exception test 2017-04-04 07:33:42 -07:00
Nicolas Grekas
27470de62a [DI] Add "factory" support to named args and autowiring 2017-04-04 16:31:36 +02:00
Javier Eguiluz
f9087c72c8 [WebProfilerBundle] Tweaked the Cache profiler panel 2017-04-04 07:31:23 -07:00
Grégoire Pineau
da333a035d [FrameworkBundle] Returns the kernel instance in KernelTestCase::bootKernel 2017-04-04 15:38:28 +02:00
Grégoire Pineau
ada8a2948b minor #22271 [Workflow] fix risky tests (xabbuh)
This PR was merged into the 3.2 branch.

Discussion
----------

[Workflow] fix risky tests

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

Commits
-------

4e661e7a73 [Workflow] fix risky tests
2017-04-04 15:01:55 +02:00
Christian Flothmann
4e661e7a73 [Workflow] fix risky tests 2017-04-04 11:54:46 +02:00
Robin Chalas
5a5bf54d37 [Console] Give errors back to error handlers if not handled by console.error listeners 2017-04-04 10:56:16 +02:00
Nicolas Grekas
146f07471e [DI] Reduce complexity of autowiring 2017-04-04 10:21:54 +02:00
Nicolas Grekas
22bb403c20 Merge branch '3.2'
* 3.2:
  [DI] Autowiring and factories are incompatible with each others
  [DI] Don't use auto-registered services to populate type-candidates
  Lighten tests output by removing composer suggestions
  support nullable array or collection
  Complete the injection of the expression in all syntax errors
  CS: Remove invisible chars
  Disable resource tracking if the config component is missing
  [EventDispatcher] Remove unneded count()
  Fix tests expecting a valid date
  Avoid forcing to define the choices_as_values option when using choice_loader
  add expression text to SyntaxError
  [Console] Fix table cell styling
  [Console] Revised exception rendering
  Fix @param in PHPDoc
  [WebProfilerBundle] Normalize whitespace in exceptions passed in headers
  Disable color support detection for tests
  [Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set
2017-04-04 09:47:41 +02:00
Nicolas Grekas
ccbbff2328 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Autowiring and factories are incompatible with each others
  [DI] Don't use auto-registered services to populate type-candidates
  Lighten tests output by removing composer suggestions
  support nullable array or collection
  Complete the injection of the expression in all syntax errors
  CS: Remove invisible chars
  Disable resource tracking if the config component is missing
  [EventDispatcher] Remove unneded count()
  Fix tests expecting a valid date
  Avoid forcing to define the choices_as_values option when using choice_loader
  add expression text to SyntaxError
  [Console] Fix table cell styling
  [Console] Revised exception rendering
  [WebProfilerBundle] Normalize whitespace in exceptions passed in headers
  Disable color support detection for tests
  [Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set
2017-04-04 09:26:27 +02:00
Fabien Potencier
e580c68899 bumped Symfony version to 2.7.27 2017-04-03 21:47:45 -07:00
Fabien Potencier
4cc567782e updated VERSION for 2.7.26 2017-04-03 21:31:58 -07:00
Fabien Potencier
83fc742b9d feature #22238 [BC BREAK][HttpFoundation] Request::setTrustedProxies() takes a new required $trustedHeaderSet argument (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[BC BREAK][HttpFoundation] Request::setTrustedProxies() takes a new required $trustedHeaderSet argument

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

As discussed in linked issue, and already deprecated by #21830

Commits
-------

72e28957e2 [BC BREAK][HttpFoundation] Request::setTrustedProxies() takes a new required $trustedHeaderSet argument
2017-04-03 16:22:00 -07:00
Fabien Potencier
6b862e85c2 Merge branch '2.7' into 2.8
* 2.7:
  Complete the injection of the expression in all syntax errors
  add expression text to SyntaxError
2017-04-03 16:11:44 -07:00
Fabien Potencier
0d85a99e18 minor #22224 Fix HttpCache test (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Fix HttpCache test

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

will make appveyor green.

Commits
-------

3178f50594 Fix failing HttpCache test on windows
2017-04-03 15:52:28 -07:00
Fabien Potencier
2450449605 feature #22175 [DI] add ServiceLocatorTagPass::register() to share service locators (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] add ServiceLocatorTagPass::register() to share service locators

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

Right now, one service locator is created per controller / service subscriber. But since service locators are stateless, this is just wasting resources when several controllers have the exact same set of services managed by their locators (as would be the case when registering the new `AbstractController` as a service subscribers).

This PR fixes this issue, and a few related others found along the way.

Commits
-------

8ff764be82 [DI] add ServiceLocatorTagPass::register() to share service locators
2017-04-03 15:47:57 -07:00
Fabien Potencier
88c587df78 bug #22223 [DI] Dont trigger deprecation for event_dispatcher service (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Dont trigger deprecation for event_dispatcher service

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

Mute deprecations for the event_dispatcher service keeping only relevant ones i.e when the api of the deprecated class is used intentionally, ugly but prevent breaking test suites like the [LexikJWTAuthenticationBundle one](https://travis-ci.org/lexik/LexikJWTAuthenticationBundle/jobs/216664013#L278).

Commits
-------

a49fe25fa3 [DI] Dont trigger deprecation for event_dispatcher service
2017-04-03 15:45:37 -07:00
Fabien Potencier
bad24d3935 bug #22258 [DI] Autowiring and factories are incompatible with each others (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[DI] Autowiring and factories are incompatible with each others

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

Commits
-------

9b601633a7 [DI] Autowiring and factories are incompatible with each others
2017-04-03 15:14:48 -07:00
Fabien Potencier
ee10bf2daa bug #22254 [DI] Don't use auto-registered services to populate type-candidates (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[DI] Don't use auto-registered services to populate type-candidates

| Q             | A
| ------------- | ---
| Branch?       | 2.8
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no (every bug fix is a bc break, isn't it?)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #22162, ~~#21658~~
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

Alternative to #22170 and ~~#21665~~.

The core issue fixed here is that auto-registered services should *not* be used as type-candidates.
The culprit is this line:
`$this->populateAvailableType($argumentId, $argumentDefinition);`

Doing so creates a series of wtf-issues (the linked ones), with no simple fixes (the linked PRs are just dealing with the simplest cases, but the real fix would require a reboot of autowiring for every newly discovered types.)

The other changes accommodate for the removal of the population of the `types` property, and fix a few other issues found along the way:
- variadic constructors
- empty strings injection
- tail args removal when they match the existing defaults

Commits
-------

992c677534 [DI] Don't use auto-registered services to populate type-candidates
2017-04-03 15:09:59 -07:00
Fabien Potencier
fe71e8d233 minor #22137 [Serializer][XmlEncoder] Added a FORMAT constant (Zarcox)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Serializer][XmlEncoder] Added a FORMAT constant

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

Added a FORMAT constant in the XmlEncoder class to normalize it like other Encoder classes.

Commits
-------

0a0901b8bc [Serializer] Added a FORMAT constant in the XmlEncoder class
2017-04-03 15:04:25 -07:00
Fabien Potencier
a9da8a3858 bug #22229 [ExpressionLanguage] Provide the expression in syntax errors (k0pernikus, stof)
This PR was merged into the 2.7 branch.

Discussion
----------

[ExpressionLanguage] Provide the expression in syntax errors

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

This finishes the PR #19449.

Commits
-------

7cd744133d Complete the injection of the expression in all syntax errors
dc55db2a9d add expression text to SyntaxError
2017-04-03 14:52:00 -07:00
Kévin Dunglas
80cea46ff1
bug #22251 [PropertyInfo] Support nullable array or collection (4rthem)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo] Support nullable array or collection

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

`@var array|null` was always considered as not nullable in the `PhpDocExtractor`.

Commits
-------

74ee588924 support nullable array or collection
2017-04-03 22:48:36 +02:00
Nicolas Grekas
d49005a651 Merge branch '2.7' into 2.8
* 2.7:
  Lighten tests output by removing composer suggestions
  CS: Remove invisible chars
  Disable resource tracking if the config component is missing
  [EventDispatcher] Remove unneded count()
  Fix tests expecting a valid date
  [Console] Fix table cell styling
  [Console] Revised exception rendering
  [WebProfilerBundle] Normalize whitespace in exceptions passed in headers
  Disable color support detection for tests
  [Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set
2017-04-03 22:37:06 +02:00
Nicolas Grekas
9b601633a7 [DI] Autowiring and factories are incompatible with each others 2017-04-03 20:09:33 +02:00
Nicolas Grekas
992c677534 [DI] Don't use auto-registered services to populate type-candidates 2017-04-03 20:02:13 +02:00
Grégoire Pineau
47740ce2d5 feature #22180 [Workflow] Added 'workflow_marked_places' twig function (lyrixx)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Workflow] Added 'workflow_marked_places' twig function

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

---

When someone uses a custom MarkingStore, the value in the
$subject::marking can be really different from the value inside
Marking::getPlaces(). This occurs, for example, when the value stored in
the subject is a bit mask.

So it's always safer to get the places names from the marking, and so
with this new function.

---

usage:
```twig
{{ workflow_marked_places(post)|join(',') }}
```

Commits
-------

ead6f142bb [Workflow] Added 'workflow_marked_places' twig function
2017-04-03 16:20:48 +02:00
Nicolas Grekas
72e28957e2 [BC BREAK][HttpFoundation] Request::setTrustedProxies() takes a new required $trustedHeaderSet argument 2017-04-03 11:58:17 +02:00
Robin Chalas
3178f50594 Fix failing HttpCache test on windows 2017-04-03 11:40:19 +02:00
Robin Chalas
a49fe25fa3 [DI] Dont trigger deprecation for event_dispatcher service 2017-04-03 11:37:23 +02:00
Arthur de Moulins
74ee588924 support nullable array or collection 2017-04-03 11:21:18 +02:00
Christophe Coevoet
7cd744133d Complete the injection of the expression in all syntax errors 2017-04-03 10:58:13 +02:00
Nicolas Grekas
d518e42ec9 minor #22232 CS: Remove invisible chars (keradus)
This PR was squashed before being merged into the 2.7 branch (closes #22232).

Discussion
----------

CS: Remove invisible chars

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

I found out that we have 2 non-visible in regular IDE chars in codebase.
One is just inside a comment, it could be safely removed.
But second is inside a real code, I have replaced it with `pack`, so one won't accidentally replace non-breaking space with regular space.

Commits
-------

0f623f4 CS: Remove invisible chars
2017-04-03 10:10:25 +02:00
Dariusz Ruminski
0f623f4220 CS: Remove invisible chars 2017-04-03 10:10:21 +02:00
Nicolas Grekas
03755ee8b3 minor #22237 [EventDispatcher] Remove unneded count() (ostrolucky)
This PR was merged into the 2.7 branch.

Discussion
----------

[EventDispatcher] Remove unneded count()

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

9a1915f [EventDispatcher] Remove unneded count()
2017-04-03 10:06:44 +02:00
Fabien Potencier
ae7bcaeb96 minor #22121 [Lock] Simplify BlockingTest (jderusse)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Lock] Simplify BlockingTest

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

Commits
-------

7130dd8296 Simplify BlockingTest
2017-04-02 19:33:59 +02:00
Robin Chalas
75d5cb1bad Disable resource tracking if the config component is missing 2017-04-02 15:41:57 +02:00
Jérémy Derussé
7130dd8296
Simplify BlockingTest 2017-04-01 22:15:43 +02:00
Jérémy Derussé
d35db5db29
Add message in exception 2017-04-01 21:40:43 +02:00
Nicolas Grekas
8ff764be82 [DI] add ServiceLocatorTagPass::register() to share service locators 2017-04-01 13:57:21 +02:00
Gabriel Ostrolucký
9a1915f88b [EventDispatcher] Remove unneded count() 2017-04-01 00:21:40 +02:00
Fabien Potencier
e3d99649aa bug #22207 [HttpKernel] Dont implement ServiceSubscriberInterface on *SessionListener (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[HttpKernel] Dont implement ServiceSubscriberInterface on *SessionListener

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #22171, silexphp/Silex#1496
| License       | MIT
| Doc PR        | -

Implementing `ServiceSubscriberInterface` creates a dep on the DI component, which Silex can't afford. Let's revert that part.

@GromNaN can you please confirm this fixes your issue?

Commits
-------

7cd90f5c97 [HttpKernel] Dont implement ServiceSubscriberInterface on *SessionListener
2017-03-31 16:39:57 +02:00
Fabien Potencier
6008489153 bug #22140 [Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set (fancyweb)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set

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

Commits
-------

ef39b704cc [Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set
2017-03-31 16:36:01 +02:00
Fabien Potencier
d62b765298 bug #22217 [Console] Fix table cell styling (ro0NL)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Fix table cell styling

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | tiny one
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #... <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!--highly recommended for new features-->

Fixes an issue with newlines and table cells. Remembered this little trick from @chalasr as we had it before with style blocks i believe..

```php
$table = new Table($output);
$table->setRows(array(
    array(new TableCell('<error>Dont break'."\n".'here</error>', array('colspan' => 2))),
    new TableSeparator(),
    array('foo', new TableCell('<error>Dont break'."\n".'here</error>', array('rowspan' => 2))),
    array('bar'),
));
$table->render();
```

Before

![image](https://cloud.githubusercontent.com/assets/1047696/24467857/74dacc9e-14b6-11e7-8f62-3831508ac949.png)

After

![image](https://cloud.githubusercontent.com/assets/1047696/24467923/bb578f0e-14b6-11e7-85ed-039cd73b81a0.png)

Commits
-------

53ecf8393e [Console] Fix table cell styling
2017-03-31 16:33:09 +02:00
Fabien Potencier
19a9b2f29b bug #22216 [Component] [Yaml] [Parser] : can parse with trailing space as 2.8 (jordscream)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Component] [Yaml] [Parser] :  can parse with trailing space as 2.8

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #22193
| License       | MIT
| Doc PR        | symfony/symfony-docs

Missing rtrim method in line to parse as the version 2.8 does

Commits
-------

ce3d5ab7d1 [Component] [Yaml] [Parser] :  can parse with trailing space as 2.8
2017-03-31 16:30:03 +02:00
Fabien Potencier
fb6de49fd0 bug #22194 [Console] CommandTester: disable color support detection (julienfalque)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] CommandTester: disable color support detection

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

By default, the command tester relies on [color support guessing](3fe419cf66/src/Symfony/Component/Console/Output/StreamOutput.php (L91)) to enable output decoration.

This is an issue for tests in that guessing is done against the stream instance on Linux and against the actual environment running the test on Windows, so color support can be detected on Windows even when the used stream is a memory stream like here, resulting in non-deterministic tests.

This PR disables output decoration by default. This will only change behavior on Windows with color support, as guessing on Linux always detects color as not supported for memory streams anyway. Tests should enable decoration explicitly when they want to test it.

A better fix would be to actually detect that we are using a memory stream on Windows as well, but I'm not sure it's possible.

Commits
-------

3fe419cf66 Disable color support detection for tests
2017-03-31 14:44:27 +02:00
Christophe Coevoet
071548090b Fix tests expecting a valid date 2017-03-31 14:26:28 +02:00
Christophe Coevoet
fb4d8de5e4 Avoid forcing to define the choices_as_values option when using choice_loader
When using the choice loader, choices are ignored entirely. Forcing the dev
to add the choices_as_values just to avoid the deprecation warning (and then
to remove the option again at some point in 3.x due to deprecation) is a bad
developer experience.
2017-03-31 10:23:48 +02:00
Philipp Kretzschmar
dc55db2a9d add expression text to SyntaxError
fixes #19445
2017-03-31 09:39:36 +02:00
Nicolas Grekas
7cd90f5c97 [HttpKernel] Dont implement ServiceSubscriberInterface on *SessionListener 2017-03-30 14:49:17 +02:00
Roland Franssen
53ecf8393e [Console] Fix table cell styling 2017-03-30 10:19:40 +02:00
Jordan Samouh
ce3d5ab7d1 [Component] [Yaml] [Parser] : can parse with trailing space as 2.8 2017-03-30 09:16:02 +02:00
Robin Chalas
b21ce850e7 [Console] Allow to catch CommandNotFoundException 2017-03-29 21:37:27 +02:00
Christian Flothmann
8c81f5eefe [FrameworkBundle] fix typo in changelog 2017-03-29 18:13:28 +02:00
Grégoire Pineau
ead6f142bb [Workflow] Added 'workflow_marked_places' twig function
When someone uses a custom MarkingStore, the value in the
$subject::marking can be really different from the value inside
Marking::getPlaces(). This occurs, for example, when the value stored in
the subject is a bit mask.

So it's always safer to get the places names from the marking, and so
with this new function.
2017-03-29 14:29:58 +02:00
Fabien Potencier
329b1819f1 minor #22186 [DI] Throw on "configured-keys <> getSubscribedServices()" mismatch (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Throw on "configured-keys <> getSubscribedServices()" mismatch

| 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 reported on Slack, this creates DX issues, and provides no practical benefit. Let's throw instead of logging.

Commits
-------

4da8884ca4 [DI] Throw on "configured-keys <> getSubscribedServices()" mismatch
2017-03-29 07:30:55 +02:00
Fabien Potencier
11a06ccced bug #22188 [Console] Revised exception rendering (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #22188).

Discussion
----------

[Console] Revised exception rendering

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

Continuation of #22142, as escaping can break too i just realized.

Before

![image](https://cloud.githubusercontent.com/assets/1047696/24376962/fc85a15c-133d-11e7-90fe-a8c754cbf592.png)

After

![image](https://cloud.githubusercontent.com/assets/1047696/24377289/340a8f2e-133f-11e7-83b3-54e1ea6f46bd.png)

cc @chalasr

Commits
-------

17f1f079b2 [Console] Revised exception rendering
2017-03-29 07:27:06 +02:00
Roland Franssen
17f1f079b2 [Console] Revised exception rendering 2017-03-29 07:27:03 +02:00
Fabien Potencier
9466237db0 bug #22154 [WebProfilerBundle] Normalize whitespace in exceptions passed in headers (curry684)
This PR was merged into the 2.7 branch.

Discussion
----------

[WebProfilerBundle] Normalize whitespace in exceptions passed in headers

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

If an exception was thrown with line separators in its message the WebProfiler would cause an exception by passing it through unsanitized into the X-Debug-Error HTTP header. This commit fixes that by replacing all whitespace sequences with a single space in the header.

Commits
-------

d64679014b [WebProfilerBundle] Normalize whitespace in exceptions passed in headers
2017-03-29 07:19:30 +02:00
Jérôme Tamarelle
6ed9d0e4c1 Fix @param in PHPDoc
Errors reported by Sami API Doc generator on branch 3.2

ERROR: The "factory" @param tag variable name is wrong (should be "objectLoader") on "Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader::__construct" in src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php:68
ERROR: The "objectLoader" @param tag variable name is wrong (should be "factory") on "Symfony\Bridge\Doctrine\Form\ChoiceList\DoctrineChoiceLoader::__construct" in src/Symfony/Bridge/Doctrine/Form/ChoiceList/DoctrineChoiceLoader.php:68
ERROR: "7" @param tags are expected but only "6" found on "Symfony\Bundle\WebProfilerBundle\Controller\ProfilerController::__construct" in src/Symfony/Bundle/WebProfilerBundle/Controller/ProfilerController.php:50
ERROR: "3" @param tags are expected but only "2" found on "Symfony\Component\Asset\PathPackage::__construct" in src/Symfony/Component/Asset/PathPackage.php:35
ERROR: "2" @param tags are expected but only "1" found on "Symfony\Component\Cache\Adapter\PhpArrayAdapter::create" in src/Symfony/Component/Cache/Adapter/PhpArrayAdapter.php:64
ERROR: "3" @param tags are expected but only "1" found on "Symfony\Component\Cache\Adapter\RedisAdapter::__construct" in src/Symfony/Component/Cache/Adapter/RedisAdapter.php:39
ERROR: The "format" @param tag variable name is wrong (should be "fileLinkFormat") on "Symfony\Component\Debug\ExceptionHandler::setFileLinkFormat" in src/Symfony/Component/Debug/ExceptionHandler.php:90
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\Compiler\Compiler::addPass" in src/Symfony/Component/DependencyInjection/Compiler/Compiler.php:73
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\Compiler\PassConfig::addPass" in src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php:97
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\ContainerBuilder::addCompilerPass" in src/Symfony/Component/DependencyInjection/ContainerBuilder.php:311
ERROR: "2" @param tags are expected but only "3" found on "Symfony\Component\DependencyInjection\LazyProxy\PhpDumper\DumperInterface::getProxyFactoryCode" in src/Symfony/Component/DependencyInjection/LazyProxy/PhpDumper/DumperInterface.php:41
ERROR: "0" @param tags are expected but only "1" found on "Symfony\Component\HttpFoundation\Request::isMethodSafe" in src/Symfony/Component/HttpFoundation/Request.php:1458
ERROR: "5" @param tags are expected but only "6" found on "Symfony\Component\Serializer\Normalizer\AbstractNormalizer::instantiateObject" in src/Symfony/Component/Serializer/Normalizer/AbstractNormalizer.php:291
2017-03-28 23:38:24 +02:00
Niels Keurentjes
d64679014b [WebProfilerBundle] Normalize whitespace in exceptions passed in headers
If an exception was thrown with line separators in its message the
WebProfiler would cause an exception by passing it through unsanitized
into the X-Debug-Error HTTP header. This commit fixes that by replacing
all whitespace sequences with a single space in the header.
2017-03-28 22:44:31 +02:00
Nicolas Grekas
05d15cf4df feature #22185 [DI] Enhance DX by throwing instead of triggering a deprecation notice (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Enhance DX by throwing instead of triggering a deprecation notice

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | yes - at the config file level, for edge cases
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #22143
| License       | MIT
| Doc PR        | -

Looking at the linked issue, I'm reconsidering our decision to trigger a deprecation notice when one uses `_instanceof` or `_defaults` as a service name. While on the BC side, this is strict - on the DX side, it looks like this opens a trap where people fill fall into.

The same occurs to me with named args: instead of silently accepting invalid args as was the case before, let's throw to help DX when people do mistakes.

Last change in this PR: the complex logic required to force strings to be given as `$id` args into `Reference` or `Alias` makes no sense to me, especially considering that a `string` type hint on PHP7 will *do* a string cast.

Commits
-------

b07da3d [DI] Enhance DX by throwing instead of triggering a deprecation notice
2017-03-28 10:56:13 +02:00
Grégoire Pineau
8f090bca12 [Workflow] Added more PHPDoc 2017-03-28 10:44:09 +02:00
Grégoire Pineau
cbb0c1809b minor #22195 [Workflow] Added more PHPDoc (lyrixx)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Workflow] Added more PHPDoc

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

---

asked by @fabpot / @HeahDude

Commits
-------

97787c6bdc [Workflow] Added more PHPDoc
2017-03-28 10:39:12 +02:00
Grégoire Pineau
97787c6bdc [Workflow] Added more PHPDoc 2017-03-28 10:29:42 +02:00
Julien Falque
3fe419cf66
Disable color support detection for tests 2017-03-28 08:19:43 +02:00
Nicolas Grekas
b07da3dc1e [DI] Enhance DX by throwing instead of triggering a deprecation notice 2017-03-28 08:18:44 +02:00
Nicolas Grekas
4da8884ca4 [DI] Throw on "configured-keys <> getSubscribedServices()" mismatch 2017-03-28 08:17:58 +02:00
Fabien Potencier
d0e904b0da Merge branch '3.2'
* 3.2:
  [Process] Fix bug which wiped or mangled env vars
2017-03-27 11:09:43 -07:00
Patrick Dawkins
9439237c81 [Process] Fix bug which wiped or mangled env vars 2017-03-27 11:07:02 -07:00
HeahDude
b5b56fcbac [Form] Deprecated usage of "choices" option in sub types 2017-03-27 18:52:54 +02:00
Nicolas Grekas
af1eed92c2 [HttpFoundation] Fix bad merge 2017-03-27 16:57:37 +02:00
Nicolas Grekas
d5af0da0a7 Merge branch '3.2'
* 3.2:
  [Console] Fix test
  [HttpKernel] Fix test
  Remove port from default host in server:status command
  [Console] Escape exception messages
2017-03-27 16:51:00 +02:00
Nicolas Grekas
56d476942c Merge branch '2.8' into 3.2
* 2.8:
  [HttpKernel] Fix test
  Remove port from default host in server:status command
  [Console] Escape exception messages
2017-03-27 16:49:31 +02:00
Nicolas Grekas
a0e654d981 Merge branch '2.7' into 2.8
* 2.7:
  [HttpKernel] Fix test
  Remove port from default host in server:status command
  [Console] Escape exception messages
2017-03-27 16:49:15 +02:00
Fabien Potencier
dd3712601d minor #22177 [HttpKernel] Fix test (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpKernel] Fix test

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

Should make 2.7 green again on Travis.

Commits
-------

ba8f46ad23 [HttpKernel] Fix test
2017-03-27 07:44:58 -07:00
Fabien Potencier
46cf21506c bug #22142 [Console] Escape exception messages in renderException (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Escape exception messages in renderException

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

Adding style on exception messages should be prevented, it leads to weird results.

> Allowing formatting in them would be a nightmare, given that Symfony itself applies some formatting when rendering the exception.

Commits
-------

cb1348231a [Console] Escape exception messages
2017-03-27 07:36:47 -07:00
Nicolas Grekas
e9c3df6c94 [Console] Fix test 2017-03-27 16:36:46 +02:00
Fabien Potencier
9ca3f23f72 minor #22174 [Config] Update PHPDoc (Ahmed TAILOULOUTE)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Config] Update PHPDoc

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

Commits
-------

d052c563b8 Update PHPDoc
2017-03-27 07:33:53 -07:00
Nicolas Grekas
ba8f46ad23 [HttpKernel] Fix test 2017-03-27 16:31:27 +02:00
Ahmed TAILOULOUTE
d052c563b8 Update PHPDoc 2017-03-27 15:17:59 +01:00
Fabien Potencier
615a2c5ee9 bug #22165 [WebServerBundle] Fix starting second server + port lookup (ro0NL)
This PR was squashed before being merged into the 3.3-dev branch (closes #22165).

Discussion
----------

[WebServerBundle] Fix starting second server + port lookup

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

Before

![image](https://cloud.githubusercontent.com/assets/1047696/24333032/5edc45f6-1251-11e7-890d-e02236c1e4f2.png)

After

![image](https://cloud.githubusercontent.com/assets/1047696/24333036/6d35a8a4-1251-11e7-8317-59d1fc0dfe7b.png)

Commits
-------

37e613b459 remove unknown address argument in help text
a4345e59de [WebServerBundle] Fix starting second server + port lookup
2017-03-27 07:15:41 -07:00
Fabien Potencier
3cd563ad00 minor #22153 [DX] [DI] Throw more helpful error when shortcutting global classes (curry684)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DX] [DI] Throw more helpful error when shortcutting global classes

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

As discussed in #22146 the error message received when trying to use a class in the global
namespace as a service without defined class is confusing. Helpful information was added
pointing out this current limitation.

Commits
-------

b9e7b4fd61 [DependencyInjection] Throw helpful error when shortcutting global classes
2017-03-27 07:02:28 -07:00
Andreas Braun
dbcfa5c659
Remove port from default host in server:status command 2017-03-27 08:24:12 +02:00
Niels Keurentjes
b9e7b4fd61 [DependencyInjection] Throw helpful error when shortcutting global classes
As discussed in #22146 the error message received when trying to use a class in the global
namespace as a service without defined class is confusing. Helpful information was added
pointing out this current limitation.
2017-03-26 23:09:16 +02:00
Roland Franssen
37e613b459 remove unknown address argument in help text 2017-03-26 19:02:20 +02:00
Roland Franssen
a4345e59de [WebServerBundle] Fix starting second server + port lookup 2017-03-26 18:28:54 +02:00
Fabien Potencier
1b634746ed fixed bad merge 2017-03-26 08:53:54 -07:00
Fabien Potencier
811a6bf5eb Merge branch '3.2'
* 3.2:
  [Bridge\Doctrine] Fix change breaking doctrine-bundle test suite
  [WebProfilerBundle] Include badge status in translation tabs
  [FrameworkBundle] Cache pool clear command requires at least 1 pool
  [HttpFoundation][bugfix]  should always be initialized
  MockArraySessionStorage: updated phpdoc for $bags so that IDE autocompletion would work
  normalize paths before making them relative
  removed test that does not test anything
  fixed tests
  #21809 [SecurityBundle] bugfix: if security provider's name contains upper cases then container didn't compile
  [WebProfilerBundle] Fix for CSS attribute at Profiler Translation Page
  Set Date header in Response constructor already
  [Validator] fix URL validator to detect non supported chars according to RFC 3986
  [Security] Fixed roles serialization on token from user object
2017-03-26 08:50:20 -07:00
Fabien Potencier
dc66960f84 Merge branch '2.8' into 3.2
* 2.8:
  [Bridge\Doctrine] Fix change breaking doctrine-bundle test suite
  [HttpFoundation][bugfix]  should always be initialized
  MockArraySessionStorage: updated phpdoc for $bags so that IDE autocompletion would work
  normalize paths before making them relative
2017-03-26 08:47:15 -07:00
Fabien Potencier
d175340777 Merge branch '2.7' into 2.8
* 2.7:
  [Bridge\Doctrine] Fix change breaking doctrine-bundle test suite
  [HttpFoundation][bugfix]  should always be initialized
  MockArraySessionStorage: updated phpdoc for $bags so that IDE autocompletion would work
  normalize paths before making them relative
2017-03-26 08:40:40 -07:00
Nicolas Grekas
0577c7b089 [Bridge\Doctrine] Fix change breaking doctrine-bundle test suite 2017-03-26 17:09:07 +02:00
Roland Franssen
543ac435b8 [WebProfilerBundle] Include badge status in translation tabs 2017-03-26 14:00:52 +02:00
Fabien Potencier
6cc9dc7586 feature #22060 [DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention

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

This PR adds a new autowiring mode, based only on the class <> id convention.
This way of autowiring is free from any conflicting behavior, which is what I was looking for to begin with.

The expected DX is a bit more involving than the current way we do autowiring. But it's worth it to me, because it's plain predictable - a lot less "magic" imho.

So in this mode, for each `App\Foo` type hint, a reference to an "App\Foo" service will be created. If no such service exists, an exception will be thrown. To me, this opens a nice DX: when type hinting interfaces (which is the best practice), this will tell you when you need to create the explicit interface <> id mapping that is missing - thus encourage things to be made explicit, but only when required, and gradually, in a way that will favor discoverability by devs.

Of course, this is opt-in, and BC. You'd need to do eg in yaml: `autowire: by_id`.
For consistency, the current mode (`autowire: true`) can be configured using `autowire: by_type`.

Commits
-------

c298f2a90c [DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention
2017-03-25 13:18:59 -07:00
Fabien Potencier
9896f86743 feature #22158 Revert "feature #20973 [DI] Add getter injection (nicolas-grekas)" (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

Revert "feature #20973 [DI] Add getter injection (nicolas-grekas)"

This reverts commit 2183f98f54, reversing
changes made to b465634a55.

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

Let's remove getter injection, we now have enough alternative mechanisms to achieve almost the same results (e.g. `ServiceSubscriberInterface`, see #21708)., and I'm tired being called by names because of it.

The only use case in core is `ControllerTrait`, but this should be gone if #22157 is merged.

Commits
-------

23fa3a09bf Revert "feature #20973 [DI] Add getter injection (nicolas-grekas)"
2017-03-25 12:45:22 -07:00
Nicolas Grekas
a93f059878 [FrameworkBundle] Introduce AbstractController, replacing ControllerTrait 2017-03-25 18:18:01 +01:00
Fabien Potencier
8901c7eaa6 feature #22046 [Asset] Adding a new version strategy that reads from a manifest JSON file (weaverryan)
This PR was squashed before being merged into the 3.3-dev branch (closes #22046).

Discussion
----------

[Asset] Adding a new version strategy that reads from a manifest JSON file

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

Hi guys!

Often, when using a frontend task manager or bundler (e.g. webpack of gulp), the final assets are dumped with a version or content hash in the filename itself (e.g. main.123abc.css). To know what the correct, current hashed filename is, you'll dump a `manifest.json` file - e.g.

```json
{
  "main.js": "main.123abc.js",
  "css/styles.css": "css/styles.555def.css"
}
```

Examples: [gulp-rev](https://github.com/sindresorhus/gulp-rev) and [webpack-manifest-plugin](https://www.npmjs.com/package/webpack-manifest-plugin).

This PR adds a new version strategy that will look up the asset path (e.g. `main.css`) in that file and return the final, versioned path. Some people may dump manifest files in other formats, but I think this catches the most common use-case (and you can always still create your own version strategy). I've written this to be "forgiving" - if a path doesn't exist in the manifest, the path is simply returned, unaltered.

Another implementation *could* have been to add a new Twig filter (e.g. `{{ asset('main.css|manifest_path) }}`) - but I thought I'd try first using the existing versioning system.

## Usage

```yml
# app/config/config.yml
framework:
    # ...
    assets:
       # added validation prevents you from setting json_manifest_path AND version, for example
        json_manifest_path: '%kernel.root_dir%/../web/manifest.json'
```

```twig
{# someTemplate.html.twig #}

{# use asset() just like normal #}
<script src="{{ asset('js/main.js') }}"></script>
```

## TODO
* fabbot hates my invalid json syntax file... even though I tried to be clever and not give it a `.json` suffix :)

Commits
-------

07fec2bbad [Asset] Adding a new version strategy that reads from a manifest JSON file
2017-03-25 09:22:52 -07:00
Ryan Weaver
07fec2bbad [Asset] Adding a new version strategy that reads from a manifest JSON file 2017-03-25 09:22:50 -07:00
Roland Franssen
a61797f850 [FrameworkBundle] Cache pool clear command requires at least 1 pool 2017-03-25 08:48:15 -07:00
Fabien Potencier
869e68dd1f bug #22144 [Console] Fixed fatal error when the command is not defined (lyrixx)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Console] Fixed fatal error when the command is not defined

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

Commits
-------

d5b41b6b0a [Console] Fixed fatal error when the command is not defined
2017-03-25 08:31:41 -07:00
Nicolas Grekas
23fa3a09bf Revert "feature #20973 [DI] Add getter injection (nicolas-grekas)"
This reverts commit 2183f98f54, reversing
changes made to b465634a55.
2017-03-25 15:07:47 +01:00
Robin Chalas
cb1348231a [Console] Escape exception messages 2017-03-25 13:51:36 +01:00
Fabien Potencier
eda821a87a feature #22129 [WebProfilerBundle] Improve cache panel (ro0NL)
This PR was squashed before being merged into the 3.3-dev branch (closes #22129).

Discussion
----------

[WebProfilerBundle] Improve cache panel

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

An attempt to improve the page a bit. Personally i think all elements on a single page is too much info.

Before

![image](https://cloud.githubusercontent.com/assets/1047696/24272477/d4d96a44-101d-11e7-9cc5-1646fc2c0603.png)

![image](https://cloud.githubusercontent.com/assets/1047696/24272500/e51318a6-101d-11e7-8875-c270016f11a2.png)

After

![image](https://cloud.githubusercontent.com/assets/1047696/24311179/530dcc6a-10d3-11e7-9c39-7c73ee2775f1.png)

![image](https://cloud.githubusercontent.com/assets/1047696/24311215/82c48566-10d3-11e7-82ff-6d79c3040a25.png)

Commits
-------

3592d0de6a [WebProfilerBundle] Improve cache panel
2017-03-24 15:59:01 -07:00
Roland Franssen
3592d0de6a [WebProfilerBundle] Improve cache panel 2017-03-24 15:58:51 -07:00
Fabien Potencier
da0b520a50 bug #22133 [Filesystem] normalize paths before making them relative (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Filesystem] normalize paths before making them relative

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

Commits
-------

d50ffa1de7 normalize paths before making them relative
2017-03-24 15:53:44 -07:00
Fabien Potencier
be3d2d2389 minor #22139 [HttpFoundation][DX] MockArraySessionStorage: phpdocs update (MacDada)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation][DX] MockArraySessionStorage: phpdocs update

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

Commits
-------

967f7a7add MockArraySessionStorage: updated phpdoc for $bags so that IDE autocompletion would work
2017-03-24 15:51:36 -07:00
Nicolas Grekas
c298f2a90c [DI] Add "by-id" autowiring: a side-effect free variant of it based on the class<>id convention 2017-03-24 15:54:23 +01:00
Dawid Nowak
d984c73e66 [HttpFoundation][bugfix] should always be initialized 2017-03-24 07:50:55 -07:00
Dawid Nowak
967f7a7add MockArraySessionStorage: updated phpdoc for $bags so that IDE autocompletion would work 2017-03-24 15:14:19 +01:00
Grégoire Pineau
d5b41b6b0a [Console] Fixed fatal error when the command is not defined 2017-03-24 11:19:00 +01:00
Nicolas Grekas
d7557cf975 [DI] Add hints to exceptions thrown by AutowiringPass 2017-03-24 10:50:03 +01:00
Thomas Calvet
ef39b704cc [Form] Improve the exceptions when trying to get the data in a PRE_SET_DATA listener and the data has not already been set 2017-03-24 10:02:28 +01:00
Christian Flothmann
d50ffa1de7 normalize paths before making them relative 2017-03-24 08:21:37 +01:00
Kevin EMO
0a0901b8bc [Serializer] Added a FORMAT constant in the XmlEncoder class 2017-03-24 01:34:02 +01:00
Fabien Potencier
2ad59231c6 remvoed dead code 2017-03-23 11:14:29 -07:00
Fabien Potencier
fb56bcce98 Merge branch '2.8' into 3.2
* 2.8:
  removed test that does not test anything
  fixed tests
  #21809 [SecurityBundle] bugfix: if security provider's name contains upper cases then container didn't compile
  [WebProfilerBundle] Fix for CSS attribute at Profiler Translation Page
  Set Date header in Response constructor already
  [Validator] fix URL validator to detect non supported chars according to RFC 3986
  [Security] Fixed roles serialization on token from user object
2017-03-23 09:09:32 -07:00
Fabien Potencier
f971f4f5f2 Merge branch '2.7' into 2.8
* 2.7:
  removed test that does not test anything
  fixed tests
  #21809 [SecurityBundle] bugfix: if security provider's name contains upper cases then container didn't compile
  [Validator] fix URL validator to detect non supported chars according to RFC 3986
  [Security] Fixed roles serialization on token from user object
2017-03-23 09:08:03 -07:00
Fabien Potencier
80af0838f5 removed test that does not test anything 2017-03-23 09:07:35 -07:00
Fabien Potencier
e31d3461ea fixed tests 2017-03-23 09:02:44 -07:00
Antanas Arvasevicius
6d23c8c41c #21809 [SecurityBundle] bugfix: if security provider's name contains upper cases then container didn't compile 2017-03-23 08:57:18 -07:00
Fabien Potencier
db8d87dce2 feature #21819 [Twig Bridge] A simpler way to retrieve flash messages (javiereguiluz)
This PR was squashed before being merged into the 3.3-dev branch (closes #21819).

Discussion
----------

[Twig Bridge] A simpler way to retrieve flash messages

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

Getting flash messages in templates is more complex than it could be. Main problems:

1. It's too low level: you need to get the "flash bag" (and first, learn what a "flash bag" is) and then you need to call the internal method: `all()`, `get()`, etc.
2. You need to be careful because the session will start automatically when you ask for flashes (even if there are no flashes). You can prevent this with the `{% if app.session is not null and app.session.started %}` code, but it's boring to always use that.

So, I propose to add a new `app.flashes` helper that works as follows.

---

## Get all the flash messages

### Before

```twig
{% if app.session is not null and app.session.started %}
    {% for label, messages in app.session.flashbag.all %}
        {% for message in messages %}
            <div class="alert alert-{{ label }}">
                {{ message }}
            </div>
        {% endfor %}
    {% endfor %}
{% endif %}
```

### After

```twig
{% for label, messages in app.flashes %}
    {% for message in messages %}
        <div class="alert alert-{{ label }}">
            {{ message }}
        </div>
    {% endfor %}
{% endfor %}
```

---

## Get only the flashes of type `notice`

```twig
{% if app.session is not null and app.session.started %}
    {% for message in app.session.flashbag.get('notice') %}
        <div class="alert alert-notice">
            {{ message }}
        </div>
    {% endfor %}
{% endif %}
```

### After

```twig
{% for message in app.flashes('notice') %}
    <div class="alert alert-notice">
        {{ message }}
    </div>
{% endfor %}
```

---

As an added bonus, you can get any number of flash messages because the method allows to pass an array of flash types:

```twig
{% for label, messages in app.flashes(['warning', 'error']) %}
    {% for message in messages %}
        <div class="alert alert-{{ label }}">
            {{ message }}
        </div>
    {% endfor %}
{% endfor %}
```

Commits
-------

5a56b23327 [Twig Bridge] A simpler way to retrieve flash messages
2017-03-23 08:48:12 -07:00
Javier Eguiluz
5a56b23327 [Twig Bridge] A simpler way to retrieve flash messages 2017-03-23 08:48:05 -07:00
Nikolay Labinskiy
d980e706ad [WebProfilerBundle] Fix for CSS attribute at Profiler Translation Page 2017-03-23 11:48:03 +02:00
Robin Chalas
ea84aa1868 Fix tests 2017-03-23 10:34:23 +01:00
Fabien Potencier
bafa8e29e0 feature #19026 [Security] Strengthen comparison of target_url vs login_path (mrzard)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] Strengthen comparison of target_url vs login_path

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

Commits
-------

ac9d75a09e [Security] Strengthen comparison of target_url vs login_path
2017-03-22 16:29:02 -07:00
Fabien Potencier
6f998375ff updated CHANGELOG 2017-03-22 16:26:17 -07:00
Fabien Potencier
ce067a3844 feature #19496 [DX][Form][Validator] Add ability check if cocrete constraint fails. (Koc)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[DX][Form][Validator] Add ability check if cocrete constraint fails.

| Q | A |
| --- | --- |
| Branch? | master |
| Bug fix? | no |
| New feature? | yes |
| BC breaks? | no |
| Deprecations? | no |
| Tests pass? | wait for travis |
| Fixed tickets | #15154 |
| License | MIT |
| Doc PR | should open |

Sometimes for big forms with multiple constraints we should handle some errors separately.

``` php
// when using validator
$constraintViolations = $validator->validate(...);
if (count($constraintViolations->findByCodes(UniqueEntity::NOT_UNIQUE_ERROR))) {
  // display some message or send email or etc
}

// when using forms
if (count($form->getErrors()->findByCodes(UniqueEntity::NOT_UNIQUE_ERROR))) {
  // display some message or send email or etc
}
```

This PR add some useful methods to handle this. Before we should iterate all failed constraints using foreach.

Feel free to suggest better names for new methods.

Commits
-------

29a3a7e0d6 Add ability retrieve errors by their code.
2017-03-22 16:25:22 -07:00
Fabien Potencier
b59660c23d minor #22119 [Lock] Adjust lock delay to avoid false error tests (jderusse)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Lock] Adjust lock delay to avoid false error tests

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

Adjust the clockDelay to fix tests
This test is here to:

T0.
* Fork A, B, C

T1.
* A acquire Lock then start sleeping for 3*clockDelay
* B start sleeping for 1*clockDelay
* C start sleeping for 1*clockDelay

T2
* B wakeup AND try to acquire lock in wait mode
* C wakeup AND try to acquire lock in non wait mode (lock should be till acquired by A)

T4
* A release Lock
* B acquire lock and release it

At the end, this tests assert than:
* A acquire and delete the lock
* B acquire and delete the lock
* C failed to acquire the lock

The point is, this test is time sensitive, and if the fork is too slow, A, B and C are not synchronized and C is able to acquire Lock.

This PR adjuste clock delay to reduce false failures

Commits
-------

33f2a9a6f7 Adjust lock delay to avoid false error tests
2017-03-22 16:13:19 -07:00
Fabien Potencier
ba4d6bce29 feature #18140 [Console] Add console.ERROR event and deprecate console.EXCEPTION (wouterj)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Console] Add console.ERROR event and deprecate console.EXCEPTION

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

The current `console.EXCEPTION` event is only dispatched for exceptions during the execution of `Command#execute()`. All other exceptions (e.g. the ones thrown by listeners to events) are catched by the `try ... catch` loop in `Application#doRunCommand()`. This means that there is _no way to override exception handling_.
## The Solution

This PR adds a `console.ERROR` event which has the same scope as the default `try ... catch` loop. This allows to customize all exception handling.

In order to keep BC, a new event was created and `console.EXCEPTION` was deprecated.

Commits
-------

c02a4c9857 Added a console.ERROR event
2017-03-22 16:10:45 -07:00
Fabien Potencier
42e5b4e10d feature #22120 [FrameworkBundle] Multiple services on one Command class (SenseException)
This PR was squashed before being merged into the 3.3-dev branch (closes #22120).

Discussion
----------

[FrameworkBundle] Multiple services on one Command class

rebased version of #19305

Commits
-------

2b82fcb437 [FrameworkBundle] Multiple services on one Command class
2017-03-22 16:05:06 -07:00
Claudio Zizza
2b82fcb437 [FrameworkBundle] Multiple services on one Command class 2017-03-22 16:05:04 -07:00
Fabien Potencier
ce9cd71372 fixed Yoda condition 2017-03-22 16:03:14 -07:00
Fabien Potencier
426a666def minor #22043 Refactor stale-while-revalidate code in HttpCache, add a (first?) test for it (mpdude)
This PR was squashed before being merged into the 3.3-dev branch (closes #22043).

Discussion
----------

Refactor stale-while-revalidate code in HttpCache, add a (first?) test for it

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

I came up with this while trying to hunt a production bug related to handling of stale cache entries under the condition of a busy backend (also see #22033).

It's just a refactoring to make the code more readable plus a new test.

Commits
-------

b14057c88a Refactor stale-while-revalidate code in HttpCache, add a (first?) test for it
2017-03-22 16:02:33 -07:00
Matthias Pigulla
b14057c88a Refactor stale-while-revalidate code in HttpCache, add a (first?) test for it 2017-03-22 16:02:29 -07:00
Jérémy Derussé
33f2a9a6f7
Adjust lock delay to avoid false error tests 2017-03-22 23:42:28 +01:00
Matthias Pigulla
30639c6af6 Minor cleanups in HttpCache, especially centralize Date header fixup 2017-03-22 15:30:57 -07:00
Fabien Potencier
0a5998d996 feature #21771 [FrameworkBundle] Add new "controller.service_arguments" tag to inject services into actions (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle] Add new "controller.service_arguments" tag to inject services into actions

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

Talking with @simensen and @weaverryan, we wondered if we could leverage the `ArgumentResolver` mechanism to make it inject services on demand, using e.g. autowiring.

```php
class PostController
{
  public function indexAction(Request $request, PostRepository $postRepository)
  {
    // PostRepository comes from the container
    $postRepository->findAll(); // ...
  }
}
```

This PR achieves that, using a new "controller.service_arguments" tag. Typically:
```yaml
services:
    AppBundle\Controller\PostController:
        autowire: true
        tags:
            - name: controller.service_arguments
```

It also supports with explicit wiring (thus doesn't necessarily require autowiring if you don't want to use it):
```yaml
services:
    AppBundle\Controller\PostController:
        tags:
            - name: controller.service_arguments
              action: fooAction
              argument: logger
              id: my_logger
```

~~The attached diff is bigger than strictly required for now, until #21770 is merged.~~

Todo:
- [x] rebase on top of #21770 when merged
- [x] add tests
- [x] add cleaning pass to remove empty service locators

Commits
-------

9c6e672780 [FrameworkBundle] Add new "controller.service_arguments" tag to inject services into actions
2017-03-22 15:24:31 -07:00
Fabien Potencier
b2d5ba7db7 feature #22114 [lock] Rename Quorum into Strategy (jderusse)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[lock] Rename Quorum into Strategy

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes (not consistent naming)
| New feature?  | no
| BC breaks?    | yes (but version 3.4 not yet released)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | none
| License       | MIT
| Doc PR        |

The term `Quorum` in Interface is confusing an not consistent with the Symfony project.
This PR switch to naming `Strategy\StrategyInterface` (like in adapter i `Cache` and `Ldap` component)

Commits
-------

1e9671b993 Rename Quorum into Strategy
2017-03-22 15:21:53 -07:00
Fabien Potencier
2eb5c979fa minor #22117 [Lock] Don't call blindly the redis client (jderusse)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Lock] Don't call blindly the redis client

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

Actual code rely on controls on the constructor. This PR add an assertion to avoid futur bugs

Commits
-------

e4db018b6d Don't call blindly the redis client
2017-03-22 15:17:31 -07:00
Jérémy Derussé
1e9671b993
Rename Quorum into Strategy 2017-03-22 23:05:31 +01:00
Maxime Steinhausser
57427cc01e Fix deprecation message 2017-03-22 22:52:11 +01:00
Jérémy Derussé
e4db018b6d
Don't call blindly the redis client 2017-03-22 22:50:35 +01:00
Fabien Potencier
a6b20d1e5c bug #19778 [Security] Fixed roles serialization on token from user object (eko)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] Fixed roles serialization on token from user object

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

This PR fixes the serialization of tokens when using `Role` objects provided from the user. Indeed, there were actually a reference issue that can causes fatal errors like the following one:

```
FatalErrorException in RoleHierarchy.php line 43:
Error: Call to a member function getRole() on string
```

Here is a small code example to reproduce and its output:

``` php
$user = new Symfony\Component\Security\Core\User\User('name', 'password', [
    new Symfony\Component\Security\Core\Role\Role('name')
]);
$token = new Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken($user, 'password', 'providerKey', $user->getRoles());

$serialized = serialize($token);
$unserialized = unserialize($serialized);

var_dump($unserialized->getRoles());
```

Before:

```
array(1) { [0]=> bool(true) }
```

After:

```
array(1) { [0]=> object(Symfony\Component\Security\Core\Role\Role)#15 (1) {["role":"Symfony\Component\Security\Core\Role\Role":private]=> string(4) "name" } }
```

Thank you

Commits
-------

dfa7f5020e [Security] Fixed roles serialization on token from user object
2017-03-22 14:44:57 -07:00
Nicolas Grekas
4927993835 Merge branch '3.2'
* 3.2:
  Fixed pathinfo calculation for requests starting with a question mark.
  [HttpFoundation] Fix missing handling of for/host/proto info from "Forwarded" header
  [Validator] Add object handling of invalid constraints in Composite
  [WebProfilerBundle] Remove uneeded directive in the form collector styles
  removed usage of $that
  HttpCache: New test for revalidating responses with an expired TTL
  [Serializer] [XML] Ignore Process Instruction
  [Security] simplify the SwitchUserListenerTest
  Revert "bug #21841 [Console] Do not squash input changes made from console.command event (chalasr)"
  [HttpFoundation] Fix Request::getHost() when having several hosts in X_FORWARDED_HOST
2017-03-22 22:42:42 +01:00
Fabien Potencier
1635a6a4e7 feature #20516 [Security][SecurityBundle] Enhance automatic logout url generation (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security][SecurityBundle] Enhance automatic logout url generation

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

This should help whenever:

- [the token does not implement the `getProviderKey` method](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Security/Http/Logout/LogoutUrlGenerator.php#L89-L99)
- you've got multiple firewalls sharing a same context but a logout listener only define on one of them.

##### Behavior:

> When not providing the firewall key:
>
>- Try to find the key from the token (unless it's an anonymous token)
>- If found, try to get the listener from the key. If the listener is found, stop there.
>- Try from the injected firewall key. If the listener is found, stop there.
>- Try from the injected firewall context. If the listener is found, stop there.
>
>The behavior remains unchanged when providing explicitly the firewall key. No fallback.

Commits
-------

5b7fe852aa [Security][SecurityBundle] Enhance automatic logout url generation
2017-03-22 14:38:03 -07:00
Fabien Potencier
c73009a996 feature #22081 [FrameworkBundle][Validator] Move Validator passes to the component (chalasr)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[FrameworkBundle][Validator] Move Validator passes to the component

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

Commits
-------

0b741da343 Move AddValidatorInitializersrPass & AddConstraintValidatorsPass to the Validator
2017-03-22 14:26:38 -07:00
Fabien Potencier
a25fd7ddbc minor #22112 Minor PR fixes (ro0NL)
This PR was squashed before being merged into the 3.3-dev branch (closes #22112).

Discussion
----------

Minor PR fixes

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

cc @fabpot  my bad :)

Commits
-------

0728fb91b8 typo
036b0414d6 Minor PR fixes
2017-03-22 14:24:53 -07:00
Fabien Potencier
6a1f5d4dfa feature #20567 [WebProfilerBundle] Improved cookie traffic (ro0NL)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[WebProfilerBundle] Improved cookie traffic

| Q             | A
| ------------- | ---
| Branch?       | "master"
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | comma-separated list of tickets fixed by the PR, if any
| License       | MIT
| Doc PR        | reference to the documentation PR, if any

![image](https://cloud.githubusercontent.com/assets/1047696/20455635/a033a814-ae60-11e6-8500-e60146f4619e.png)

Relates to #20569 in terms of getting _all_ the cookies.

Commits
-------

171c6d100e [WebProfilerBundle] Improved cookie traffic
2017-03-22 14:19:48 -07:00
Fabien Potencier
e3d90db747 bug #22036 Set Date header in Response constructor already (mpdude)
This PR was squashed before being merged into the 2.8 branch (closes #22036).

Discussion
----------

Set Date header in Response constructor already

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

Setting the `Date` header in the `Response` constructor has been removed in #14912 and changed to a more lazy approach in `getDate()`.

That way, methods like `getAge()`, `getTtl()` or `isFresh()` cause side effects as they eventually call `getDate()` and the Request "starts to age" once you call them.

I don't know if this would be a nice test, but current behaviour is

```php
        $response = new Response();
        $response->setSharedMaxAge(10);
        sleep(20);
        $this->assertTrue($response->isFresh());
        sleep(5);
        $this->assertTrue($response->isFresh());
        sleep(5);
        $this->assertFalse($response->isFresh());
```

A particular weird case is the `isCacheable()` method, because it calls `isFresh()` only under certain conditions, like particular status codes, no `ETag` present etc. This symptom is also described under "Cause of the problem" in #19390, however the problem is worked around there in other ways.

So, this PR suggests to effectively revert #14912.

Additionally, I'd like to suggest to move this special handling of the `Date` header into the `ResponseHeaderBag`. If the `ResponseHeaderBag` guards that we always have the `Date`, we would not need special logic in `sendHeaders()` and could also take care of https://github.com/symfony/symfony/pull/14912#issuecomment-110105215.

Commits
-------

3a7fa7ede2 Set Date header in Response constructor already
2017-03-22 14:18:49 -07:00
Matthias Pigulla
3a7fa7ede2 Set Date header in Response constructor already 2017-03-22 14:18:47 -07:00
Fabien Potencier
0a17358abf feature #19887 Sort alternatives alphabetically when a command is not found (javiereguiluz)
This PR was squashed before being merged into the 3.3-dev branch (closes #19887).

Discussion
----------

Sort alternatives alphabetically when a command is not found

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

Commits
-------

ba6c9464ea Sort commands like a human would do
f04b1bd72f Sort alternatives alphabetically when a command is not found
2017-03-22 14:10:51 -07:00
Roland Franssen
0728fb91b8 typo 2017-03-22 22:08:21 +01:00
Roland Franssen
036b0414d6 Minor PR fixes 2017-03-22 22:04:16 +01:00
Fabien Potencier
59dd7521a7 feature #20851 [Cache] Add CacheItem::getPreviousTags() (nicolas-grekas)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Cache] Add CacheItem::getPreviousTags()

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

As discussed in #19728

Commits
-------

da354660e0 [Cache] Add CacheItem::getPreviousTags()
2017-03-22 14:02:20 -07:00
Roland Franssen
171c6d100e [WebProfilerBundle] Improved cookie traffic 2017-03-22 21:55:42 +01:00
Robin Chalas
0b741da343 Move AddValidatorInitializersrPass & AddConstraintValidatorsPass to the Validator 2017-03-22 21:51:09 +01:00
Fabien Potencier
9761b44aa4 bug #22034 [Security] json auth listener should not produce a 500 response on bad request format (ogizanagi)
This PR was merged into the 3.3-dev branch.

Discussion
----------

[Security] json auth listener should not produce a 500 response on bad request format

| 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

To me, it looks wrong to simply throw a `BadCredentialsException` in the wild, which produces a 500 (unless an entrypoint handles it, which you probably don't have on a json login firewall). There isn't any server error, the client request originated the error due to a wrong format.

Instead, the listener should give a chance to the failure handler to resolve it, and return a proper 4XX response. (BTW, the `UsernamePasswordFormAuthenticationListener` also throws a similar `BadCredentialsException` on a too long submitted username, which is caught and forwarded to the failure handler)

Better diff: https://github.com/symfony/symfony/pull/22034/files?w=1

BTW, should we have another exception type like `BadCredentialsFormatException` or whatever in order to distinct a proper `BadCredentialsException` from a format issue in a failure listener?

Commits
-------

cb175a41c3 [Security] json auth listener should not produce a 500 response on bad request format
2017-03-22 13:49:06 -07:00
Nikolay Labinskiy
3599c476bf [Validator] fix URL validator to detect non supported chars according to RFC 3986 2017-03-22 13:42:34 -07:00
Fabien Potencier
f29664893d Merge branch '2.8' into 3.2
* 2.8:
  Fixed pathinfo calculation for requests starting with a question mark.
  [Security] simplify the SwitchUserListenerTest
2017-03-22 13:39:24 -07:00
Fabien Potencier
89bb89538b Merge branch '2.7' into 2.8
* 2.7:
  Fixed pathinfo calculation for requests starting with a question mark.
  [Security] simplify the SwitchUserListenerTest
2017-03-22 13:39:14 -07:00
Fabien Potencier
2240ecfa14 minor #22049 [Security] simplify the SwitchUserListenerTest (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] simplify the SwitchUserListenerTest

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

While working on #22048 I noticed that the `SwitchUserListenerTest` was more complicated than necessary by mocking a lot of stuff that didn't need to be mocked.

Commits
-------

923bbdbf9f [Security] simplify the SwitchUserListenerTest
2017-03-22 13:38:16 -07:00
Fabien Potencier
4599afef86 minor #20885 [Console] Option to disable stty (johmue)
This PR was squashed before being merged into the 3.3-dev branch (closes #20885).

Discussion
----------

[Console] Option to disable stty

| Q             | A
| ------------- | ---
| Branch?       |
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   |
| Fixed tickets |
| License       | MIT
| Doc PR        | reference to the documentation PR, if any

Shall fix problems in Windows based environments if e.g. git is installed and stty is therefore found but writes only cryptic rubbish into the cmd. In the case of console questions it is also possible that input can't be read properly by console component.

Commits
-------

a189a6c52e [Console] Option to disable stty
2017-03-22 13:36:10 -07:00
Johannes Mueller
a189a6c52e [Console] Option to disable stty 2017-03-22 13:36:08 -07:00
Nicolas Grekas
9c6e672780 [FrameworkBundle] Add new "controller.service_arguments" tag to inject services into actions 2017-03-22 21:34:42 +01:00
Fabien Potencier
04fcac74b1 Merge branch '2.8' into 3.2
* 2.8:
  [HttpFoundation] Fix missing handling of for/host/proto info from "Forwarded" header
  [Validator] Add object handling of invalid constraints in Composite
  [WebProfilerBundle] Remove uneeded directive in the form collector styles
  Revert "bug #21841 [Console] Do not squash input changes made from console.command event (chalasr)"
  [HttpFoundation] Fix Request::getHost() when having several hosts in X_FORWARDED_HOST
2017-03-22 13:31:03 -07:00