Commit Graph

26268 Commits

Author SHA1 Message Date
Maxime Steinhausser
f876fd9253 [DebugBundle] Reword an outdated comment about var dumper wiring 2017-08-09 13:56:35 +02:00
Fabien Potencier
9c84776861 bug #23752 Ignore memcached missing key error on session destroy (jderusse)
This PR was merged into the 2.7 branch.

Discussion
----------

Ignore memcached missing key error on session destroy

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

Since PHP 7 session_regenerate_id triggers a warning when the session is not started.

This PR, changes the behaviours of session_destroy in the `MemcachedSessionHandler` by returning true when the user try to delete a non-existing session.

Other handler:
- LegacyPdoSessionHandler  => don't check if key exists
- MongoDbSessionHandler  => don't check if key exists
- NullSessionHandler => always true
- PdoSessionHandler => don't check if key exists

Commits
-------

29538b621c Ignore memcached missing key error on dession destroy
2017-08-09 12:15:13 +02:00
Fabien Potencier
6727d41fd3 updated CHANGELOG 2017-08-09 12:12:24 +02:00
Fabien Potencier
8f862b2042 feature #23812 [FrameworkBundle] Allow micro kernel to subscribe events easily (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] Allow micro kernel to subscribe events easily

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

just by implementing `EventSubscriberInterface`. See related issue for other implementation suggestions.

Commits
-------

b31542eb22 [FrameworkBundle] Allow micro kernel to subscribe events easily
2017-08-09 12:11:16 +02:00
Fabien Potencier
fea72fb112 bug #23829 Fixed the exception page design in responsive mode (javiereguiluz)
This PR was merged into the 3.3 branch.

Discussion
----------

Fixed the exception page design in responsive mode

| 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 broke the design of the exception pages in responsive mode between Symfony 3.3.5 and 3.3.6:

### Symfony 3.3.5

![sf-335](https://user-images.githubusercontent.com/73419/29074568-127cbf92-7c50-11e7-9e4e-51ad1c61e03c.png)

### Symfony 3.3.6

![sf-336](https://user-images.githubusercontent.com/73419/29074567-11d38b48-7c50-11e7-9114-036cbe4d07e9.png)

---

This PR fixes the issue and also removes some CSS leftovers used during the redesign.

Commits
-------

cd8af2284d Fixed the exception page design in responsive mode
2017-08-09 12:08:44 +02:00
Fabien Potencier
84fb318d54 minor #23835 [HttpFoundation] Remove length limit on ETag (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Remove length limit on ETag

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

Commits
-------

e6406d21cd [HttpFoundation] Remove length limit on ETag
2017-08-09 12:07:31 +02:00
Nicolas Grekas
fd16993a37 feature #22187 [DependencyInjection] Support local binding (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #22187).

Discussion
----------

[DependencyInjection] Support local binding

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

> A great idea came out on Slack about local bindings.
> We could allow injecting services based on type hints on a per service/file basis:
> ```yml
> services:
>     _defaults:
>         bind:
>             BarInterface: '@usual_bar'
>
>     Foo:
>         bind:
>             BarInterface: '@alternative_bar'
>             $quz: 'quzvalue'
> ```
>
> This way, `@usual_bar` will be injected in any parameter type hinted as `BarInterface` (in a constructor or a method signature), but only for this service/file.
> Note that bindings could be unused, giving a better solution than https://github.com/symfony/symfony/pull/22152 to https://github.com/symfony/symfony/pull/21711.
>
> As named parameters are usable in arguments, bindings could be usable in arguments too:
> ```yml
> services:
>     Foo:
>         arguments:
>             BarInterface: '@bar'
> ```

~Named parameters aren't supported yet.~

Edit:

> Note that bindings could be unused

Current behavior is throwing an exception when a binding is not used at all, in no services of a file if it was inherited from `_defaults` or in no services created from a prototype.
It will pass if the bindings are all used in at least one service.

Commits
-------

81f2652 [DependencyInjection] Support local binding
2017-08-09 11:26:28 +02:00
Guilhem Niot
81f2652371 [DependencyInjection] Support local binding 2017-08-09 11:26:25 +02:00
Nicolas Grekas
e6406d21cd [HttpFoundation] Remove length limit on ETag 2017-08-09 07:21:07 +02:00
Nicolas Grekas
65fa8c2abf Merge branch '2.7' into 2.8
* 2.7:
  [DI] Fix some docblocks
2017-08-08 23:33:56 +02:00
Robin Chalas
0bcc6bb064 minor #23833 [DI] Fix some docblocks (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix some docblocks

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

Commits
-------

a22e839 [DI] Fix some docblocks
2017-08-08 23:29:37 +02:00
Nicolas Grekas
dd8622915d [DI] Fix some docblocks 2017-08-08 20:36:00 +02:00
Nicolas Grekas
a22e839592 [DI] Fix some docblocks 2017-08-08 19:53:57 +02:00
Javier Eguiluz
cd8af2284d Fixed the exception page design in responsive mode 2017-08-08 15:39:42 +02:00
Harold Iedema
cadbed301f [Console] Log exit codes as debug messages instead of errors 2017-08-08 12:48:54 +02:00
Nicolas Grekas
90099706c6 Revert "feature #21038 [FrameworkBundle] deprecated cache:clear with warmup (fabpot)"
This reverts commit 3495b35e4f, reversing
changes made to 7f7b897ee2.
2017-08-08 08:44:34 +02:00
Nicolas Grekas
fea348c7c4 fix typo 2017-08-07 21:17:34 +02:00
Nicolas Grekas
09272ff0f7 fix bad merge 2017-08-07 20:31:05 +02:00
Fabien Potencier
100fe4e97e feature #23741 [DI] Generate one file per service factory (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Generate one file per service factory

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

See #23678 for background on this proposal.

Commits
-------

4037009490 [DI] Generate one file per service factory
2017-08-07 18:48:44 +02:00
Nicolas Grekas
0effd2738b feature #23807 [Debug] Trigger a deprecation when using an internal class/trait/interface (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #23807).

Discussion
----------

[Debug] Trigger a deprecation when using an internal class/trait/interface

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no
| Deprecations? | not truly <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | https://github.com/symfony/symfony/issues/23800
| License       | MIT
| Doc PR        |

Trigger a deprecation when the user uses an internal class/trait/interface.
The deprecation is not triggered when an `@internal` is used in the same vendor.

Commits
-------

b89ba29 [Debug] Trigger a deprecation when using an internal class/trait/interface
2017-08-07 14:30:55 +02:00
Guilhem Niot
b89ba293dd [Debug] Trigger a deprecation when using an internal class/trait/interface 2017-08-07 14:30:49 +02:00
Nicolas Grekas
df78a7304b Merge branch '3.3' into 3.4
* 3.3:
  Hash cache keys on save
  [HttpKernel] Remove isset call used for legacy
2017-08-07 13:18:35 +02:00
izzyp
c254cacdc5 [Workflow] Added an transition completed event 2017-08-07 10:31:57 +02:00
Jérémy Derussé
29538b621c
Ignore memcached missing key error on dession destroy 2017-08-07 09:30:13 +02:00
Nicolas Grekas
267b016415 bug #23763 [Cache] Hash cache key on save (lstrojny)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Hash cache key on save

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

Cache keys are not hashed right now in adapters extending from `AbstractAdapter`. This PR fixes this. I am not familiar enough with the cache test suite so I don't know where to add an regression test.

Commits
-------

94b1b12 Hash cache keys on save
2017-08-07 09:04:14 +02:00
Lars Strojny
94b1b12b55 Hash cache keys on save 2017-08-07 09:02:07 +02:00
Nicolas Grekas
99806c5da3 minor #23803 [HttpKernel] Remove isset call used for legacy (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpKernel] Remove isset call used for legacy

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

Added in #9628 in which the request stack dependency was nullable. Forgotten to be removed in #14634.

Commits
-------

e0a6010 [HttpKernel] Remove isset call used for legacy
2017-08-07 08:27:12 +02:00
Nicolas Grekas
4037009490 [DI] Generate one file per service factory 2017-08-06 20:25:40 +02:00
Nicolas Grekas
266d9d375e minor #23801 Continuation of #23624 (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #23801).

Discussion
----------

Continuation of #23624

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

See https://github.com/symfony/symfony/pull/23624#discussion_r131539736

cc @chalasr

Also included service injection for init:acl + set:acl and simplification of lint:xliff + lintt:yaml.

Btw, i think init:acl needs to be renamed to acl:init :)

Commits
-------

5f637c1 Continuation of #23624
2017-08-06 20:13:25 +02:00
Roland Franssen
5f637c1629 Continuation of #23624 2017-08-06 20:13:14 +02:00
Maxime Steinhausser
b31542eb22 [FrameworkBundle] Allow micro kernel to subscribe events easily 2017-08-06 20:06:06 +02:00
Nicolas Grekas
8be06c45f9 Merge branch '3.3' into 3.4
* 3.3:
  [Profiler] Fix request_collector check in main layout
  Github template: Remove EOM 3.2 from branch suggestion
  [Security] Fix security.interactive_login event const doc block
  Update Container.php: Deprecated -> @deprecated
  allow phpdocumentor/reflection-docblock >=3.2.1
  Avoid infinite loops when profiler data is malformed
  [FrameworkBundle] Warmup annotations for bundle-less controllers and entities
  [HttpFoundation] Generate safe fallback filename for wrongly encoded filename
2017-08-06 15:42:33 +02:00
Nicolas Grekas
049785b11b Merge branch '2.8' into 3.3
* 2.8:
  Github template: Remove EOM 3.2 from branch suggestion
  [Security] Fix security.interactive_login event const doc block
  Avoid infinite loops when profiler data is malformed
  [HttpFoundation] Generate safe fallback filename for wrongly encoded filename
2017-08-06 15:42:17 +02:00
Nicolas Grekas
684975ddf3 Merge branch '2.7' into 2.8
* 2.7:
  Github template: Remove EOM 3.2 from branch suggestion
  [Security] Fix security.interactive_login event const doc block
  Avoid infinite loops when profiler data is malformed
  [HttpFoundation] Generate safe fallback filename for wrongly encoded filename
2017-08-06 15:41:54 +02:00
Maxime Steinhausser
c35cdba6d2 [Profiler] Fix request_collector check in main layout 2017-08-06 15:12:58 +02:00
Maxime Steinhausser
e0a601092b [HttpKernel] Remove isset call used for legacy 2017-08-06 14:00:34 +02:00
Maxime Steinhausser
f6c83cf518 [Security] Fix security.interactive_login event const doc block 2017-08-06 13:40:38 +02:00
Nicolas Grekas
736f0d0d93 feature #23624 [FrameworkBundle] Commands as a service (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #23624).

Discussion
----------

[FrameworkBundle] Commands as a service

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

Next step towards #23488

It's a work in progress if we want to do all commands at once (im fine :)). But i think we should review `assets:install` first.

Also im assuming framework commands can rely on `getApplication()->getKernel()` from the framework application (we already do that in some commands). That saves a dep on `@kernel`.

And filesystem as a service; perhaps drop that as well :)

Commits
-------

de1dc0b [FrameworkBundle] Commands as a service
2017-08-06 12:29:14 +02:00
Roland Franssen
de1dc0b469 [FrameworkBundle] Commands as a service 2017-08-06 12:29:12 +02:00
Yurii K
259f9cc4ad Update Container.php: Deprecated -> @deprecated
Deprecated -> @deprecated
2017-08-06 02:56:19 +03:00
Fabien Potencier
84b6593cd1 minor #23794 [PropertyInfo] allow phpdocumentor/reflection-docblock >=3.2.1 (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[PropertyInfo] allow phpdocumentor/reflection-docblock >=3.2.1

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

Commits
-------

2f3ac8f53e allow phpdocumentor/reflection-docblock >=3.2.1
2017-08-05 19:50:41 +02:00
Fabien Potencier
457d57b767 minor #23781 [Workflow] do not emit not needed guard events (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Workflow] do not emit not needed guard events

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

Commits
-------

47c68e12ea [Workflow] do not emit not needed guard events
2017-08-05 19:44:04 +02:00
Fabien Potencier
a12ebf72ba feature #21111 [Validator] add groups support to the Valid constraint (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] add groups support to the Valid constraint

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

Commits
-------

0ca27ccfde add groups support to the Valid constraint
2017-08-05 19:39:51 +02:00
Fabien Potencier
73d3d5a91f feature #20361 [Config] Enable cannotBeEmpty along with requiresAtLeastOneElement (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #20361).

Discussion
----------

[Config] Enable cannotBeEmpty along with requiresAtLeastOneElement

| Q | A |
| --- | --- |
| Branch? | "master" |
| Bug fix? | no |
| New feature? | yes |
| BC breaks? | no |
| Deprecations? | no |
| Tests pass? | yes
| Fixed tickets | #20356 |
| License | MIT |
| Doc PR | reference to the documentation PR, if any |

As @vudaltsov mentioned, we ignore any calls to `ArrayNodeDefinition::cannotBeEmpty`, which can lead to unexpected behavior. Imo. all subclasses should follow the base API.

Commits
-------

d40e7e4c2d [Config] Enable cannotBeEmpty along with requiresAtLeastOneElement
2017-08-05 19:34:46 +02:00
Roland Franssen
d40e7e4c2d [Config] Enable cannotBeEmpty along with requiresAtLeastOneElement 2017-08-05 19:34:44 +02:00
Fabien Potencier
3b54ce8d7e minor #23700 [Workflow] add getter for workflow (Simperfit)
This PR was merged into the 3.4 branch.

Discussion
----------

[Workflow] add getter for workflow

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

Commits
-------

9910ba1ad4 [Workflow] feature: add getter in workflow
2017-08-05 19:32:15 +02:00
Fabien Potencier
9d66ee403e minor #23786 [VarDumper] Remove leading 0 in microseconds of date caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Remove leading 0 in microseconds of date caster

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

It looks more like a [engineering notation](https://en.wikipedia.org/wiki/Engineering_notation). We can now better discern **milli**seconds and **micro**seconds.

```php
// before -> after
1.000000 -> 1.0
1.100000 -> 1.100
1.120000 -> 1.120
1.123000 -> 1.123
1.123400 -> 1.123400
1.123450 -> 1.123450
1.123456 -> 1.123456
```

Commits
-------

94956ebae4 Remove leading 0 in ms of date caster
2017-08-05 19:30:36 +02:00
Dany Maillard
94956ebae4 Remove leading 0 in ms of date caster 2017-08-05 16:55:51 +02:00
Nicolas Grekas
ffa005c036 bug #23658 [HttpFoundation] Generate safe fallback filename for wrongly encoded filename (xelaris)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Generate safe fallback filename for wrongly encoded filename

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

This handles the case where the encoding of a random string cannot be detected. Until now this causes a PHP Warning `mb_strlen(): Unknown encoding ""`.

Commits
-------

8fd5569 [HttpFoundation] Generate safe fallback filename for wrongly encoded filename
2017-08-05 16:30:39 +02:00
Nicolas Grekas
c099f582fc bug #23776 [FrameworkBundle] Warmup annotations for bundle-less controllers and entities (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle] Warmup annotations for bundle-less controllers and entities

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

feb5e62 [FrameworkBundle] Warmup annotations for bundle-less controllers and entities
2017-08-05 16:29:53 +02:00
Nicolas Grekas
4d808644b8 Merge branch '3.3' into 3.4
* 3.3:
  [Serializer] fix tests for Yaml component 3.4
2017-08-05 15:26:16 +02:00
Christian Flothmann
6443c963a6 [Serializer] fix tests for Yaml component 3.4 2017-08-05 09:02:17 +02:00
Christian Flothmann
2f3ac8f53e allow phpdocumentor/reflection-docblock >=3.2.1 2017-08-05 08:05:00 +02:00
Christian Flothmann
978eca9fe4 Merge branch '3.3' into 3.4
* 3.3:
  better errors when security deps are missing
2017-08-04 16:18:17 +02:00
Christian Flothmann
baa1e7f677 minor #22913 [Yaml] Deprecate tags using colon (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #22913).

Discussion
----------

[Yaml] Deprecate tags using colon

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

Using a colon in a tag doesn't look like yaml and causes trouble (see https://github.com/symfony/symfony/pull/22878), so I propose to just deprecate these tags in favor of more consistent tags.

```yml
- !php/const:PHP_INT_MAX
- !php/object:O:30:"Symfony\Component\Yaml\Tests\A":1:{s:1:"a";s:3:"foo";}
```
would become
```yml
- !php/const PHP_INT_MAX
- !php/object O:30:"Symfony\Component\Yaml\Tests\A":1:{s:1:"a";s:3:"foo";}
```

Commits
-------

9815af3 [Yaml] Deprecate tags using colon
2017-08-04 15:29:48 +02:00
Guilhem Niot
9815af3810 [Yaml] Deprecate tags using colon 2017-08-04 15:29:32 +02:00
Amrouche Hamza
9910ba1ad4
[Workflow] feature: add getter in workflow 2017-08-04 11:58:48 +02:00
Grégoire Pineau
f693fcd2ea bug #23638 [FrameworkBundle][Workflow] better errors when security deps are missing (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle][Workflow] better errors when security deps are missing

| 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/23499#discussion_r128752026
| License       | MIT
| Doc PR        |

All the referenced services must either be explicitly configured or the SecurityBundle must be installed with some security related config being enabled. Otherwise, you will end up with a not so useful error message.

Commits
-------

56ee4aa better errors when security deps are missing
2017-08-04 10:02:36 +02:00
Christian Flothmann
56ee4aa543 better errors when security deps are missing 2017-08-04 09:27:11 +02:00
Javier Eguiluz
e5ef9fb74a Avoid infinite loops when profiler data is malformed 2017-08-03 22:11:44 +02:00
Christian Flothmann
47c68e12ea [Workflow] do not emit not needed guard events 2017-08-03 20:22:22 +02:00
Nicolas Grekas
0f2563c165 Merge branch '3.3' into 3.4
* 3.3:
  [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services
  Docblock improvement
  bumped Symfony version to 2.8.27
  updated VERSION for 2.8.26
  updated CHANGELOG for 2.8.26
  bumped Symfony version to 2.7.34
  updated VERSION for 2.7.33
  update CONTRIBUTORS for 2.7.33
  updated CHANGELOG for 2.7.33
2017-08-03 14:15:07 +02:00
Nicolas Grekas
e5512374c0 Merge branch '2.8' into 3.3
* 2.8:
  [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services
  Docblock improvement
  bumped Symfony version to 2.8.27
  updated VERSION for 2.8.26
  updated CHANGELOG for 2.8.26
  bumped Symfony version to 2.7.34
  updated VERSION for 2.7.33
  update CONTRIBUTORS for 2.7.33
  updated CHANGELOG for 2.7.33
2017-08-03 14:14:47 +02:00
Nicolas Grekas
2807709fed Merge branch '2.7' into 2.8
* 2.7:
  [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services
  bumped Symfony version to 2.7.34
  updated VERSION for 2.7.33
  update CONTRIBUTORS for 2.7.33
  updated CHANGELOG for 2.7.33
2017-08-03 14:13:46 +02:00
Fabien Potencier
e1ffb3341d bug #23729 [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Bridge\ProxyManager] Dont call __destruct() on non-instantiated services

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

While working on making #23678 green, I discovered that if a lazy service implements `__destruct`, then that service is not lazy anymore: it is created at destruct time.
That behavior is documented at https://github.com/Ocramius/ProxyManager/issues/258 (+related issues).

While I may understand why this behavior is the default for ProxyManager, it does not fit our "lazy-services" use case to me. Typically, nobody wants a database connection to be created to destruct the uninitialized lazy-proxy.

Blocks #23678

Commits
-------

2d79ffa0ca [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services
2017-08-03 14:06:53 +02:00
Fabien Potencier
ce1050820f minor #23766 Consistently use 7 chars of sha256 for hash-based id generation (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

Consistently use 7 chars of sha256 for hash-based id generation

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

This prevents generating over long service ids, and for filesystem-related changes, makes the Windows 258 chars limit farther.

Commits
-------

bc22cdd034 Consistently use 7 chars of sha256 for hash-based id generation
2017-08-03 14:04:31 +02:00
Nicolas Grekas
feb5e62a5a [FrameworkBundle] Warmup annotations for bundle-less controllers and entities 2017-08-03 13:53:52 +02:00
Nicolas Grekas
2d79ffa0ca [Bridge\ProxyManager] Dont call __destruct() on non-instantiated services 2017-08-03 13:36:00 +02:00
Nicolas Grekas
bc22cdd034 Consistently use 7 chars of sha256 for hash-based id generation 2017-08-03 13:27:37 +02:00
Nicolas Grekas
6c1a5e1560 Merge branch '3.3' into 3.4
* 3.3:
  Removed useless argument $definition
  Fix comment
  [Config] Fix checking class existence freshness
  bumped Symfony version to 3.3.7
  updated VERSION for 3.3.6
  updated CHANGELOG for 3.3.6
  Bump minimal PHP version to ^5.5.9|>=7.0.8
2017-08-03 11:34:20 +02:00
Christian Flothmann
d9bf2534ef minor #22948 [Yaml] Recommend using quotes instead of PARSE_KEYS_AS_STRINGS (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #22948).

Discussion
----------

[Yaml] Recommend using quotes instead of PARSE_KEYS_AS_STRINGS

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

Sorry for opening this so lately... I just realized that we could get rid of `Yaml::PARSE_KEYS_AS_STRINGS` just by recommending using quotes...

~This way we don't allow a behavior not respecting the spec and we won't need to deprecate `PARSE_KEYS_AS_STRINGS` later.~

~Is it too late for this to be merged in 3.3?~

ping @xabbuh

Commits
-------

b63c55c [Yaml] Recommend using quotes instead of PARSE_KEYS_AS_STRINGS
2017-08-03 11:28:17 +02:00
Guilhem Niot
b63c55c72c [Yaml] Recommend using quotes instead of PARSE_KEYS_AS_STRINGS 2017-08-03 11:25:34 +02:00
Nicolas Grekas
2454a4f3f9 feature #23712 [DependencyInjection] Deprecate autowiring service auto-registration (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #23712).

Discussion
----------

[DependencyInjection] Deprecate autowiring service auto-registration

| 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 | https://github.com/symfony/symfony/issues/23350
| License       | MIT
| Doc PR        |

Fix https://github.com/symfony/symfony/issues/23350, to make autowiring more predictable.

Commits
-------

969a207 [DependencyInjection] Deprecate autowiring service auto-registration
2017-08-03 11:15:05 +02:00
Guilhem Niot
969a20780e [DependencyInjection] Deprecate autowiring service auto-registration 2017-08-03 11:07:16 +02:00
Nicolas Grekas
4860b3e5fd feature #23719 Autoconfigure instances of ArgumentValueResolverInterface (BPScott)
This PR was merged into the 3.4 branch.

Discussion
----------

Autoconfigure instances of ArgumentValueResolverInterface

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

Autoconfigure instances of `Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface` so they get the `controller.argument_value_resolver` tag automatically added to them.

This avoids avoid having to tag each resolver or add an `_instanceof` configuration such as
```yaml
_instanceof:
    Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface:
        tags: [controller.argument_value_resolver]
```

Commits
-------

ee4dc20 Autoconfigure instances of ArgumentValueResolverInterface
2017-08-03 11:05:16 +02:00
Nicolas Grekas
a479583a81 minor #23765 [FrameworkBundle] Fix comment (Lctrs)
This PR was merged into the 3.3 branch.

Discussion
----------

[FrameworkBundle] Fix comment

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

Actually, DataUriNormalizer runs before the serializer.normalizer.object since it has a higher priority (-920 vs -1000).

Commits
-------

103b23e Fix comment
2017-08-03 11:01:56 +02:00
Nicolas Grekas
52cf7657d0 bug #23703 Bump minimal PHP version to ^5.5.9|>=7.0.8 (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

Bump minimal PHP version to ^5.5.9|>=7.0.8

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

As spotted in the linked issue, because of https://bugs.php.net/72229.

Commits
-------

2282a6f Bump minimal PHP version to ^5.5.9|>=7.0.8
2017-08-03 10:59:45 +02:00
Maxime Steinhausser
584b7b44df minor #23744 [Form] Removed useless argument $definition (yceruto)
This PR was merged into the 3.3 branch.

Discussion
----------

[Form] Removed useless argument $definition

| 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

After https://github.com/symfony/symfony/pull/22175/files this argument is not used anymore.

Commits
-------

81396c7fac Removed useless argument $definition
2017-08-02 23:54:26 +02:00
Yonel Ceruto
81396c7fac Removed useless argument $definition 2017-08-02 17:43:36 -04:00
Nicolas Grekas
5cc1648ba4 [DI] Generate shorter method names for class-based ids 2017-08-02 17:38:38 +02:00
Jérôme Parmentier
103b23efb6 Fix comment 2017-08-02 16:33:39 +02:00
Nicolas Grekas
a63ab77624 [Config] Fix checking class existence freshness 2017-08-02 11:40:26 +02:00
Valentin
ce86449f81 Docblock improvement 2017-08-01 18:09:35 +03:00
Fabien Potencier
468b44a031 bumped Symfony version to 3.3.7 2017-08-01 13:24:30 +02:00
Fabien Potencier
cb1835aa28 updated VERSION for 3.3.6 2017-08-01 12:25:59 +02:00
Fabien Potencier
927f950019 bumped Symfony version to 3.2.14 2017-08-01 12:20:44 +02:00
Fabien Potencier
7ce788b5dd updated VERSION for 3.2.13 2017-08-01 11:40:19 +02:00
Fabien Potencier
6f05bebe1f bumped Symfony version to 2.8.27 2017-08-01 11:29:28 +02:00
Ben Scott
ee4dc20e0f Autoconfigure instances of ArgumentValueResolverInterface
Add the controller.argument_value_resolver tag to instances of
ArgumentValueResolverInterface
2017-08-01 10:20:43 +01:00
Fabien Potencier
d2e8f38a78 updated VERSION for 2.8.26 2017-08-01 11:05:02 +02:00
Fabien Potencier
8acbd12a24 bumped Symfony version to 2.7.34 2017-08-01 09:21:40 +02:00
Fabien Potencier
b30d34baf6 updated VERSION for 2.7.33 2017-08-01 09:07:03 +02:00
Fabien Potencier
8e517f6326 feature #23706 [Webprofiler] Improve sql explain table display (mimol91)
This PR was merged into the 3.4 branch.

Discussion
----------

[Webprofiler] Improve sql explain table display

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

Table which is shown in Weprofiler is not clean while values in sql explain table are long.
This PR adds horizontal scroll for long tables.

**Related PR in Doctrine bundle:** https://github.com/doctrine/DoctrineBundle/pull/681
_(It does not cause any backward compatibility problems)_

**Before:**
![before](https://user-images.githubusercontent.com/2659069/28733410-0ca76826-73ed-11e7-9fea-b3c49a5442ed.gif)

**After:**
![after](https://user-images.githubusercontent.com/2659069/28733415-11b76ae6-73ed-11e7-9e1a-ace661a1cd44.gif)

Commits
-------

2769550950 improve sql explain table display
2017-08-01 07:51:31 +02:00
Jérémy Derussé
67ecc71364
Deprecate Filesystem/LockHandler 2017-07-31 11:53:49 +02:00
Adam Szaraniec
2769550950 improve sql explain table display 2017-07-30 19:02:54 +04:00
Nicolas Grekas
2282a6f895 Bump minimal PHP version to ^5.5.9|>=7.0.8 2017-07-29 23:54:42 +02:00
Nicolas Grekas
c36262eb1f Merge branch '3.3' into 3.4
* 3.3:
  fix typo
2017-07-29 23:53:22 +02:00
Nicolas Grekas
b984d512fb fix typo 2017-07-29 23:53:09 +02:00
Nicolas Grekas
45a3ab9ed4 Merge branch '3.3' into 3.4
* 3.3:
  fixed CS
  Remove unused constant
  fix merge
  [Form] Add notice to upgrade to PHP v7.0.8+
  Fix passing options with defaultCommand
2017-07-29 23:28:14 +02:00
Nicolas Grekas
75c3ecaa0f Merge branch '3.2' into 3.3
* 3.2:
  Remove unused constant
  Fix passing options with defaultCommand
2017-07-29 23:27:59 +02:00
Nicolas Grekas
8c8958ec7d Merge branch '2.8' into 3.2
* 2.8:
  Remove unused constant
  Fix passing options with defaultCommand
2017-07-29 23:27:41 +02:00
Nicolas Grekas
359e2d9a3d Merge branch '2.7' into 2.8
* 2.7:
  Remove unused constant
  Fix passing options with defaultCommand
2017-07-29 23:26:04 +02:00
Nicolas Grekas
15ceb18316 [Bridge/ProxyManager] Relax test to allow protected factories on master 2017-07-29 23:25:23 +02:00
Fabien Potencier
8f5141d4f7 bug #22244 [Console] Fix passing options with defaultCommand (Jakub Sacha)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Fix passing options with defaultCommand

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

Seems like overwriting input for the default command is not needed (anymore?). I don't know where the removed comment comes from originally.

Use case: i want to call default command and use options at the same time:
app/console --abc=true

Commits
-------

761de99552 Fix passing options with defaultCommand
2017-07-29 09:58:31 +02:00
Fabien Potencier
a6f44d2a23 fixed CS 2017-07-29 08:57:55 +02:00
AbdElKader Bouadjadja
7168d89cf2 Remove unused constant 2017-07-28 23:20:34 +02:00
Alexander Schwenn
8fd5569577 [HttpFoundation] Generate safe fallback filename for wrongly encoded filename 2017-07-28 22:45:10 +02:00
Fabien Potencier
84f4fb6e60 bug #23705 [Form] Add notice to upgrade to PHP v7.0.8+ (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Form] Add notice to upgrade to PHP v7.0.8+

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

So that PHP7 < 7.0.8 users get a notice about the issue.

Commits
-------

0347e5a5d3 [Form] Add notice to upgrade to PHP v7.0.8+
2017-07-28 20:27:28 +02:00
Nicolas Grekas
9c53108175 Merge branch '3.2' into 3.3
* 3.2:
  fix merge
2017-07-28 18:46:00 +02:00
Nicolas Grekas
21f1e102b6 fix merge 2017-07-28 18:45:44 +02:00
Nicolas Grekas
0347e5a5d3 [Form] Add notice to upgrade to PHP v7.0.8+ 2017-07-28 18:35:34 +02:00
Nicolas Grekas
531b294b21 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Remove unused props from the PhpDumper
  [VarDumper] Keep and reuse array stubs in memory
  [ProxyManager] Cleanup fixtures
  [Console][WebServerBundle] Use "exec" when possible
  [Debug] HTML-escape array key
  Add some phpdocs for IDE autocompletion and better SCA
  Fixed typo in docblock
2017-07-28 17:30:20 +02:00
Nicolas Grekas
3088e0a304 Merge branch '3.2' into 3.3
* 3.2:
  [DI] Remove unused props from the PhpDumper
  [ProxyManager] Cleanup fixtures
  [Debug] HTML-escape array key
  Add some phpdocs for IDE autocompletion and better SCA
  Fixed typo in docblock
2017-07-28 17:27:31 +02:00
Nicolas Grekas
90b55193d1 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Remove unused props from the PhpDumper
  [ProxyManager] Cleanup fixtures
  [Debug] HTML-escape array key
  Add some phpdocs for IDE autocompletion and better SCA
  Fixed typo in docblock
2017-07-28 17:22:55 +02:00
Nicolas Grekas
4fe888906e Merge branch '2.7' into 2.8
* 2.7:
  [DI] Remove unused props from the PhpDumper
  [ProxyManager] Cleanup fixtures
  [Debug] HTML-escape array key
  Add some phpdocs for IDE autocompletion and better SCA
2017-07-28 17:21:22 +02:00
Nicolas Grekas
ee345ee4de minor #23590 Fixed typo in docblock in AuthenticationExpiredException (iltar)
This PR was merged into the 2.8 branch.

Discussion
----------

Fixed typo in docblock in AuthenticationExpiredException

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

Found a small typo, applied it in the lowest branch possible.

Commits
-------

432d2de Fixed typo in docblock
2017-07-28 10:52:20 +02:00
Kévin Dunglas
f1aa45c517 [DI] Remove unused props from the PhpDumper 2017-07-28 10:50:38 +02:00
Fabien Potencier
f20b959e51 minor #23693 [DI][ProxyManager] Pass the factory code to execute to DumperInterface::getProxyFactoryCode() (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI][ProxyManager] Pass the factory code to execute to DumperInterface::getProxyFactoryCode()

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

Passing the full code to call the factory is more flexible, as spotted while working on #23678.

Commits
-------

0754617c52 [DI][ProxyManager] Pass the factory code to execute to DumperInterface::getProxyFactoryCode()
2017-07-28 09:30:59 +02:00
Fabien Potencier
ccfb4f238f bug #23683 [VarDumper] Keep and reuse array stubs in memory (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[VarDumper] Keep and reuse array stubs in memory

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

(to be reviewed [ignoring whitespaces](https://github.com/symfony/symfony/pull/23683/files?w=1))

As highlighted by @vtsykun in #23620, the patch in #23644 improves performance but increases the memory usage.

The issue is that even a small `array($k => $v)` consumes more memory than a `new Stub()`.
That's a shame, but since our small arrays have a low variety, we can keep them in a cache and leverage php's COW mechanism to reduce memory. Effectively, this creates a memory leak. But the leak is upper bounded by the data you had already in memory, since that's what is cloned. Looking at the numbers, it looks worth it:

|   | 3.3.5 | +#23644 | +this PR
| --- | --- | --- | ---
| Wall Time    | 39.4s | 26.1s | ~~18.6s~~ 17.3s
| Memory       | 391MB | 539MB | ~~217MB~~ 216MB

https://blackfire.io/profiles/compare/846b58bc-7863-4502-9ca2-f82eebd4173f/graph

Commits
-------

92fa55dd8b [VarDumper] Keep and reuse array stubs in memory
2017-07-28 08:49:46 +02:00
Nicolas Grekas
92fa55dd8b [VarDumper] Keep and reuse array stubs in memory 2017-07-28 08:06:09 +02:00
Fabien Potencier
3f31266f18 minor #23689 [ProxyManager] Cleanup fixtures (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[ProxyManager] Cleanup fixtures

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

Just noticed that these fixture files are not maintainable. And we don't need them at all in fact, let's drop them.

Commits
-------

31843d6f98 [ProxyManager] Cleanup fixtures
2017-07-28 07:41:14 +02:00
Nicolas Grekas
0754617c52 [DI][ProxyManager] Pass the factory code to execute to DumperInterface::getProxyFactoryCode() 2017-07-27 19:12:50 +02:00
Tobias Nyholm
f4c5cff97d [Workflow] Adding workflow name to the announce event 2017-07-27 10:17:42 +02:00
Nicolas Grekas
31843d6f98 [ProxyManager] Cleanup fixtures 2017-07-27 10:00:51 +02:00
Fabien Potencier
a96d85ecff minor #23633 [Form] Add some phpdocs for IDE autocompletion and better SCA (Koc)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Add some phpdocs for IDE autocompletion and better SCA

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

@ogizanagi I've tryed add single phpdoc `@method FormInterface[] getIterator()` to `FormInterface` but it not works correctly in PHPStorm. Have you any ideas?

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

Commits
-------

d30c751781 Add some phpdocs for IDE autocompletion and better SCA
2017-07-27 08:21:20 +02:00
Nicolas Grekas
50b5696779 bug #23684 [Debug] Missing escape in debug output (c960657)
This PR was merged into the 2.7 branch.

Discussion
----------

[Debug] Missing escape in debug output

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

When pretty-printing an exception, the debug handler does not properly escape array keys.

The problem only occurs when debug output is enabled, so this is not considered a [security issue](http://symfony.com/doc/current/contributing/code/security.html) (according to @fabpot), because the debug tools [should not be used in production](https://symfony.com/doc/current/components/debug.html#usage).

A test for this is included in my patch for #18722.

Commits
-------

636777d [Debug] HTML-escape array key
2017-07-26 22:00:18 +02:00
Nicolas Grekas
7b6d8948ce [Console][WebServerBundle] Use "exec" when possible 2017-07-26 18:08:22 +02:00
Christian Schmidt
636777dc61 [Debug] HTML-escape array key 2017-07-26 17:00:11 +02:00
Nicolas Grekas
6bbb391175 Merge branch '3.3' into 3.4
* 3.3:
  minor fix
2017-07-26 10:16:15 +02:00
Nicolas Grekas
dd9b5eb9ca minor fix 2017-07-26 10:13:02 +02:00
Nicolas Grekas
f9c4621800 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Make dumped docblocks less verbose
  [VarDumper] Dont use Stub objects for arrays
2017-07-26 10:10:47 +02:00
Nicolas Grekas
34c68f956c Merge branch '3.2' into 3.3
* 3.2:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:58:57 +02:00
Nicolas Grekas
ceb4393ca5 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:58:16 +02:00
Nicolas Grekas
57bf748d6e Merge branch '2.7' into 2.8
* 2.7:
  [DI] Make dumped docblocks less verbose
2017-07-26 09:56:01 +02:00
Nicolas Grekas
1ade5d8658 [DI] Make dumped docblocks less verbose 2017-07-26 09:27:50 +02:00
Fabien Potencier
21d98d43c4 bug #23644 [VarDumper] Dont use Stub objects for arrays - lower GC pressure (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[VarDumper] Dont use Stub objects for arrays - lower GC pressure

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

Several recent profiles have shown that VarDumper triggers the garbage collector quite often, leading to high CPU usage. The reason for this is that internally, VarCloner creates one Stub object per array+object+resource.

This PR removes the need for Stub objects for each arrays, replacing them with stub arrays. This should almost remove the GC pressure, since the number of Stub objects now has the same magnitude than the number of dumped objects.

Meanwhile, this PR removes any use of the `symfony_debug` extension, which is mostly useless anyway. This helps make the code simpler (really :) ), thus helps maintenance (eg merging up to master.)

I also changed the values of the constants defined in the Stub class, and removed the corresponding Data::mapStubConsts() method. Since the serialized format has changed (and we have to do it as there is no other way to fix this GC issue), there is no need to keep any sort of compat mapping there.

Commits
-------

0d5012d20e [VarDumper] Dont use Stub objects for arrays
2017-07-26 09:04:37 +02:00
Fabien Potencier
c0d99d13c0 feature #20496 [Form] Allow pass filter callback to delete_empty option. (Koc)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Allow pass filter callback to delete_empty option.

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #13601, #13940, #22008, #22014
| License       | MIT
| Doc PR        | coming soon

Commits
-------

8630abe27a [Form] Allow pass filter callback to delete_empty option.
2017-07-26 08:57:20 +02:00
Nicolas Grekas
4a3b3bef03 Merge branch '3.3' into 3.4
* 3.3:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [DI] Fix using private services in expressions
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Form] Static call TimezoneType::getTimezones
  Removed references for non existent validator constraints
  Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS
  [DI] Fix test
  [Cache] Handle unserialization failures for Memcached
  Remove unused prop + added @deprecated
  Remove unused mocks/vars
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
  Router: allow HEAD method to be defined first
  [WebProfilerBundle] Display trace and context in the logger profiler
  Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required
2017-07-26 08:46:38 +02:00
Nicolas Grekas
d56947698f Merge branch '3.2' into 3.3
* 3.2:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [DI] Fix using private services in expressions
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Form] Static call TimezoneType::getTimezones
  Removed references for non existent validator constraints
  Remove unused mocks/vars
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-26 08:42:48 +02:00
Nicolas Grekas
a280e81ebb Merge branch '2.8' into 3.2
* 2.8:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
  [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-26 08:34:07 +02:00
Nicolas Grekas
17670e4986 Merge branch '2.7' into 2.8
* 2.7:
  [DI] use assertStringEqualsFile when possible
  [VarDumper] Adapt to php 7.2 changes
  [Form][TwigBridge] Don't render _method in form_rest() for a child form
  [Validator] Fix IbanValidator for ukrainian IBANs
2017-07-26 08:29:15 +02:00
Nicolas Grekas
072c866d70 minor #23670 [DI] use assertStringEqualsFile when possible (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] use assertStringEqualsFile when possible

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

To make failure reporting more accurate, and maintaining tests easier (assertStringEqualsFile is already heavily used in the same file.)

Commits
-------

eebae7e [DI] use assertStringEqualsFile when possible
2017-07-26 08:23:02 +02:00
Nicolas Grekas
8907bc42b1 bug #23615 [Cache] Handle serialization failures for Memcached (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Handle serialization failures for Memcached

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

Fixes two issues with serialization + memcached: with the memcached extension, the default serializer is automatically selected as igbinary when possible, native php otherwise. That creates obvious migration/portability issues (ie just installing igbinary wipes out the value of your cache.)

Then, handling unserializing failures (esp. "php_incomplete_class") is a paramount feature of the component. You must be able to deal with migrating you code base without being blocked by some legacy serialized data.

Commits
-------

cccc88f [Cache] Handle unserialization failures for Memcached
2017-07-26 08:21:50 +02:00
Nicolas Grekas
a3f8fb0059 bug #23654 [DI] Fix using private services in expressions (nicolas-grekas)
This PR was merged into the 3.2 branch.

Discussion
----------

[DI] Fix using private services in expressions

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

Since 3.2, fetching private services via `$container->get()` is deprecated.
This makes it impossible to use a private service in an expression.
Until this PR :)

Commits
-------

f3da6cf [DI] Fix using private services in expressions
2017-07-26 08:20:03 +02:00
Nicolas Grekas
e5790afa80 bug #23662 [VarDumper] Adapt to php 7.2 changes (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Adapt to php 7.2 changes

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

As required by this change on PHP 7.2:
https://wiki.php.net/rfc/convert_numeric_keys_in_object_array_casts

Tests pass locally (until we add 7.2 to Travis)

Commits
-------

3c2f5f7 [VarDumper] Adapt to php 7.2 changes
2017-07-26 08:17:43 +02:00
Nicolas Grekas
eebae7ec71 [DI] use assertStringEqualsFile when possible 2017-07-26 08:11:54 +02:00
Nicolas Grekas
3c2f5f7a24 [VarDumper] Adapt to php 7.2 changes 2017-07-25 16:57:06 +02:00
Nicolas Grekas
f3da6cf6a2 [DI] Fix using private services in expressions 2017-07-25 13:50:49 +02:00
fmarchalemisys
973b2d3973 [Form][TwigBridge] Don't render _method in form_rest() for a child form 2017-07-25 11:24:41 +02:00
Nicolas Grekas
0d5012d20e [VarDumper] Dont use Stub objects for arrays 2017-07-25 11:17:49 +02:00
Roland Franssen
fe48ab1f8b [Form] Static call TimezoneType::getTimezones 2017-07-24 20:55:44 +02:00
Konstantin.Myakshin
bfd9c2cbe8 Removed references for non existent validator constraints 2017-07-23 18:14:03 +03:00
Guilhem Niot
9fd425ea14 Suggest using quotes instead of Yaml::PARSE_KEYS_AS_STRINGS 2017-07-23 14:43:26 +02:00
Konstantin.Myakshin
8630abe27a [Form] Allow pass filter callback to delete_empty option. 2017-07-23 12:57:23 +03:00
Konstantin.Myakshin
d30c751781 Add some phpdocs for IDE autocompletion and better SCA 2017-07-23 12:48:31 +03:00
Fabien Potencier
07638982c7 bug #23588 [WebProfilerBundle] Display trace and context in the logger profiler (lyrixx)
This PR was merged into the 3.3 branch.

Discussion
----------

[WebProfilerBundle] Display trace and context in the logger profiler

| 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 the behavior is not perfect. It can display only the trace **or** the context.
Some time, we want both.

More over, using `{{ profiler_dump_log(log.message, trace) }}` is wrong

Commits
-------

ef1e50802e [WebProfilerBundle] Display trace and context in the logger profiler
2017-07-23 11:41:59 +02:00
Nicolas Grekas
70cc4e86f4 [DI] Fix test 2017-07-23 11:15:20 +02:00
Nicolas Grekas
cccc88f738 [Cache] Handle unserialization failures for Memcached 2017-07-23 10:41:58 +02:00
Roland Franssen
07ff4dd163 Remove unused prop + added @deprecated 2017-07-22 20:52:59 +02:00
Roland Franssen
445c56aa3e Remove unused mocks/vars 2017-07-22 20:48:54 +02:00
Fabien Potencier
7695112601 feature #22317 [Console] Make SymfonyQuestionHelper::ask optional by default (ro0NL)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[Console] Make SymfonyQuestionHelper::ask optional by default

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

i noticed when writing commands i always keep doing

```php
$io = new SymfonyStyle($input, $output);
$answer = $io->ask('...', null, function ($value) { return $value; });

// instead of just
$answer = $io->ask('...');
```

only to bypass a built-in validation, of which im not sure why it's there. Note the base question helper doesnt make this assumption...

Commits
-------

2da429cd0a [Console] Make SymfonyQuestionHelper::ask optional by default
2017-07-22 20:13:43 +02:00
Kévin Dunglas
7428abad51
bug #23023 [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables (vudaltsov)
This PR was squashed before being merged into the 2.8 branch (closes #23023).

Discussion
----------

[DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables

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

Note that [Embeddables appeared only in doctrine/orm 2.5](http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/changelog/migration_2_5.html). I added class_exists checks for that.

Commits
-------

7816f3b7c7 [DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables
2017-07-22 18:46:29 +02:00
Valentin
7816f3b7c7
[DoctrineBridge][PropertyInfo] Added support for Doctrine Embeddables 2017-07-22 18:46:25 +02:00
Nicolas Grekas
44d1162df4 feature #23451 [Cache] Add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command (robfrawley)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] Add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #21764, https://github.com/symfony/symfony/issues/21764#issuecomment-313425723
| License       | MIT
| Doc PR        | symfony/symfony-docs#8209

As requested in https://github.com/symfony/symfony/issues/21764#issuecomment-313425723, this PR adds a `prune()` method to [`FilesystemTrait`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/FilesystemTrait.php). This placement seems reasonable as it exposes the method in [`FilesystemAdapter`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Adapter/FilesystemAdapter.php) and [`FilesystemCache`](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Simple/FilesystemCache.php).

The return value is a `bool` representing either a partial or complete failure (when `false`) *or* complete success (when `true`).

Once the API for the `prune` method is confirmed, I'll introduce a documentation PR, as well.

---

*Stale-detection implementation:* The file modification time is used to determine if a cache item should be pruned. This seems reasonable, given the use of [`touch` in the common trait](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/FilesystemCommonTrait.php#L90). Interestingly, though, the [`doFetch` method](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/FilesystemTrait.php#L38) uses the timestamp saved at the top of the file itself to determine the stale state. Should this latter implementation be used for `prune` as well (or is the current one ok), for example:

```php
foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->directory, \FilesystemIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY, \RecursiveIteratorIterator::CATCH_GET_CHILD) as $file) {
    if ($h = @fopen($file, 'rb')) {
        if ($time >= (int) $expiresAt = fgets($h)) {
            fclose($h);
            if (isset($expiresAt[0])) {
                $okay = (@unlink($file) && !file_exists($file)) && $okay;
            }
        }
    }
}
```

Commits
-------

f0d0c5f add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command
2017-07-22 16:03:09 +02:00
Christopher Parotat
1ba95738fb [Validator] Fix IbanValidator for ukrainian IBANs
The ukrainian bank identifier consists of six digits and not letters.
Also fix the broken links to the current SWIFT IBAN registry pdf.
2017-07-22 09:54:37 +02:00
Fabien Potencier
68d9df6116 feature #23519 [TwigBundle] Commands as a service (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #23519).

Discussion
----------

[TwigBundle] Commands as a service

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| 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-->

tiny step towards #23488

Commits
-------

98391402d1 [TwigBundle] Commands as a service
2017-07-22 09:51:14 +02:00
Roland Franssen
98391402d1 [TwigBundle] Commands as a service 2017-07-22 09:51:11 +02:00
David Badura
52e2821597 Router: allow HEAD method to be defined first 2017-07-21 19:43:13 +02:00
Fabien Potencier
adeab151ba bug #23605 [DI][Bug] Autowiring thinks optional args on core classes are required (weaverryan)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI][Bug] Autowiring thinks optional args on core classes are required

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

Currently, the following fails:

```yml
services:
    PDO:
        class: PDO
        arguments:
            - 'sqlite:/foo.db'
```

The error:

> Cannot autowire service "PDO": argument "$username" of method "__construct()" must have a type-hint or be given a value explicitly

`$username` is the second argument to `PDO`, and it's optional. Here's the reason: it appears that `$parameter->isDefaultValueAvailable()` returns false for optional arguments of core classes. But, `$parameter->isOptional()` returns true.

This allows optional arguments to not throw an exception. I can't think of any edge cases this will cause - but it's possible I'm not thinking of something :).

Cheers!

Commits
-------

178a0f73b7 Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required
2017-07-21 17:37:03 +02:00
Dany Maillard
5c4bfacdef Add time zone caster 2017-07-21 14:36:41 +02:00
Nicolas Grekas
6dc5f59ae3 Merge branch '3.3' into 3.4
* 3.3:
  use Precise on Travis to keep PHP LDAP support
  Fix case sensitive sameSite cookie
  [PropertyInfo] Use rawurlencode to escape PSR-6 keys
  fix(security): ensure the 'route' index is set before attempting to use it
  Fix the design of the profiler exceptions when there is no message
  [Config] Minor fix
  [WebProfilerBundle] Fix full sized dump hovering in toolbar
2017-07-21 13:05:08 +02:00
Nicolas Grekas
444a840ea5 Merge branch '3.2' into 3.3
* 3.2:
  use Precise on Travis to keep PHP LDAP support
  Fix case sensitive sameSite cookie
  [PropertyInfo] Use rawurlencode to escape PSR-6 keys
  fix(security): ensure the 'route' index is set before attempting to use it
  [WebProfilerBundle] Fix full sized dump hovering in toolbar
2017-07-21 13:04:46 +02:00
Nicolas Grekas
0793fe76b1 Merge branch '2.8' into 3.2
* 2.8:
  use Precise on Travis to keep PHP LDAP support
  fix(security): ensure the 'route' index is set before attempting to use it
  [WebProfilerBundle] Fix full sized dump hovering in toolbar
2017-07-21 13:03:24 +02:00
Nicolas Grekas
6158ab363d Merge branch '2.7' into 2.8
* 2.7:
  use Precise on Travis to keep PHP LDAP support
  fix(security): ensure the 'route' index is set before attempting to use it
2017-07-21 13:02:55 +02:00
Grégoire Pineau
ef1e50802e [WebProfilerBundle] Display trace and context in the logger profiler 2017-07-21 10:28:01 +02:00
Ryan Weaver
178a0f73b7 Fixing a bug where if a core class was autowired, autowiring tried to autowire optional args as if they were required 2017-07-20 19:10:01 -04:00
Fabien Potencier
e02ba32ea3 minor #23556 [Console] Fix registering lazy command services with autoconfigure enabled (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Fix registering lazy command services with autoconfigure enabled

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

For
```yaml
_defaults:
    autoconfigure: true

App\:
    resource: '../../src/*'

App\Command\FooCommand:
    tags:
        - { name: console.command, command: foo }
```

Before you get the following error:
> Missing "command" attribute on tag "console.command" for service "App\Command\FooCommand"

Now the command is lazy.

----
Btw, @Tobion's https://github.com/symfony/symfony/pull/22734#discussion_r127410411
> Wouldn't it be more straightforward if aliases are just the additional tags using the command attribute as well?
Then there is no need for an alias property at all and this strange condition doesn't apply either.

Partially addressed here by removing the need for repeating the `command` attribute on each `console.command` tag
```yaml
# before
tags:
    - { name: console.command, command: foo }
    - { name: console.command, command: foo, alias: foobar }

# after
tags:
    - { name: console.command, command: foo }
    - { name: console.command, alias: foobar }
```

Tobias proposal:

```yaml
tags:
    - { name: console.command, command: app:my-command }
    - { name: console.command, command: app:my-alias }
```

I wanted to propose exactly the same at first, but finally found more clear to add a specific attribute for aliases, especially because relying on the order on which tags are defined sounds less good to me. Please tell me about your preference.

(And sorry for the noise around this feature, I want to polish it for 3.4)

Commits
-------

8a71aa31bb Fix registering lazy command services with autoconfigure enabled
2017-07-20 20:08:38 +02:00
Rob Frawley 2nd
f0d0c5ffef
add (filesystem|phpfiles) cache (adapter|simple) prune method and prune command
- added `Symfony\Component\Cache\PruneableInterface` so PSR-6 or PSR-16 cache implementations can declare support
  for manual stale cache pruning
- added FilesystemTrait::prune() and PhpFilesTrait::prune() implementations
- now FilesystemAdapter, PhpFilesAdapter, FilesystemCache, and PhpFilesCache implement PruneableInterface and
  supports manual stale cache pruning
- Added `cache:pool:prune` command via `Symfony\Bundle\FrameworkBundle\Command\CachePoolPruneCommand` to allow
  manual stale cache item pruning of supported PSR-6 and PSR-16 cache pool implementations
- Added `Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\CachePoolPrunerPass` compiler pass to fetch
  all cache pools implementing `PruneableInterface` and pass them to the command as an `IteratorArgument` so
  these references are lazy loaded by the command
- updated changelogs as appropriate
2017-07-20 11:29:24 -04:00
Mike Francis
14c310f5fb Fix case sensitive sameSite cookie 2017-07-20 09:58:49 +02:00
Kévin Dunglas
ab91659ad6
[PropertyInfo] Use rawurlencode to escape PSR-6 keys 2017-07-20 09:53:02 +02:00
Fabien Potencier
34d5f9eefe bug #23584 Fix the design of the profiler exceptions when there is no message (javiereguiluz)
This PR was merged into the 3.3 branch.

Discussion
----------

Fix the design of the profiler exceptions when there is no message

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

This changes a bit the HTML structure of exception pages so we can show exceptions without messages in a better way inside the profiler.

### Before

![before](https://user-images.githubusercontent.com/73419/28358961-092f845e-6c71-11e7-8225-63d01a8011f0.png)

### After

![after](https://user-images.githubusercontent.com/73419/28358968-0e6cfba4-6c71-11e7-9b76-3d6eb7a9f0bc.png)

Commits
-------

25a47d8796 Fix the design of the profiler exceptions when there is no message
2017-07-20 09:48:08 +02:00
Gavin Staniforth
7ae578cc1a fix(security): ensure the 'route' index is set before attempting to use it 2017-07-20 09:38:09 +02:00
Javier Eguiluz
14a54a2aa9 bug #23330 [WebProfilerBundle] Fix full sized dump hovering in toolbar (ogizanagi)
This PR was merged into the 2.8 branch.

Discussion
----------

[WebProfilerBundle] Fix full sized dump hovering in toolbar

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

Since #22953, the dump block shown on hovering the toolbar item takes the full width. But at least on OS X chrome, safari and firefox, the behavior is buggy and makes it unusable as the cursor can't reach the dumped content:

![juin-29-2017 21-09-38](https://user-images.githubusercontent.com/2211145/27705877-b25c1496-5d0f-11e7-8fff-169e080e335c.gif)

Honestly, I don't really understand the issue here and tried some tweaks until it works everywhere, (including trying to add a `.no-resize` class on `sf-toolbar-info` to avoid executing the related js event listener in case it was conflicting).

As shown in the screenshot, it also fixes the case where the dump wasn't full width under a certain size.

Commits
-------

28930c5 [WebProfilerBundle] Fix full sized dump hovering in toolbar
2017-07-19 19:48:51 +02:00
Maxime Steinhausser
a3936979ac bug #23581 [Config] Minor fix (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Config] Minor fix

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

My bad.

BTW @javiereguiluz I confirm my diagnosis on #23573

Here is the last exception in that error page:
![capture du 2017-07-19 09-37-41](https://user-images.githubusercontent.com/243674/28355877-2bc71b5e-6c66-11e7-8e53-a88c42bec4e5.png)

Commits
-------

fa0b942 [Config] Minor fix
2017-07-19 15:09:59 +02:00
Iltar van der Berg
432d2deb31 Fixed typo in docblock 2017-07-19 14:11:33 +02:00
Robin Chalas
5556a3a1f9 feature #23510 [Console] Add a factory command loader for standalone application with lazy-loading needs (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Add a factory command loader for standalone application with lazy-loading needs

| Q             | A
| ------------- | ---
| Branch?       | 3.4 <!-- see comment below -->
| 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 (failure unrelated)
| Fixed tickets | https://github.com/symfony/symfony/pull/22734#issuecomment-314706630 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | todo (with https://github.com/symfony/symfony-docs/issues/8147)

So standalone applications can also benefit from the lazy loading feature without requiring a PSR-11 implementation specifically for this need.

The loader does not memoize any resolved command from factories, as it's the `Application` responsibility and the `ContainerCommandLoader` does not either (the PSR-11 does not enforce two successive calls to return the same value).

Commits
-------

9b40b4a [Console] Add a factory command loader for standalone application with lazy-loading needs
2017-07-19 12:10:53 +02:00
Fabien Potencier
8c028bd956 Merge branch '3.3' into 3.4
* 3.3:
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [WebProfilerBundle][TwigBundle] Fix infinite js loop on exception pages
  [FrameworkBundle] fix ValidatorCacheWarmer: use serializing ArrayAdapter
  Change "this" to "that" to avoid confusion
  [VarDumper] Move locale sniffing to dump() time
  [VarDumper] Use "C" locale when using "comma" flags
  [Config] Make ClassExistenceResource throw on invalid parents
2017-07-19 11:38:19 +02:00
Fabien Potencier
2d8fb99d57 Merge branch '3.2' into 3.3
* 3.2:
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [FrameworkBundle] fix ValidatorCacheWarmer: use serializing ArrayAdapter
  Change "this" to "that" to avoid confusion
  [VarDumper] Move locale sniffing to dump() time
2017-07-19 11:37:49 +02:00
Fabien Potencier
4b4f831769 Merge branch '2.8' into 3.2
* 2.8:
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [VarDumper] Move locale sniffing to dump() time
2017-07-19 11:36:17 +02:00
Fabien Potencier
ce12665c3c Merge branch '2.7' into 2.8
* 2.7:
  [Security] added more tests
  [Security] fixed default target path when referer contains a query string
  [Security] simplified tests
  [Security] refactored tests
  [VarDumper] Move locale sniffing to dump() time
2017-07-19 11:35:27 +02:00
Robin Chalas
8a71aa31bb Fix registering lazy command services with autoconfigure enabled 2017-07-19 11:10:41 +02:00
Javier Eguiluz
25a47d8796 Fix the design of the profiler exceptions when there is no message 2017-07-19 10:54:05 +02:00
Nicolas Grekas
fa0b9428c5 [Config] Minor fix 2017-07-19 09:37:29 +02:00
Fabien Potencier
022ac0be09 [Security] added more tests 2017-07-19 08:09:02 +02:00
Fabien Potencier
9c7a1406cb [Security] fixed default target path when referer contains a query string 2017-07-19 07:57:00 +02:00
Fabien Potencier
b1f1ae26b4 [Security] simplified tests 2017-07-19 07:53:07 +02:00
Fabien Potencier
3387612451 [Security] refactored tests 2017-07-19 07:49:47 +02:00
Nicolas Grekas
df748fc2bb feature #23357 [VarDumper] Add interval caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Add interval caster

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

 cf https://github.com/symfony/symfony/pull/22431#issuecomment-312567747

Commits
-------

a73522c Add interval caster
2017-07-19 07:49:44 +02:00
Nicolas Grekas
719465c04e feature #23550 [DebugBundle] Added min_depth to Configuration (james-johnston-thumbtack)
This PR was merged into the 3.4 branch.

Discussion
----------

[DebugBundle] Added min_depth to Configuration

This enables calling the recently-added `setMinDepth` function on `VarCloner`.

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

Commits
-------

30cd70d [DebugBundle] Added min_depth to Configuration
2017-07-19 07:40:55 +02:00
Fabien Potencier
cb65cf6945 bug #23577 [WebProfilerBundle][TwigBundle] Fix infinite js loop on exception pages (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[WebProfilerBundle][TwigBundle] Fix infinite js loop 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 | #23566 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

295fda9a31 [WebProfilerBundle][TwigBundle] Fix infinite js loop on exception pages
2017-07-19 07:30:45 +02:00