Commit Graph

20163 Commits

Author SHA1 Message Date
Fabien Potencier
2392798ed6 bug #24490 [HttpFoundation] Combine Cache-Control headers (c960657)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Combine Cache-Control headers

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

If multiple `Cache-Control` headers are added to a `ResponseHeaderBag`, only the first is returned by `$bag->get('Cache-Control')`.

Commits
-------

1f76a70b6f [HttpFoundation] Combine Cache-Control headers
2017-10-09 21:24:00 -07:00
Fabien Potencier
d48bcbfcf6 feature #24484 [DI] Throw accurate failures when accessing removed services (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Throw accurate failures when accessing removed services

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

See linked issue.
This will throw a useful message when accessing a removed service.
When setting a removed service, a deprecation notice will be thrown also so that in master we can throw an exception then.

Commits
-------

fe7f26d4f3 [DI] Throw accurate failures when accessing removed services
2017-10-09 21:07:35 -07:00
Fabien Potencier
5904d34125 bug #24488 [DI] Prefixed env vars and load time inlining are incompatible (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Prefixed env vars and load time inlining are incompatible

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

That's because env var processors are not registered yet.

Commits
-------

91c9287c55 [DI] Prefixed env vars and load time inlining are incompatible
2017-10-09 21:05:35 -07:00
Fabien Potencier
7f899a965a bug #24468 [DI] Turn private defs to non-public ones before removing passes (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Turn private defs to non-public ones before removing passes

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

As spotted by @stof in https://github.com/symfony/symfony/issues/24465#issuecomment-334786670.

Commits
-------

e5d0934b87 [DI] Turn private defs to non-public ones before removing passes
2017-10-09 21:03:01 -07:00
Fabien Potencier
5fd0fe6631 bug #23711 Fix support for PHP 7.2 (Simperfit, nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

Fix support for PHP 7.2

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

There are still the deprecation problem with phpunit since it use `each()`.

There are 3 tests linked to session that I don't know how to fix / what to do, do you have any idea @nicolas-grekas ?

Commits
-------

fdf285b5c9 Fix 7.2 compat layer
e229dd0302 Fix PHP 7.2 support
2017-10-09 21:00:26 -07:00
Nicolas Grekas
fdf285b5c9 Fix 7.2 compat layer 2017-10-09 20:05:34 +02:00
Nicolas Grekas
91c9287c55 [DI] Prefixed env vars and load time inlining are incompatible 2017-10-09 19:43:01 +02:00
Fabien Potencier
f756fb8b5b bug #24491 [DI] Exclude inline services declared in XML from autowiring candidates (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Exclude inline services declared in XML from autowiring candidates

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

As reported in #24311, inline services should not be candidates for autowiring.
This PR fixes the issue, but is submitted against 3.4 because there is a potential BC break here, for ppl that didn't realize they relied on this (already deprecated) behavior.
We *could* not merge this PR and consider the deprecation is fine - but in practice, the WTF is hitting several ppl already AFAIK, so we should close that door IMHO.

Commits
-------

d90e7212ea [DI] Exclude inline services declared in XML from autowiring candidates
2017-10-09 10:13:32 -07:00
Nicolas Grekas
92f621fcf7 Merge branch '3.3' into 3.4
* 3.3:
  [Bridge\PhpUnit] Fix infinite loop when running isolated method
  remove unused fixtures file
  parse references on merge keys with objects
2017-10-09 16:52:13 +02:00
Amrouche Hamza
e229dd0302 Fix PHP 7.2 support 2017-10-09 12:03:31 +02:00
Nicolas Grekas
dbc9a44333 [HttpFoundation] Add missing session.lazy_write config option 2017-10-09 11:21:24 +02:00
Fabien Potencier
61cda3e6cd feature #24208 [Form] Display option definition from a given form type (yceruto, ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Display option definition from a given form type

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes (deps=high failure expected)
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

![debug-form-option](https://user-images.githubusercontent.com/2028198/30569305-12a30738-9ca8-11e7-98b7-6eaf78d3d5a7.png)

Show friendly message if typo:
![debug-form-not-found](https://user-images.githubusercontent.com/2028198/30450999-83d58b56-9960-11e7-8705-b60ba33baf48.png)

complement of https://github.com/symfony/symfony/pull/24185

Commits
-------

d6d187d26e Add & use OptionResolverIntrospector
8bbb5e7884 Add debug:form type option
2017-10-08 18:27:15 -07:00
Nicolas Grekas
d90e7212ea [DI] Exclude inline services declared in XML from autowiring candidates 2017-10-08 16:39:03 +02:00
Christian Schmidt
1f76a70b6f [HttpFoundation] Combine Cache-Control headers 2017-10-08 16:27:20 +02:00
Christian Flothmann
042eac4624 [Form] fix parsing invalid floating point numbers 2017-10-08 14:45:17 +02:00
Samuel ROZE
2141056471
Escape command usage when displaying it in the text descriptor 2017-10-08 13:00:23 +01:00
Nicolas Grekas
dca930f579 [DI] Remove colon from env placeholders 2017-10-08 11:22:35 +02:00
Nicolas Grekas
fe7f26d4f3 [DI] Throw accurate failures when accessing removed services 2017-10-07 23:38:34 +02:00
Nicolas Grekas
e5d0934b87 [DI] Turn private defs to non-public ones before removing passes 2017-10-07 10:21:26 +02:00
Fabien Potencier
7ffd22b050 minor #24466 [DependencyInjection] remove unused fixtures file (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[DependencyInjection] remove unused fixtures file

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

I was wondering why the conflict markers in the `master` branch (see b6e9471ded/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services31.php (L43-L52)) did not cause any issues. Turned out that this fixtures file was not used anymore (it was only partially removed in #23022).

Commits
-------

3702e5ff37 remove unused fixtures file
2017-10-06 08:53:44 -07:00
Fabien Potencier
13d75a4adb feature #23499 [Workflow] add guard is_valid() method support (alain-flaus, lyrixx)
This PR was merged into the 3.4 branch.

Discussion
----------

[Workflow] add guard is_valid() method support

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

Workflow guard configuration support expression language like **is_fully_authenticated()**, **has_role()** or **is_granted()**, etc...
I would like to add the support for a new **is_valid()** expression.
Configuration allow to validate subject against specific validation groups to check if a transition can be applied.

In the next configuration exemple, my issue must validate "affectable" validation group to apply "affect" transistion:

```yaml
framework:
    workflows:
        issue:
            marking_store:
                type: single_state
                arguments:
                    - state
            supports: AppBundle\Entity\Issue
            initial_place: created
            places:
                - created
                - affected
                - closed
            transitions:
                affect:
                    guard: "is_valid(subject, ['affectable'])"
                    from: created
                    to:   affected
                close:
                    from: completed
                    to: closed
```

Commits
-------

06d8198714 [Workflow] Added tests for the is_valid() guard expression
9499bc291c [Workflow] Added guard 'is_valid()' method support
2017-10-06 08:47:04 -07:00
Christian Flothmann
3702e5ff37 remove unused fixtures file 2017-10-06 17:17:51 +02:00
Christian Flothmann
33d2aa5382 [Yaml] initialize inline line numbers
Without this change, tests from `InlineTest` cannot be executed
standalone as the parsed line number would never be initialized.
2017-10-06 08:16:57 -07:00
Christian Flothmann
ce10f356a3 parse references on merge keys with objects 2017-10-06 14:26:09 +02:00
Christian Flothmann
a165f1bc08 Merge branch '3.3' into 3.4
* 3.3: (23 commits)
  bumped Symfony version to 3.3.11
  updated VERSION for 3.3.10
  updated CHANGELOG for 3.3.10
  bumped Symfony version to 2.8.29
  updated VERSION for 2.8.28
  updated CHANGELOG for 2.8.28
  bumped Symfony version to 2.7.36
  updated VERSION for 2.7.35
  update CONTRIBUTORS for 2.7.35
  updated CHANGELOG for 2.7.35
  [Session] fix MongoDb session handler to gc all expired sessions
  Updated Test name and exception name to be more accurate
  newline at end of file
  changed exception message
  Ahh, I see.  It actually wants a newline!
  Removed newline
  Created new Exception to throw and modified tests.
  Created new Exception to throw and modified tests
  Code standard fixes
  Changed automatic token generation to throw an exception instead
  ...
2017-10-06 11:16:43 +02:00
Grégoire Pineau
06d8198714 [Workflow] Added tests for the is_valid() guard expression 2017-10-06 10:14:03 +02:00
Alain Flaus
9499bc291c [Workflow] Added guard 'is_valid()' method support 2017-10-06 10:13:24 +02:00
Fabien Potencier
bf0e6f6565 bumped Symfony version to 3.3.11 2017-10-05 17:17:10 -07:00
Fabien Potencier
8fc46c7bb3 updated VERSION for 3.3.10 2017-10-05 16:40:19 -07:00
Fabien Potencier
81517602fa bumped Symfony version to 2.8.29 2017-10-05 16:35:26 -07:00
Fabien Potencier
ebf0c076fa updated VERSION for 2.8.28 2017-10-05 16:24:02 -07:00
Fabien Potencier
307ddb92a4 Merge branch '2.8' into 3.3
* 2.8:
  bumped Symfony version to 2.7.36
  updated VERSION for 2.7.35
  update CONTRIBUTORS for 2.7.35
  updated CHANGELOG for 2.7.35
  [Session] fix MongoDb session handler to gc all expired sessions
2017-10-05 16:10:23 -07:00
Fabien Potencier
0c8043a7d6 feature #24388 [Security] Look at headers for switch_user username (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Look at headers for switch_user username

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

Allowing `switch_user.parameter` config node to be a header name.
It's supported by SwitchUserStatelessBundle and I think it makes sense.
Forgotten in #24260 so targets 3.4 but not a blocker.

Commits
-------

3c801951c8 [Security] Look at headers for switch user username parameter
2017-10-05 16:07:43 -07:00
Fabien Potencier
c4282be820 Merge branch '2.7' into 2.8
* 2.7:
  bumped Symfony version to 2.7.36
  updated VERSION for 2.7.35
  update CONTRIBUTORS for 2.7.35
  updated CHANGELOG for 2.7.35
  [Session] fix MongoDb session handler to gc all expired sessions
2017-10-05 16:06:47 -07:00
Fabien Potencier
dd490af864 bumped Symfony version to 2.7.36 2017-10-05 16:05:57 -07:00
Fabien Potencier
2c907d5156 updated VERSION for 2.7.35 2017-10-05 15:51:51 -07:00
Fabien Potencier
9568fae01f bug #23906 Added support for guards when advancing workflow from a command (GDIBass)
This PR was merged into the 3.3 branch.

Discussion
----------

Added support for guards when advancing workflow from a command

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

Added support for advancing a workflow from the command line when the transition has guards.

Commits
-------

15fd863112 Updated Test name and exception name to be more accurate
fefc20233b newline at end of file
8f2fa6b047 changed exception message
49839e3c28 Ahh, I see.  It actually wants a newline!
2c9d1e2d42 Removed newline
92308b4815 Created new Exception to throw and modified tests.
2ebc71a616 Created new Exception to throw and modified tests
3a8b2eded1 Code standard fixes
22b44e251f Changed automatic token generation to throw an exception instead
8ab59cb1c2 Updated if statement
324c208e12 Code standards update
b044ffb4a2 Added support for guards when advancing workflow from a command
2017-10-05 15:37:15 -07:00
Fabien Potencier
87712e4006 feature #23708 Added deprecation to cwd not existing Fixes #18249 (alexbowers)
This PR was squashed before being merged into the 3.4 branch (closes #23708).

Discussion
----------

Added deprecation to cwd not existing Fixes #18249

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

Commits
-------

261eae970f Added deprecation to cwd not existing Fixes #18249
2017-10-05 15:24:36 -07:00
Alex Bowers
261eae970f Added deprecation to cwd not existing Fixes #18249 2017-10-05 15:24:30 -07:00
Tobias Schultze
e6895bfac5 [Session] fix MongoDb session handler to gc all expired sessions 2017-10-05 21:04:13 +02:00
Fabien Potencier
855971a22e feature #24443 [Session] deprecate MemcacheSessionHandler (Tobion)
This PR was merged into the 3.4 branch.

Discussion
----------

[Session] deprecate MemcacheSessionHandler

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

memcache extension didn't get a release since 4.5 years and is not compatible with PHP 7. see https://pecl.php.net/package/memcache
also the cache and lock components only provide adapters for memcached as well, no memcache

Commits
-------

989326b988 [Session] deprecate MemcacheSessionHandler
2017-10-05 09:22:12 -07:00
Tobias Schultze
989326b988 [Session] deprecate MemcacheSessionHandler
memcache extension didn't get a release since 4.5 years and is not compatible with PHP 7
2017-10-05 17:58:33 +02:00
Nicolas Grekas
51a1b57c67 fix merge 2017-10-05 17:24:04 +02:00
Nicolas Grekas
c674bd7613 Merge branch '3.3' into 3.4
* 3.3:
  [FrameworkBundle] Fix bad interface hint in AbstractController
  [DI] Improve some deprecation messages
  [Cache] Fix race condition in TagAwareAdapter
  [Yaml] parse references on merge keys
  treat trailing backslashes in multi-line strings
2017-10-05 16:46:27 +02:00
Nicolas Grekas
01644c5ff3 Merge branch '2.8' into 3.3
* 2.8:
  [Yaml] parse references on merge keys
2017-10-05 16:43:42 +02:00
Nicolas Grekas
4e897a22cb Merge branch '2.7' into 2.8
* 2.7:
  [Yaml] parse references on merge keys
2017-10-05 16:38:30 +02:00
Fabien Potencier
71ed4329b1 feature #24409 [Bridge\Doctrine][FrameworkBundle] Deprecate some remaining uses of ContainerAwareTrait (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Bridge\Doctrine][FrameworkBundle] Deprecate some remaining uses of ContainerAwareTrait

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

With this PR, the last two remaining uses of ContainerAwareTrait will be `Symfony\Component\HttpKernel\Bundle\Bundle` and `Symfony\Bundle\FrameworkBundle\Controller\Controller`.
For Bundle, I think it's legitimate, for Controller, I think it's not, but that we should wait for 4.1 before considering its deprecation, alongside with `ContainerAwareCommand` (maybe).

Commits
-------

df9c8748e3 [Bridge\Doctrine][FrameworkBundle] Deprecate some remaining uses of ContainerAwareTrait
2017-10-05 07:35:32 -07:00
Nicolas Grekas
df9c8748e3 [Bridge\Doctrine][FrameworkBundle] Deprecate some remaining uses of ContainerAwareTrait 2017-10-05 16:01:01 +02:00
Fabien Potencier
ee9786ac9e feature #24438 [Session][VarDumper] Deprecate accepting legacy mongo extension (Tobion)
This PR was squashed before being merged into the 3.4 branch (closes #24438).

Discussion
----------

[Session][VarDumper] Deprecate accepting legacy mongo extension

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

The old ext-mongo is deprecated and does not work with PHP 7. See http://php.net/manual/en/mongo.setup.php
People should use mongodb/mongodb and ext-mongodb instead. This deprecates functionality using the old ext-mongo classes.

Commits
-------

d535ff60c2 [VarDumper] deprecate MongoCaster
6651af07c2 [HttpFoundation] deprecate using  with the legacy mongo extension; use it with the mongodb/mongodb package and ext-mongodb instead
2017-10-05 05:52:23 -07:00
Fabien Potencier
fc9acad46e bug #24419 [Cache] Fix race condition in TagAwareAdapter (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Fix race condition in TagAwareAdapter

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

This code is not needed, and might create a race condition (see linked issue). Let's drop it.
When no tags are set on an item, this stores an empty tags array, instead of deleting the tags array entry at all.

Commits
-------

fa24fa8a3c [Cache] Fix race condition in TagAwareAdapter
2017-10-05 05:37:15 -07:00
Tobias Schultze
d535ff60c2 [VarDumper] deprecate MongoCaster 2017-10-05 14:34:03 +02:00
Fabien Potencier
417ec3a49c minor #24423 [DI] Improve some deprecation messages (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Improve some deprecation messages

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

To improve DX.

Commits
-------

3e8076023d [DI] Improve some deprecation messages
2017-10-05 05:32:56 -07:00
Fabien Potencier
cb14798178 bug #24417 [Yaml] parse references on merge keys (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Yaml] parse references on merge keys

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

Commits
-------

dab72ab9a9 [Yaml] parse references on merge keys
2017-10-05 05:28:15 -07:00
Tobias Schultze
6651af07c2 [HttpFoundation] deprecate using with the legacy mongo extension; use it with the mongodb/mongodb package and ext-mongodb instead 2017-10-05 14:27:30 +02:00
Fabien Potencier
16107510cb bug #24416 [Yaml] treat trailing backslashes in multi-line strings (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[Yaml] treat trailing backslashes in multi-line strings

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

Commits
-------

80af9b8562 treat trailing backslashes in multi-line strings
2017-10-05 05:22:24 -07:00
Fabien Potencier
02b77f54fb feature #16835 [Security] Add Guard authenticator <supports> method (Amo, chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Add Guard authenticator <supports> method

This method will be called before starting an authentication against a guard authenticator.
The authentication will be tried only if the supports method returned `true`
This improves understanding of code, increase consistency and removes responsability for `getCredentials` method to decide if the current request should be supported or not.

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

Commits
-------

78eecba780 Fix BC layer
a7a6f8a678 [Security] Add Guard authenticator <supports> method
2017-10-05 05:19:50 -07:00
Robin Chalas
78eecba780 Fix BC layer 2017-10-05 13:44:36 +02:00
Alexander M. Turek
8c39bf7845 Reset profiler. 2017-10-05 12:20:28 +02:00
Fabien Potencier
d6b68e19e5 Merge branch '3.3' into 3.4
* 3.3:
  [Config] Fix dumped files invalidation by OPCache
  [DI] Allow setting any public non-initialized services
2017-10-04 11:58:07 -07:00
Fabien Potencier
0a963d2b4e Merge branch '2.8' into 3.3
* 2.8:
  [Config] Fix dumped files invalidation by OPCache
2017-10-04 11:56:58 -07:00
Fabien Potencier
8f41e336f2 Merge branch '2.7' into 2.8
* 2.7:
  [Config] Fix dumped files invalidation by OPCache
2017-10-04 11:56:36 -07:00
Nicolas Grekas
87bd741f2d [Console][HttpKernel] Handle new SHELL_VERBOSITY, also configures the default logger 2017-10-04 19:17:25 +02:00
Nicolas Grekas
3e8076023d [DI] Improve some deprecation messages 2017-10-04 19:15:30 +02:00
Tobias Schultze
d779845c3b [DI] remove inheritdoc from dumped container 2017-10-04 18:30:17 +02:00
Nicolas Grekas
b1290da21b [Config] Fix dumped files invalidation by OPCache 2017-10-04 11:33:55 +02:00
Amaury Leroux de Lens
a7a6f8a678 [Security] Add Guard authenticator <supports> method
This method will be called before starting an authentication against a guard authhenticator.
The authentication will be tried only if the supports method returned <true>
This improves understanding of code, increase consistency and removes responsability for <getCredentials> method
To decide if the current request should be supported or not.
2017-10-04 11:30:31 +02:00
Nicolas Grekas
fa24fa8a3c [Cache] Fix race condition in TagAwareAdapter 2017-10-04 09:58:49 +02:00
Nicolas Grekas
d314b1ff62 [DI] Allow setting any public non-initialized services 2017-10-04 09:45:46 +02:00
Christian Flothmann
dab72ab9a9 [Yaml] parse references on merge keys 2017-10-04 00:19:48 +02:00
Christian Flothmann
80af9b8562 treat trailing backslashes in multi-line strings 2017-10-03 23:07:44 +02:00
Fabien Potencier
c66ed68a4c bug #24410 [Yaml] fix refreshing line numbers for the inline parser (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] fix refreshing line numbers for the inline parser

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

Commits
-------

5518896c26 fix refreshing line numbers for the inline parser
2017-10-03 11:12:48 -07:00
Christian Flothmann
5518896c26 fix refreshing line numbers for the inline parser 2017-10-03 17:01:31 +02:00
Christian Flothmann
ed57e748dc fix version in changelog 2017-10-03 15:54:22 +02:00
Maxime Steinhausser
d6d187d26e Add & use OptionResolverIntrospector 2017-10-03 15:38:46 +02:00
Christian Flothmann
cfbe2ffec0 Merge branch '3.3' into 3.4
* 3.3:
  fix tests
2017-10-03 15:34:05 +02:00
Christian Flothmann
b87a395025 Merge branch '2.8' into 3.3
* 2.8:
  fix tests
2017-10-03 15:33:10 +02:00
Yonel Ceruto
8bbb5e7884 Add debug:form type option 2017-10-03 06:15:18 -04:00
Yonel Ceruto
e097ab3141 Show welcome message if no routing configuration could be found 2017-10-02 19:25:29 -04:00
Nicolas Grekas
5e2f869033 minor #24399 [DI] Fix missing CHANGELOG update + typo (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix missing CHANGELOG update + typo

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

Commits
-------

f9aeee5 [DI] Fix missing CHANGELOG update + typo
2017-10-02 16:55:08 +02:00
apetitpa
5b07ca7f2f [Form] Add tel and color types 2017-10-02 14:59:30 +02:00
Maxime Steinhausser
f9aeee5e63 [DI] Fix missing CHANGELOG update + typo 2017-10-02 14:00:46 +02:00
Nicolas Grekas
fc6b9ec67e Merge branch '2.7' into 2.8
* 2.7:
  fix tests
2017-10-02 10:46:46 +02:00
Nicolas Grekas
817f594f48 fix tests 2017-10-02 10:43:16 +02:00
Nicolas Grekas
f86b4c43a3 fix tests 2017-10-02 09:56:07 +02:00
Nicolas Grekas
7fa94dc846 fix merge 2017-10-02 09:25:00 +02:00
Nicolas Grekas
d6972d4233 Merge branch '3.3' into 3.4
* 3.3:
  fix merge
  Fix in simple-phpunit script
2017-10-02 09:23:43 +02:00
Nicolas Grekas
e36a69710e Merge branch '2.8' into 3.3
* 2.8:
  fix merge
2017-10-02 09:18:51 +02:00
Nicolas Grekas
ef4f532395 fix merge 2017-10-02 09:17:52 +02:00
Nicolas Grekas
90986f4502 fix merge 2017-10-02 09:00:01 +02:00
Nicolas Grekas
fedcc91c8d Merge branch '3.3' into 3.4
* 3.3: (23 commits)
  Tests and fix for issue in array model data in EntityType field with multiple=true
  [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
  removed useless PHPDoc
  [Form] Fix FormInterface::submit() annotation
  [PHPUnitBridge] don't remove when set to  empty string
  PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4
  HttpCache does not consider ESI resources in HEAD requests
  Fix translation for "This field was not expected"
  [Routing] Enhance Route(Collection) docblocks
  Added improvement for accuracy in MoneyToLocalizedStringTransformer.
  Removed unused private property
  Use correct verb form in the pull request template
  Use PHP_MAXPATHLEN in Filesystem.
  Added null as explicit return type (?TokenInterface)
  [FrameworkBundle] Fix Routing\DelegatingLoader
  Render all line breaks according to the exception message
  [Form] Fix phpdoc
  [DI] remove confusing code
  [Form] Fixed GroupSequence with "constraints" option
  [Validator] Clarify UUID validator behavior
  ...
2017-10-02 08:49:52 +02:00
Nicolas Grekas
a707bbf090 Merge branch '2.8' into 3.3
* 2.8: (22 commits)
  Tests and fix for issue in array model data in EntityType field with multiple=true
  [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
  removed useless PHPDoc
  [Form] Fix FormInterface::submit() annotation
  PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4
  HttpCache does not consider ESI resources in HEAD requests
  Fix translation for "This field was not expected"
  [Routing] Enhance Route(Collection) docblocks
  Added improvement for accuracy in MoneyToLocalizedStringTransformer.
  Removed unused private property
  Use correct verb form in the pull request template
  Use PHP_MAXPATHLEN in Filesystem.
  Added null as explicit return type (?TokenInterface)
  [FrameworkBundle] Fix Routing\DelegatingLoader
  Render all line breaks according to the exception message
  [Form] Fix phpdoc
  [DI] remove confusing code
  [Form] Fixed GroupSequence with "constraints" option
  [Validator] Clarify UUID validator behavior
  [Filesystem] Fixed makePathRelative
  ...
2017-10-02 08:42:24 +02:00
Nicolas Grekas
d4cbc70c50 Merge branch '2.7' into 2.8
* 2.7: (22 commits)
  Tests and fix for issue in array model data in EntityType field with multiple=true
  [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
  removed useless PHPDoc
  [Form] Fix FormInterface::submit() annotation
  PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4
  HttpCache does not consider ESI resources in HEAD requests
  Fix translation for "This field was not expected"
  [Routing] Enhance Route(Collection) docblocks
  Added improvement for accuracy in MoneyToLocalizedStringTransformer.
  Removed unused private property
  Use correct verb form in the pull request template
  Use PHP_MAXPATHLEN in Filesystem.
  Added null as explicit return type (?TokenInterface)
  [FrameworkBundle] Fix Routing\DelegatingLoader
  Render all line breaks according to the exception message
  [Form] Fix phpdoc
  [DI] remove confusing code
  [Form] Fixed GroupSequence with "constraints" option
  [Validator] Clarify UUID validator behavior
  [Filesystem] Fixed makePathRelative
  ...
2017-10-01 23:00:16 +02:00
Nicolas Grekas
17a413876a Remove remaining @experimental annotations 2017-10-01 22:19:08 +02:00
Fabien Potencier
a11589f45c bug #23980 Tests and fix for issue in array model data in EntityType field with multiple=true (stoccc)
This PR was squashed before being merged into the 2.7 branch (closes #23980).

Discussion
----------

Tests and fix for issue in array model data in EntityType field with multiple=true

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

Provided some tests and the fix for #23927.
Rebased to 2.7, replaces #23930

Commits
-------

aaba6b4c2b Tests and fix for issue in array model data in EntityType field with multiple=true
2017-10-01 11:10:38 -07:00
stoccc
aaba6b4c2b Tests and fix for issue in array model data in EntityType field with multiple=true 2017-10-01 11:10:36 -07:00
Fabien Potencier
af384aeee0 feature #22132 [Lock] Automaticaly release lock when user forget it (jderusse)
This PR was squashed before being merged into the 3.4 branch (closes #22132).

Discussion
----------

[Lock] Automaticaly release lock when user forget it

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

The objective of this PR is to automatically release the Lock when the user forget to call the `release` method (like the `fclose` function does in, php core).
The implementation is comparable to #22115 but the purpose is not the same.

I create a new PR to not mix things.

Commits
-------

2eedc1fd37 [Lock] Automaticaly release lock when user forget it
2017-10-01 11:03:21 -07:00
Jérémy Derussé
2eedc1fd37 [Lock] Automaticaly release lock when user forget it 2017-10-01 11:03:19 -07:00
Fabien Potencier
a8d5359408 bug #22586 [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible (aaa2000)
This PR was squashed before being merged into the 2.7 branch (closes #22586).

Discussion
----------

[Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible

| Q             | A
| ------------- | ---
| Branch?       | 2.7 <!-- see comment below -->
| Bug fix?      | yes-ish
| 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

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

Implements the same behaviour that `NumberToLocalizedStringTransformer` in order to accept both comma and dot implemented in #5941

Commits
-------

f96a7f81b8 [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible
2017-10-01 10:48:22 -07:00
adev
f96a7f81b8 [Form] Fixed PercentToLocalizedStringTransformer to accept both comma and dot as decimal separator, if possible 2017-10-01 10:48:20 -07:00
Fabien Potencier
8c35d91e7d feature #21751 Bootstrap4 support for Twig form theme (hiddewie, javiereguiluz)
This PR was merged into the 3.4 branch.

Discussion
----------

Bootstrap4 support for Twig form theme

**This PR is a followup from #19648. That PR was closed because GitHub thought my branch contained no commits after a force push...**

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

I have made a port of the Twig form theming code for Bootstrap 3 to the α-5 version of Bootstrap 4.
- The (inheritance) structure of the form theming files has changed because a number of blocks are the same between BS 3 and 4. They have been migrated to `bootstrap_base_layout.html.twig`.
  The new tree is as follows:

```
bootstrap_base_layout.html.twig
|-- bootstrap_3_layout.html.twig
|   `-- bootstrap_3_horizontal_layout.html.twig
`-- bootstrap_4_layout.html.twig
    `-- bootstrap_4_horizontal_layout.html.twig
```
- Any occurances of `.form-horizontal` have been removed from the BS 4 code.
- Checkboxes and radio buttons have been stacked using the `.form-check`, `.form-check-label` and `.form-check-input` classes. There is now no distinction between checkboxes and radio buttons in the markdown.
- All layout tests have been added and updated for BS4. The inheritance tree is as follows:

```
AbstractLayoutTest
`-- AbstractBootstrap3LayoutTest
    |-- AbstractBootstrap3HorizontalLayoutTest
    `-- AbstractBootstrap4LayoutTest
        `-- AbstractBootstrap4HorizontalLayoutTest
```

All tests pass. The classes `FormExtensionBootstrap4LayoutTest` and `FormExtensionBootstrap4HorizontalLayoutTest` have been created similarly to the BS 3 versions.
- ~~The label coloring on an validation is not correct. I've made an issue (twbs/bootstrap#20535) of the problem.~~
- No [custom form elements](http://v4-alpha.getbootstrap.com/components/forms/#custom-forms) have been used.
- A docs PR can be created if this PR is accepted.
- The new code might have to be updated if large changes occur in the BS 4 α.

Screenshot of BS3 and 4 comparison for the same form:

![1](https://cloud.githubusercontent.com/assets/1073881/17732594/dfcb50d6-6472-11e6-8e96-c46987809322.PNG)

Commits
-------

f12e5887ff Removed unneeded wrapping quotes around a Twig key
709f134dc8 Removed unneeded wrapping quotes around a Twig key
4222d54a53 Initial commit for Bootstrap 4 form theme, based on Bootstrap 3 form theme
2017-10-01 10:10:24 -07:00
Robin Chalas
3c801951c8 [Security] Look at headers for switch user username parameter 2017-10-01 13:42:23 +02:00
Fabien Potencier
f73d8d26b0 bug #24157 [Intl] Fixed support of Locale::getFallback (lyrixx)
This PR was merged into the 2.7 branch.

Discussion
----------

[Intl] Fixed support of Locale::getFallback

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

Commits
-------

256055218e [Intl] Fixed support of Locale::getFallback
2017-09-30 07:22:16 -07:00
Fabien Potencier
166f64efb1 bug #24198 [HttpFoundation] Fix file upload multiple with no files (enumag)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Fix file upload multiple with no files

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

```php
<form method="post" enctype="multipart/form-data">
<input type="file" multiple name="img[]">
<input type="submit">
</form>

<?php

$loader = require __DIR__ . '/../app/autoload.php';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $request = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
    var_export($request->files->all()['img']);
}
```

Expected result when I send the form without any files:

```
array ()
```

Actual result:

```
array ( 0 => NULL, )
```

This causes a problem later when using FileType with multiple option - if no files are sent the form data are `[0 => '']` instead of `[]`.

Of course I need to add a test for this.

Commits
-------

d4f6039dcd [HttpFoundation] Fix file upload multiple with no files
2017-09-30 07:18:14 -07:00
Fabien Potencier
72cc5df5fc minor #24342 removed useless PHPDoc (OskarStark)
This PR was squashed before being merged into the 2.7 branch (closes #24342).

Discussion
----------

removed useless PHPDoc

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| 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 |
| License       | MIT
| Doc PR        | n/a

Commits
-------

5ee9043d8b removed useless PHPDoc
2017-09-30 07:00:25 -07:00
Oskar Stark
5ee9043d8b removed useless PHPDoc 2017-09-30 07:00:23 -07:00
Fabien Potencier
77998813fe minor #24374 [HttpFoundation] Return instance in StreamedResponse (abellion)
This PR was squashed before being merged into the 3.4 branch (closes #24374).

Discussion
----------

[HttpFoundation] Return instance in StreamedResponse

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

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

2080582a75 [HttpFoundation] Return instance in StreamedResponse
2017-09-30 06:57:21 -07:00
Antoine Bellion
2080582a75 [HttpFoundation] Return instance in StreamedResponse 2017-09-30 06:57:19 -07:00
Robin Chalas
e7a5803e2e [Security] Add user impersonation support for stateless authentication 2017-09-30 13:13:18 +02:00
Jáchym Toušek
c6c09e4f28 [Form] Fix FormInterface::submit() annotation 2017-09-29 22:09:03 +02:00
Fabien Potencier
09afa64909 feature #24300 [HttpKernel][FrameworkBundle] Add a minimalist default PSR-3 logger (dunglas)
This PR was squashed before being merged into the 3.4 branch (closes #24300).

Discussion
----------

[HttpKernel][FrameworkBundle] Add a minimalist default PSR-3 logger

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

This PR provides a minimalist PSR-3 logger that is always available when FrameworkBundle is installed.
By default, it writes errors on `stderr`, regular logs on `stdout` and discards debug data (this is configurable).

This approach has several benefits:

- It's what expect from an app logging systems of major containerization and orchestration tools including [Docker](https://docs.docker.com/engine/admin/logging/view_container_logs/) and [Kubernetes](https://kubernetes.io/docs/concepts/cluster-administration/logging/), as well as most cloud providers such as [Heroku](https://devcenter.heroku.com/articles/logging#writing-to-your-log) and [Google Container Engine](https://kubernetes.io/docs/tasks/debug-application-cluster/logging-stackdriver/). If the app follows this standard (and it's not currently the case with Symfony by default) logs will be automatically collected, aggregated and stored.
- It's in sync with the "back to Unix roots" philosophy of Flex
- Logs are directly displayed in the console when running the integrated PHP web server (`bin/console server:start` or Flex's `make serve`), Create React App also do that for instance.
- It fixes a common problem when installing Flex recipes: many bundles expect a logger service but currently there is none available by default, and you usually get a `"logger" service not found error` (because packages depend of the PSR, but the PSR doesn't provide a logger service).

Commits
-------

9a06513ec7 [HttpKernel][FrameworkBundle] Add a minimalist default PSR-3 logger
2017-09-29 10:02:07 -07:00
Kévin Dunglas
9a06513ec7 [HttpKernel][FrameworkBundle] Add a minimalist default PSR-3 logger 2017-09-29 09:59:44 -07:00
Fabien Potencier
59c272b312 bug #24036 [Form] Fix precision of MoneyToLocalizedStringTransformer's divisions and multiplications (Rubinum)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] Fix precision of MoneyToLocalizedStringTransformer's divisions and multiplications

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

There is a [PHP Bug](https://bugs.php.net/bug.php?id=75004) with the accuracy of divisions and multiplications when `/=` and `*=` are used.
Here is the proof: https://3v4l.org/u1DkX
It would be better to use `bcmul()` and `bcdiv()` in the `MoneyToLocalizedStringTransformer.php` to prevent this bug.

Commits
-------

ab47c7878e Added improvement for accuracy in MoneyToLocalizedStringTransformer.
2017-09-29 09:36:28 -07:00
Fabien Potencier
1b300985ff feature #21604 [Security] Argon2i Password Encoder (zanbaldwin)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Argon2i Password Encoder

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

Since the [libsodium RFC](https://wiki.php.net/rfc/libsodium) passed with flying colours, I'd like to kick start a discussion about adding Argon2i as a password encoder to the security component. The initial code proposal in this PR supports both the upcoming public API confirmed for PHP 7.2, and the [libsodium PECL extension](https://pecl.php.net/package/libsodium) for those below 7.2 (available for PHP 5.4+).

#### Concerns

- Should the test cover hash length? At the moment the result of Argon2i is 96 characters, but because the hashing parameters are included in the result (`$argon2i$v=19$m=32768,t=4,p=1$...`) this is not guaranteed.
- I've used one password encoder class because the result *should* be the same whether running natively in 7.2 or from the PECL extension, but should the logic be split out into separate private methods (like `Argon2iPasswordEncoder::encodePassword()`) or not (like in `Argon2iPasswordEncoder::isPasswordValid()`)? Since I can't really find anything concrete on Symfony choosing one way over another I'm assuming it's down to personal preference?

#### The Future

Whilst the libsodium RFC has been approved and the public API confirmed, there has been no confirmation of Argon2i becoming an official algorithm for `passhword_hash()`. If that is confirmed, then the implementation should *absolutely* use the native `password_*` functions since the `sodium_*` functions do not have an equivalent to the `password_needs_rehash()` function.

Any feedback would be greatly appreciated 😃

Commits
-------

be093dd79a Argon2i Password Encoder
2017-09-29 07:04:03 -07:00
Fabien Potencier
c10baf9e9f feature #24372 [DowCrawler] Default to UTF-8 when possible (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DowCrawler] Default to UTF-8 when possible

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

This can't be ambiguous, let's use UTF-8 when possible.

Commits
-------

73eda66b99 [DowCrawler] Default to UTF-8 when possible
2017-09-29 06:59:44 -07:00
Zan Baldwin
be093dd79a Argon2i Password Encoder
Add the Argon2i hashing algorithm provided by libsodium as a core encoder in the Security component, and enable it in the SecurityBundle.
Credit to @chalasr for help with unit tests.
2017-09-29 14:21:29 +01:00
Maxime Steinhausser
260d2f02d8 [DI] EnvVarProcessorInterface: fix missing use 2017-09-29 13:52:29 +02:00
Christian Flothmann
ee545bf8d4 Merge branch '3.3' into 3.4
* 3.3:
  include file and line number in deprecation
  parse merge keys with PARSE_OBJECT_FOR_MAP flag
2017-09-29 13:19:35 +02:00
Nicolas Grekas
73eda66b99 [DowCrawler] Default to UTF-8 when possible 2017-09-29 12:22:06 +02:00
Simon Mönch
1c0701ab85 [DI] Fix typehint 2017-09-29 12:03:48 +02:00
Nicolas Grekas
006380034e bug #24191 [DependencyInjection] include file and line number in deprecation (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[DependencyInjection] include file and line number in deprecation

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

In #23108 we removed line numbers from deprecation messages created by the YAML parser because those numbers were quite useless without the file being parsed. I suggest to revert this change and add the file being parsed to the deprecation message.

Commits
-------

cf03552 include file and line number in deprecation
2017-09-29 11:52:28 +02:00
Nicolas Grekas
f18a47bef7 doc fixes 2017-09-29 11:41:38 +02:00
Tobias Nyholm
eca2f8e587 Moved PhpExtractor and PhpStringTokenParser to Translation component 2017-09-29 01:37:07 +02:00
Fabien Potencier
a442e378e1 feature #24362 [HttpKernel] Deprecate some compiler passes in favor of tagged iterator args (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Deprecate some compiler passes in favor of tagged iterator args

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

More code that we can drop :)

Commits
-------

fa62e5068e [HttpKernel] Deprecate some compiler passes in favor of tagged iterator args
2017-09-28 16:21:02 -07:00
Fabien Potencier
537c496dfe minor #24366 [Lock] Use cache connection factories in lock (jderusse)
This PR was merged into the 3.4 branch.

Discussion
----------

[Lock] Use cache connection factories in lock

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

An alternative to https://github.com/symfony/symfony/pull/24267 to share code between cache and lock.

Commits
-------

95358ac98f Share connection factories between cache and lock
2017-09-28 16:19:46 -07:00
Fabien Potencier
c7f664c5e0 feature #21027 [Asset] Provide default context (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #21027).

Discussion
----------

[Asset] Provide default context

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #19396
| License       | MIT
| Doc PR        | should be noted somewhere, ill create an issue

Allows configuring the default asset context to make things works on CLI for example. Same approach as the routing component.

Introduces
```yaml
# parameters.yml
asset.request_context.base_path: '/base/path'
asset.request_context.secure: false
```

Commits
-------

9137d57ecd [Asset] Provide default context
2017-09-28 15:56:48 -07:00
Roland Franssen
9137d57ecd [Asset] Provide default context 2017-09-28 15:56:45 -07:00
Nicolas Grekas
fa62e5068e [HttpKernel] Deprecate some compiler passes in favor of tagged iterator args 2017-09-29 00:01:08 +02:00
Tobias Schultze
0f0a6e85e3 PdoSessionHandler: fix advisory lock for pgsql when session.sid_bits_per_character > 4 2017-09-28 20:22:10 +02:00
Jérémy Derussé
95358ac98f
Share connection factories between cache and lock 2017-09-28 19:35:07 +02:00
Nicolas Grekas
648a8953dd feature #22200 [DI] Reference tagged services in config (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Reference tagged services in config

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

This is a proof of concept to reference a sequence of tagged services.

The problem bugs me for some time, and at first i thought the solution was to have some super generic compiler pass. If it could replace a lot of compilers in core.. perhaps worth it, but eventually each tag comes with it's own logic, including how to deal with tag attributes.

However, writing the passes over and over again becomes tedious for the most basic usecase. So given the recent developments, this idea came to mind.

```yml
services:
    a:
        class: stdClass
        properties: { a: true }
        tags: [foo]

    b:
        class: stdClass
        properties: { b: true }
        tags: [foo]

    c:
        class: stdClass
        properties:
            #stds: !tagged_services foo (see #22198)
            stds: !tagged_services
                foo
```

```
dump(iterator_to_array($this->get('c')->stds));
```

```
array:2 [▼
  0 => {#5052 ▼
    +"a": true
  }
  1 => {#4667 ▼
    +"b": true
  }
]
```

Given the _basic_ example at https://symfony.com/doc/current/service_container/tags.html, this could replace that.

Any thoughts?

Commits
-------

979e58f [DI] Reference tagged services in config
2017-09-28 17:24:12 +02:00
Robin Chalas
3b5742e6b5 feature #24337 Adding a shortcuts for the main security functionality (weaverryan, javiereguiluz)
This PR was squashed before being merged into the 3.4 branch (closes #24337).

Discussion
----------

Adding a shortcuts for the main security functionality

| 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        | Big ol' TODO

I'd like one class that I can inject (especially with autowiring) to get access to the User and `isGranted()` methods. This is *really* important... because to get the User currently, you need to type-hint `TokenStorageInterface`... and there are *two*! That's really bad DX!

Questions:

A) I hi-jacked the existing `Security` class... I wanted a simple class called Security
B) I called the service `security.helper`... for lack of a better id.
C) I did not make `Security` implement the 2 other interfaces (`TokenStorageInterface`, `AuthorizationCheckerInterface`... but I suppose we could?)

Cheers!

Commits
-------

0851189 Adding a shortcuts for the main security functionality
2017-09-28 17:13:14 +02:00
Ryan Weaver
0851189daa Adding a shortcuts for the main security functionality 2017-09-28 17:13:10 +02:00
Christian Flothmann
cf03552033 include file and line number in deprecation 2017-09-28 16:22:01 +02:00
Roland Franssen
979e58f370 [DI] Reference tagged services in config 2017-09-28 16:10:08 +02:00
Fabien Potencier
112cca7e06 feature #24357 [Yaml] include file and line no in deprecation message (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] include file and line no in deprecation message

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

Now that we know the filename being parsed we can improve deprecation messages which is especially useful when trying to find the DI config file that triggers a particular deprecation.

Commits
-------

f618e43234 include file and line no in deprecation message
2017-09-28 06:23:13 -07:00
Fabien Potencier
e4d9bfd245 minor #24353 [Validator] minor translation text fix (darnel)
This PR was merged into the 2.7 branch.

Discussion
----------

[Validator] minor translation text fix

Update validators.cs.xlf - Fix czech translation for "This field was not expected"

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

This commit fixes grammatical issue for czech translation only.

Commits
-------

fbe7148000 Fix translation for "This field was not expected"
2017-09-28 06:20:28 -07:00
Christian Flothmann
b7d0b09f31 Merge branch '3.3' into 3.4
* 3.3:
  Set a NullLogger in ApcuAdapter when Apcu is disabled in CLI
  Minor reword
  [HttpKernel] Make array vs "::" controller definitions consistent
  Fix tests
  [TwigBundle] Remove profiler related scripting
  [TwigBundle][WebProfilerBundle] Switch to DOMContentLoaded event
  [WebProfilerBundle] Hide inactive tabs from CSS
  [TwigBundle] Make deprecations scream in logs
  [TwigBundle] Hide logs if unavailable, i.e. webprofiler
  [TwigBundle] Break long lines in exceptions
  [WebProfilerBundle] Added missing link to profile token
  [DI] Fix decorated service merge in ResolveInstanceofConditionalsPass
  Preserve URI fragment in HttpUtils::generateUri()
  [PhpUnitBridge] do not require an error context
2017-09-28 15:03:46 +02:00
Christian Flothmann
534eaed7ae parse merge keys with PARSE_OBJECT_FOR_MAP flag 2017-09-28 14:42:08 +02:00
Fabien Potencier
d178a9b2c5 bug #24243 HttpCache does not consider ESI resources in HEAD requests (mpdude)
This PR was squashed before being merged into the 2.7 branch (closes #24243).

Discussion
----------

HttpCache does not consider ESI resources in HEAD requests

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

Due to this shortcut:
3b42d8859e/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php (L634-L642)
... the `HttpCache` never looks at the response body for `HEAD` requests. This makes it completely miss ESI-related tweaks like computing the correct TTL, removing validation headers or updating the `Content-Length`.

From RFC2616 (https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.4):

> The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response. The metainformation contained in the HTTP headers in response to a HEAD request SHOULD be identical to the information sent in response to a GET request.

Although it says "SHOULD", I think it can be misleading at best when HEAD requests do, for example, return different (greater) `s-maxage` values than a corresponding GET request.

Commits
-------

4dd0e53171 HttpCache does not consider ESI resources in HEAD requests
2017-09-28 05:20:58 -07:00
Matthias Pigulla
4dd0e53171 HttpCache does not consider ESI resources in HEAD requests 2017-09-28 05:20:56 -07:00
Christian Flothmann
f618e43234 include file and line no in deprecation message 2017-09-28 12:55:42 +02:00
Nicolas Grekas
bd3bc69036 minor #24345 [Routing] Enhance PHP DSL traits docblocks (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Enhance PHP DSL traits docblocks

| Q             | A
| ------------- | ---
| Branch?       | 3.4 <!-- 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
-------

7d749bf [Routing] Enhance PHP DSL traits docblocks
2017-09-28 10:15:16 +02:00
Nicolas Grekas
890f25a6c9 bug #24346 [DI] Fix missing use + minor tweaks (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix missing use + minor tweaks

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes (see added test)
| 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
-------

0a7e5b0 [DI] Fix missing use + minor tweaks
2017-09-28 10:14:02 +02:00
Christophe Coevoet
9ed6dd4391 minor #24351 [Routing] Enhance Route(Collection) docblocks (ogizanagi)
This PR was merged into the 2.7 branch.

Discussion
----------

[Routing] Enhance Route(Collection) docblocks

| Q             | A
| ------------- | ---
| Branch?       | 2.7 <!-- 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
-------

5b4308e9e1 [Routing] Enhance Route(Collection) docblocks
2017-09-28 10:05:10 +02:00
Maxime Steinhausser
0a7e5b0d09 [DI] Fix missing use + minor tweaks 2017-09-28 09:59:26 +02:00
darnel
fbe7148000 Fix translation for "This field was not expected"
Update validators.cs.xlf - Fix czech translation for "This field was not expected"
2017-09-28 08:55:08 +02:00
Maxime Steinhausser
7d749bfb77 [Routing] Enhance PHP DSL traits docblocks 2017-09-28 08:00:01 +02:00
Maxime Steinhausser
5b4308e9e1 [Routing] Enhance Route(Collection) docblocks 2017-09-27 23:22:30 +02:00
Fabien Potencier
7269013ff3 feature #24202 [Filesystem] deprecate relative paths in makePathRelative() (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Filesystem] deprecate relative paths in makePathRelative()

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

893df5804e deprecate relative paths in makePathRelative()
2017-09-27 12:24:44 -07:00
Fabien Potencier
f7eb7972ff fixed CS 2017-09-27 10:32:40 -07:00
Fabien Potencier
94aef22fec feature #21716 [Serializer] Add Support for object_to_populate in CustomNormalizer (chrisguitarguy)
This PR was squashed before being merged into the 3.4 branch (closes #21716).

Discussion
----------

[Serializer] Add Support for `object_to_populate` in CustomNormalizer

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

This pulls a trait out of `AbstractNormalizer` with a method to extract the object to populate and adds some tests for it. Then uses that trait in both `AbstractNormalizer` and `CustomNormalizer` so both can support the `object_to_populate` key.

Commits
-------

ec9242d1ee [Serializer] Add Support for  in CustomNormalizer
2017-09-27 10:32:13 -07:00
Christopher Davis
ec9242d1ee [Serializer] Add Support for in CustomNormalizer 2017-09-27 10:32:12 -07:00
Fabien Potencier
f56f28b0f3 feature #21960 Remove Validator\TypeTestCase and add validator logic to base TypeTestCase (pierredup)
This PR was squashed before being merged into the 3.4 branch (closes #21960).

Discussion
----------

Remove Validator\TypeTestCase and add validator logic to base TypeTestCase

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

Based on a discussion in the docs, users should not really extend classes in the `Tests` namespace. This means that if you want to unit test forms, you need to extend the `Test\TypeTestCase` class which doesn't have the validation logic (Not adding the validator extension gives an error if you use the `constraints` option in your forms).
So I propose to remove the `Validator\TypeTestCase` class (or it can possibly be deprecated if it is wrongly used by someone), and add the validator extension logic to the base `TypTestCase` class.

The benefit is that there is only one class to extend (both for internal or userland tests), and it makes it easy to add more core extensions if necessary.

The one part that I don't like too much at the moment, is keeping the extension in the `getExtensions` method. This means that you extend the class and need to register custom extensions, that you would need to do `return array_merge(parent::getExtensions(), ... ` (only in the case when you want core extensions enabled). So I don't know if we rather want to add a private method like `getCoreExtensions`?

Commits
-------

5ab50103ae Remove Validator\TypeTestCase and add validator logic to base TypeTestCase
2017-09-27 09:12:49 -07:00
Pierre du Plessis
5ab50103ae Remove Validator\TypeTestCase and add validator logic to base TypeTestCase 2017-09-27 09:12:32 -07:00
Fabien Potencier
e5ddd14b1d feature #22113 [Lock] Include lock component in framework bundle (jderusse)
This PR was squashed before being merged into the 3.4 branch (closes #22113).

Discussion
----------

[Lock] Include lock component in framework bundle

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

## Usage

use the best available "out of box" store (semaphore if available, filesyste otherwise)
```yml
framework:
    lock: ~
    # lock: true
```

```php
$this->get('lock')->acquire();
$this->get('lock.factory')->createLock('my resource')->acquire();
```

use a specific store
```yml
framework:
    lock: flock
    # lock: semaphore
    # lock: redis://localhost
    # lock: "%env(MEMCACHED_DSN)%"
    # lock: ["%env(REDIS_DSN_1)%", "%env(REDIS_DSN_2)%"]
```

```php
$this->get('lock')->acquire();
$this->get('lock.factory')->createLock('my resource')->acquire();
```

use a named lock
```yml
framework:
    lock:
        foo: flock
        bar: redis://localhost
```

```php
$this->get('lock.foo')->acquire();
$this->get('lock.bar.factory')->createLock('my resource')->acquire();
```

factory usage

```xml
        <service id="acme" class="AppBundle\Acme">
            <argument type="service">
                <service class="Symfony\Component\Lock\Lock">
                    <factory service="lock.foo.factory" method="createLock" />
                    <argument>my resource</argument>
                    <argument>30</argument> <!-- optional TTL -->
                </service>
            </argument>
        </service>
```

* [x] Tests

Commits
-------

b4b00c9c6f [Lock] Include lock component in framework bundle
2017-09-27 08:10:57 -07:00
Jérémy Derussé
b4b00c9c6f [Lock] Include lock component in framework bundle 2017-09-27 08:10:55 -07:00
Fabien Potencier
9f56a9efa7 feature #21239 [Serializer] throw more specific exceptions (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] throw more specific exceptions

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

Commits
-------

aa30d04243 [Serializer] throw more specific exceptions
2017-09-27 07:28:41 -07:00
Fabien Potencier
65872e8c3a feature #24256 CsvEncoder handling variable structures and custom header order (Oliver Hoff)
This PR was squashed before being merged into the 3.4 branch (closes #24256).

Discussion
----------

CsvEncoder handling variable structures and custom header order

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

This PR improves the CsvEncoder to handle variable nesting structures and adds a context option that allows custom csv header order.

Commits
-------

d173494e48 CsvEncoder handling variable structures and custom header order
2017-09-27 07:20:06 -07:00
Oliver Hoff
d173494e48 CsvEncoder handling variable structures and custom header order 2017-09-27 07:19:39 -07:00
Christophe Coevoet
250d56b8d7 minor #21620 [Security] Saltless Encoder Interface (zanbaldwin)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Saltless Encoder Interface

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

A new interface for encoders that do not require a user-generated salt (generate their own built-in) as suggested by @stof ([comment](https://github.com/symfony/symfony/pull/21604/files#r101225470)), this will become useful as more password encoders are added in the future (such as symfony/symfony#21604).

Commits
-------

7c4aa0bccb Saltless Encoder Interface
2017-09-27 15:29:25 +02:00
Zan Baldwin
7c4aa0bccb Saltless Encoder Interface
A new interface for all encoders that do not require a user-generated salt.
2017-09-27 12:53:10 +01:00
Christian Flothmann
aa30d04243 [Serializer] throw more specific exceptions 2017-09-27 11:03:29 +02:00
Fabien Potencier
eb1183111a feature #23471 [Finder] Add a method to check if any results were found (duncan3dc)
This PR was merged into the 3.4 branch.

Discussion
----------

[Finder] Add a method to check if any results were found

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

If I want to know if any results were found, but I don't want to start trawling through them, I have to do the rather ugly:
```php
$found = false;
foreach ($finder as $thing) {
    $found = true;
    break;
}
if ($found) {
```
This PR enables the much more readable:
```php
if ($finder->found()) {
```

This seemed like an obvious thing to me, so I suspect there might be a reason this doesn't exist already, but I couldn't find any previous discussion. If it'll be accepted then I'll glady create a docs PR

Commits
-------

24dcb5202c Add a method to check if any results were found
2017-09-26 16:22:45 -07:00
Fabien Potencier
b5103a261f feature #24335 [Security][SecurityBundle] Deprecate the HTTP digest auth (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security][SecurityBundle] Deprecate the HTTP digest auth

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

See https://github.com/symfony/symfony/pull/24336 for the removal PR on master.

Commits
-------

11fe79d77f [Security][SecurityBundle] Deprecate the HTTP digest auth
2017-09-26 15:51:56 -07:00
Robin Chalas
084e49f2ef feature #21951 [Security][Firewall] Passing the newly generated security token to the event during user switching (klandaika)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security][Firewall] Passing the newly generated security token to the event during user switching

Event allows listeners to easily switch out the token if custom token updates are required

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

Updated SwitchUserEvent to include the generated security Token. Allows the listeners to replace the token with their own (in case an application has some custom logic for token generation). The SwitchUserListener will now use the token returned by the event, so if token was not changed the self generated token will be used. If token was changed in the event then the new token would get used.

Reasons for this feature
--------------------------

In our current project users can have different Role sets depending on which organization they switch to. Our `User->getRoles()` always returns ["ROLE_USER"] and after login user is presented with choice of organizations they want to work in. Based on selected organization roles get updated with then stored token.

Without the change proposed in this PR. The only way we can setup the proper roles during user switch is by replacing `security.authentication.switchuser_listener` service with our own implementation of the listener.

With the proposed change, we can replace the security token with the one having all the roles we require directly inside our listener for `security.switch_user` event that gets thrown by Symfony's `SwitchUserListener`

Commits
-------

4205f1b Passing the newly generated security token to the event during user switching.
2017-09-26 22:15:35 +02:00
VJ
4205f1bc68 Passing the newly generated security token to the event during user switching.
Event allows listeners to easily switch out the token if custom token updates are required
2017-09-26 16:04:50 -04:00
Maxime Steinhausser
6fcb075683 Fix changelog and minor tweak for #23485 2017-09-26 22:01:10 +02:00
Ole Rößner
7473981c14 [Config] extracted the xml parsing from XmlUtils::loadFile into XmlUtils::parse 2017-09-26 21:48:48 +02:00
Maxime Steinhausser
11fe79d77f [Security][SecurityBundle] Deprecate the HTTP digest auth 2017-09-26 20:29:06 +02:00
Maxime Steinhausser
ec8edeeb29 feature #22890 [HttpKernel] Add ability to configure catching exceptions for Client (kbond)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpKernel] Add ability to configure catching exceptions for Client

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

Debugging exceptions in functional tests is difficult as you need to look at the logs to see which exception was thrown. Disabling catching of exceptions in the client would allow the exception to bubble up to phpunit  and make it easier to see what exception was thrown.

Commits
-------

4812e60 add ability to configure catching exceptions
2017-09-26 17:48:51 +02:00
Tim Jabs
ab47c7878e Added improvement for accuracy in MoneyToLocalizedStringTransformer. 2017-09-26 17:19:17 +02:00
Craig Duncan
24dcb5202c Add a method to check if any results were found 2017-09-26 15:59:44 +01:00
Kevin Bond
4812e6054c
add ability to configure catching exceptions 2017-09-26 10:46:55 -04:00
Nicolas Grekas
07f79737bc minor #22589 Extract method refactoring for ResourceCheckerConfigCache (mpdude)
This PR was squashed before being merged into the 3.4 branch (closes #22589).

Discussion
----------

Extract method refactoring for ResourceCheckerConfigCache

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

Improves code readability.

Commits
-------

685c353 Extract method refactoring for ResourceCheckerConfigCache
2017-09-26 16:36:06 +02:00
Matthias Pigulla
685c3538fb Extract method refactoring for ResourceCheckerConfigCache 2017-09-26 16:36:04 +02:00
Tobias Schultze
bc8430418b feature #24239 [HttpFoundation] Deprecate compatibility with PHP <5.4 sessions (afurculita)
This PR was squashed before being merged into the 3.4 branch (closes #24239).

Discussion
----------

[HttpFoundation] Deprecate compatibility with PHP <5.4 sessions

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

This PR removes functionality added in Symfony 2.1 as a compatibility layer with sessions from PHP <5.4.

- [x] Fix tests

Commits
-------

3deb3940ab [HttpFoundation] Deprecate compatibility with PHP <5.4 sessions
2017-09-26 14:23:54 +02:00
Alexandru Furculita
3deb3940ab [HttpFoundation] Deprecate compatibility with PHP <5.4 sessions 2017-09-26 14:23:43 +02:00
Robin Chalas
477a24dff9 feature #23882 [Security] Deprecated not being logged out after user change (iltar)
This PR was squashed before being merged into the 3.4 branch (closes #23882).

Discussion
----------

[Security] Deprecated not being logged out after user change

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

This PR is an alternative approach to #19033. Due to a behavioral change that could break a lot of applications and websites, I've decided to trigger a deprecation instead of actually changing the behavior as that can be done for 4.0.

Whenever a user object is considered changed (`AbstractToken::hasUserChanged`) when setting a new user object after refreshing, it will now throw a deprecation, paving the way for a behavioral change in 4.0. The idea is that in 4.0 Symfony will simply trigger a logout when this case is encountered.

Commits
-------

22f525b [Security] Deprecated not being logged out after user change
2017-09-26 13:05:27 +02:00
Iltar van der Berg
22f525b01f [Security] Deprecated not being logged out after user change 2017-09-26 13:05:21 +02:00
iamluc
4a01cd85bc Set a NullLogger in ApcuAdapter when Apcu is disabled in CLI
Same check as in https://github.com/symfony/symfony/pull/23390/files#diff-a5185cd58702e8e073786794a423cb27R112
2017-09-26 12:11:06 +02:00
Iltar van der Berg
6522c05876 Removed unused private property 2017-09-26 12:02:43 +02:00
Nicolas Grekas
b90ce05c24 minor #24316 Added null as explicit return type (?TokenInterface) (iltar)
This PR was merged into the 2.7 branch.

Discussion
----------

Added null as explicit return type (?TokenInterface)

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

This fixes the returntype in the `ContextListener` so it can be merged upwards.

/cc @chalasr

Commits
-------

1ba4dd9 Added null as explicit return type (?TokenInterface)
2017-09-26 12:00:14 +02:00
Nicolas Grekas
5dcd573ecf bug #24313 [DI] Fix tracking of bound arguments when using autoconfiguration (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Fix tracking of bound arguments when using autoconfiguration

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

An exception is currently thrown when using arguments bindings on an autoconfigured controller action.
This fixes the issue.

Commits
-------

091f943 [DI] Fix tracking of bound arguments when using autoconfiguration
2017-09-26 11:47:50 +02:00
Nicolas Grekas
091f943900 [DI] Fix tracking of bound arguments when using autoconfiguration 2017-09-26 11:38:39 +02:00
Qingshan Luo
7a475595e2 Use PHP_MAXPATHLEN in Filesystem. 2017-09-26 11:21:42 +02:00
Maxime Steinhausser
55aa662480 feature #24295 [DI][DX] Throw exception on some ContainerBuilder methods used from extensions (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI][DX] Throw exception on some ContainerBuilder methods used from extensions

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes <!-- don't forget updating src/**/CHANGELOG.md files -->
| BC breaks?    | no (unlikely, that would mean there already was an issue in userland code)
| Deprecations? | no <!-- don't forget updating UPGRADE-*.md files -->
| Tests pass?   | yes
| Fixed tickets | #24282 <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

88549fff5b [DI][DX] Throw exception on some ContainerBuilder methods used from extensions
2017-09-26 07:54:41 +02:00
Christian Flothmann
8bf465f48d use the parseFile() method of the YAML parser 2017-09-25 21:59:34 +02:00
Christian Flothmann
1b4d2b246d feature #24253 [Yaml] support parsing files (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] support parsing files

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

This PR adds a new flag `PARSE_FILE` which can be passed to the YAML parser. When given, the input will be interpreted as a filename whose contents will then be parsed. We already supported passing filenames in the past. Back then the features was not deterministic as it just relied on the string being an existing file or not. Now that we are able to control the behaviour of the parser by passing flags this can be done in a much cleaner way and allows to properly deal with errors (i.e. non existent or unreadable files).

This change will also allow to improve error/deprecation messages to include the filename being parsed and thus showing more descriptive error messages when people are using the YAML parser with a bunch of files (e.g. as part of the DependencyInjection or Routing component).

Commits
-------

9becb8a [Yaml] support parsing files
2017-09-25 21:34:08 +02:00
Christian Flothmann
9becb8ae34 [Yaml] support parsing files 2017-09-25 20:23:20 +01:00
Nicolas Grekas
8136fa5050 feature #24290 Adding Definition::addError() and a compiler pass to throw errors as exceptions (weaverryan)
This PR was squashed before being merged into the 3.4 branch (closes #24290).

Discussion
----------

Adding Definition::addError() and a compiler pass to throw errors as exceptions

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | yes & no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | yes (very minor)
| Tests pass?   | yes
| Fixed tickets | #23606
| License       | MIT
| Doc PR        | Not needed

Hi guys!

Very simple: when there is an error with a Definition, we can now call `Definition::addError()` instead of throwing an exception. Then, a new compiler pass (after removal) actually throws an exception. The advantage is that we can avoid throwing exceptions for services that are ultimately removed from the container. That's important for auto-registration, where we commonly register all services in `src/`... but then many of them are removed later.

A few interesting notes:
- We can probably convert more things from exceptions to `Definition::addError()`. I've only converted autowiring errors and things in `CheckArgumentsValidityPass` (that was necessary because it was throwing exceptions in some cases due to autowiring failing... which was the true error)
- `Definition` can hold multiple errors, but I'm only showing the first error in the exception message. The reason is clarity: I think usually the first error is the most (or only) important. But having `Definition::addError()` avoids the possibility of a later error overriding an earlier one

Cheers!

Commits
-------

a85b37a Adding Definition::addError() and a compiler pass to throw errors as exceptions
2017-09-25 11:29:01 +02:00
Ryan Weaver
a85b37a0e6 Adding Definition::addError() and a compiler pass to throw errors as exceptions 2017-09-25 11:28:57 +02:00
Nicolas Grekas
ec111877fa feature #24301 [DI] Add AutowireRequiredMethodsPass to fix bindings for @required methods (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Add AutowireRequiredMethodsPass to fix bindings for `@required` methods

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

Spotted while doing a SF4 workshop :)

Discovery of `@required` methods should be split from AutowirePass so that bindings can apply to these methods also when autowiring is enabled.

Commits
-------

dc55dd2 [DI] Add AutowireRequiredMethodsPass to fix bindings for `@required` methods
2017-09-25 11:24:50 +02:00
Nicolas Grekas
0c0a0525a1 feature #24226 [Cache] Add ResettableInterface to allow resetting any pool's local state (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] Add ResettableInterface to allow resetting any pool's local state

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

To allow pools to leverage #24155 so that they can be used in multi-request loops.

Commits
-------

14c91f2 [Cache] Add ResettableInterface to allow resetting any pool's local state
2017-09-25 11:23:16 +02:00
Nicolas Grekas
dc55dd2c99 [DI] Add AutowireRequiredMethodsPass to fix bindings for @required methods 2017-09-25 10:48:11 +02:00
Nicolas Grekas
14c91f2bc9 [Cache] Add ResettableInterface to allow resetting any pool's local state 2017-09-25 10:20:08 +02:00
Iltar van der Berg
1ba4dd9b44 Added null as explicit return type (?TokenInterface) 2017-09-25 09:46:32 +02:00
Maxime Steinhausser
88549fff5b [DI][DX] Throw exception on some ContainerBuilder methods used from extensions 2017-09-24 17:28:40 +02:00
Oskar Stark
e17426c65c added missing @author tag for new class 2017-09-24 15:33:47 +02:00
Nicolas Grekas
f0f9a6691c [HttpKernel] Make array vs "::" controller definitions consistent 2017-09-24 15:32:05 +02:00
Nicolas Grekas
e84d2d0943 feature #24280 [VarDumper] Make dump() a little bit more easier to use (freekmurze)
This PR was submitted for the master branch but it was squashed and merged into the 3.4 branch instead (closes #24280).

Discussion
----------

[VarDumper] Make `dump()` a little bit more easier to use

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

Imagine you have this code:

```php
$object->method();
```

If you want to dump the object, this is currently the way to do that:

```php
dump($object);

$object->method();
```

This PR makes adding (and removing) the `dump` function easier. When using one argument is used, that argument is returned.

```php
dump($object)->method();
```

When dumping multiple things, they all get returned. So you can to this:

```php
$object->someMethod(...dump($arg1, $arg2, $arg3));
```

Commits
-------

42f0984 [VarDumper] Make `dump()` a little bit more easier to use
2017-09-23 16:36:46 +01:00
Freek Van der Herten
42f0984e71 [VarDumper] Make dump() a little bit more easier to use 2017-09-23 16:34:50 +01:00
Maxime Steinhausser
35f9c0ba2d [Form] Add ambiguous & exception debug:form tests 2017-09-23 00:36:11 +02:00
Maxime Steinhausser
2e0cb6055f feature #24277 [Serializer] Getter for extra attributes in ExtraAttributesException (mdeboer)
This PR was squashed before being merged into the 3.4 branch (closes #24277).

Discussion
----------

[Serializer] Getter for extra attributes in ExtraAttributesException

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes (failure unrelated)
| Fixed tickets |
| License       | MIT

This PR adds a public getter for the extra attributes in `ExtraAttributesException` and makes it easier to create custom exception messages (e.g. JSON formatted).

Commits
-------

cb935e7 [Serializer] Getter for extra attributes in ExtraAttributesException
2017-09-22 15:07:49 +02:00
Maarten de Boer
cb935e789e [Serializer] Getter for extra attributes in ExtraAttributesException 2017-09-22 15:07:13 +02:00
Nicolas Grekas
830f286464 [DI] Dont use JSON_BIGINT_AS_STRING 2017-09-22 11:57:45 +01:00
Nicolas Grekas
701d41cc33 feature #24257 [HttpKernel][DI] Enable Kernel to implement CompilerPassInterface (nicolas-grekas)
This PR was squashed before being merged into the 3.4 branch (closes #24257).

Discussion
----------

[HttpKernel][DI] Enable Kernel to implement CompilerPassInterface

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

In the same spirit as #13761 that allowed DI exts to be also compiler passes, and as #23812 that allowed the kernel to listen to events, in our new bundle-less world, should we allow the kernel to register itself as a compiler pass? That would make some scenario possible (like having a `TestKernel` that turns some services public.)

Commits
-------

6973a1a [HttpKernel][DI] Enable Kernel to implement CompilerPassInterface
2017-09-20 15:13:22 +02:00
Nicolas Grekas
6973a1ae3b [HttpKernel][DI] Enable Kernel to implement CompilerPassInterface 2017-09-20 15:13:20 +02:00
Nicolas Grekas
2f86474267 feature #23834 [DI] Add "PHP fluent format" for configuring the container (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Add "PHP fluent format" for configuring the container

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

This PR allows one to write DI configuration using just PHP, with full IDE auto-completion.
Example:
```php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

use Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo;

return function (ContainerConfigurator $c) {

    $c->import('basic.php');

    $s = $c->services()->defaults()
        ->public()
        ->private()
        ->autoconfigure()
        ->autowire()
        ->tag('t', array('a' => 'b'))
        ->bind(Foo::class, ref('bar'))
        ->private();

    $s->set(Foo::class)->args([ref('bar')])->public();
    $s->set('bar', Foo::class)->call('setFoo')->autoconfigure(false);

};
```

Commits
-------

814cc31 [DI] Add "PHP fluent format" for configuring the container
2017-09-20 15:06:57 +02:00
Nicolas Grekas
20ecf91d52 feature #24180 [Routing] Add PHP fluent DSL for configuring routes (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Add PHP fluent DSL for configuring routes

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

If we add a PHP DSL for DI config (#23834), we must have a similar one for routing. Here it is. See fixtures.

So, you always start with a `RoutingConfigurator $routes`, which allows you to:
```php
$routes->add($name, $path); // adds a route
$routes->import($resource, $type = null, $ignoreErrors = false); // imports routes
$routes->collection($name = ''); // starts a collection, all *names* might be prefixed
```

then
- for "import" and "collection", you can `->prefix($path)`;
- for "add" and "collection", you can fluently "add" several times;
- for "collection" you add sub"`->collection()`";
- and on all, you can configure the route(s) with:
```php
->defaults(array $defaults)
->requirements(array $requirements)
->options(array $options)
->condition($condition)
->host($pattern)
->schemes(array $schemes)
->methods(array $methods)
->controller($controller)
```

Commits
-------

f433c9a [Routing] Add PHP fluent DSL for configuring routes
2017-09-20 15:01:12 +02:00
Robin Chalas
a40c94d8e3 bug #24219 [Console] Preserving line breaks between sentences according to the exception message (yceruto)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] Preserving line breaks between sentences according to the exception message

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

Commits
-------

e2d4904 Render all line breaks according to the exception message
2017-09-20 15:00:12 +02:00
Nicolas Grekas
814cc31e57 [DI] Add "PHP fluent format" for configuring the container 2017-09-20 09:09:19 +02:00
Nicolas Grekas
f433c9a79d [Routing] Add PHP fluent DSL for configuring routes 2017-09-20 08:48:50 +02:00
Nicolas Grekas
aad62c427c minor #24228 [Serializer] Add local cache to normalizers (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] Add local cache to normalizers

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

Should help making the Serializer a bit faster.

Commits
-------

b0c5cf0 [Serializer] Add local cache to normalizers
2017-09-20 07:22:30 +02:00
Nicolas Grekas
ff2ab5831a [DI] Fix private-by-default BC layer 2017-09-19 23:28:23 +02:00
Yonel Ceruto
e2d4904a84 Render all line breaks according to the exception message 2017-09-19 16:27:25 -04:00
Martin Hasoň
f13081d12c [Form] Fix phpdoc 2017-09-19 13:52:15 +02:00
Nicolas Grekas
9948b09c6d [DI] Turn services and aliases private by default, with BC layer 2017-09-19 11:28:48 +02:00
Maxime Steinhausser
a6f01a38eb minor #24249 [DI] remove confusing code (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] remove confusing code

| 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 code is a no-op. I guess the intention was to resolve a parametrized alias target, yet this never worked and we don't want to make it work.

Commits
-------

3da645efed [DI] remove confusing code
2017-09-18 19:54:25 +02:00
Nicolas Grekas
3da645efed [DI] remove confusing code 2017-09-18 17:50:14 +02:00
HeahDude
e39e7a4fa9 [Form] Fixed GroupSequence with "constraints" option 2017-09-18 17:33:18 +02:00
Nicolas Grekas
2bf56296bf minor #24230 [Validator] Clarify UUID validator behavior (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #24230).

Discussion
----------

[Validator] Clarify UUID validator behavior

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

TLDR; after some investigation this is now a doc update.

This fixes the variant detection of a UUID, in strict validation, as described by https://tools.ietf.org/html/rfc4122#section-4.1.1

Tested variant UUID's taken from [ramsey/uuid](https://github.com/ramsey/uuid/blob/master/tests/UuidTest.php#L506). I cannot produce an invalid variant UUID anymore, as i believe by now anything would be variant 3 (future reserved).

/cc @backbone87

Commits
-------

cde5a47 [Validator] Clarify UUID validator behavior
2017-09-18 16:27:31 +02:00
Roland Franssen
cde5a47e8f [Validator] Clarify UUID validator behavior 2017-09-18 16:27:30 +02:00
Christian Flothmann
893df5804e deprecate relative paths in makePathRelative() 2017-09-18 10:06:42 +02:00
Fabien Potencier
3b42d8859e bug #22321 [Filesystem] Fixed makePathRelative (ausi)
This PR was squashed before being merged into the 2.7 branch (closes #22321).

Discussion
----------

[Filesystem] Fixed makePathRelative

| 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

Updating to Symfony 3.2.7 @agoat noticed a bug with `Filesystem::makePathRelative()` in contao/core-bundle#751:

- In Symfony 3.2.6 `makePathRelative('aa/cc', 'bb/cc')` returned correctly `../../aa/cc`
- In Symfony 3.2.7 the same method call returns `./`

I think this issue was introduced with #22133.

While working on the fix I noticed some other issues too:

- An unnecessary if construct that did nothing, fc745f45949fdb8d5aa590618ec73537721f99b4
- Missing normalization of `./` path segments, 15982d4b083723555cfa149368eaaae9609d0e22
- `../` got ignored at the beginning of relative paths, 9586e880d69f613b10e23dd53cea877e622b221a
- The documentation of the method only allowed absolute paths, but there are already unit tests ([FilesystemTest.php:1097](ab93feae3f/src/Symfony/Component/Filesystem/Tests/FilesystemTest.php (L1097))) that test the behavior of relative paths, cec473eeb099c074b5883e7187f74663402f9d87

This pull request fixes all these issues and adds tests for them.

Commits
-------

2bc11505f4 [Filesystem] Fixed makePathRelative
2017-09-17 08:14:54 -07:00
Martin Auswöger
2bc11505f4 [Filesystem] Fixed makePathRelative 2017-09-17 08:14:49 -07:00
Fabien Potencier
857ae7a4f6 bug #24234 [DI] Fix decorated service merge in ResolveInstanceofConditionalsPass (dunglas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix decorated service merge in ResolveInstanceofConditionalsPass

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

Follows #24229. It's [the patch](https://github.com/symfony/symfony/pull/24229#issuecomment-329972812) proposed by @nicolas-grekas + a test.

Commits
-------

2a30908bcd [DI] Fix decorated service merge in ResolveInstanceofConditionalsPass
2017-09-17 08:02:32 -07:00
Robin Chalas
f049dd0fba bug #24203 [Security] Preserve URI fragment in HttpUtils::generateUri() (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[Security] Preserve URI fragment in HttpUtils::generateUri()

| 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/issues/23675
| License       | MIT
| Doc PR        | n/a

Commits
-------

4dd2e3e Preserve URI fragment in HttpUtils::generateUri()
2017-09-17 15:45:14 +02:00
Nicolas Grekas
c4159b12c7 Merge branch '3.3' into 3.4
* 3.3:
  CS fixes
2017-09-17 12:10:45 +02:00
Nicolas Grekas
d94b9ac308 CS fixes 2017-09-17 12:10:12 +02:00
Kévin Dunglas
2a30908bcd
[DI] Fix decorated service merge in ResolveInstanceofConditionalsPass 2017-09-16 20:21:20 +02:00
Nicolas Grekas
b0c5cf0d9d [Serializer] Add local cache to normalizers 2017-09-16 12:19:29 +02:00
Roland Franssen
183307b741 [Form] Add input + regions options to TimezoneType 2017-09-16 10:56:09 +02:00
Fabien Potencier
40a3466268 Merge branch '3.3' into 3.4
* 3.3:
  CS: recover no_break_comment
  [DI] Fix non-instantiables auto-discovery
2017-09-15 10:11:35 -07:00
Fabien Potencier
e48617b467 Merge branch '2.8' into 3.3
* 2.8:
  CS: recover no_break_comment
2017-09-15 10:08:21 -07:00
Fabien Potencier
6edfa4b2df Merge branch '2.7' into 2.8
* 2.7:
  CS: recover no_break_comment
2017-09-15 09:59:28 -07:00
GDIBass
15fd863112 Updated Test name and exception name to be more accurate 2017-09-15 09:32:24 -07:00
Yonel Ceruto
12d1a7f810 Display form defaults on debug:form 2017-09-15 18:14:52 +02:00
Maxime Steinhausser
c7e84ccfee feature #23747 [Serializer][FrameworkBundle] Add a DateInterval normalizer (Lctrs)
This PR was squashed before being merged into the 3.4 branch (closes #23747).

Discussion
----------

[Serializer][FrameworkBundle] Add a DateInterval normalizer

| 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        | https://github.com/symfony/symfony-docs/pull/8267

Could be useful for API needing to submit a duration.

Most code have been adapted from @MisatoTremor's DateInterval form type. Credits to him.

Commits
-------

6185cb1991 [Serializer][FrameworkBundle] Add a DateInterval normalizer
2017-09-15 18:08:41 +02:00
Jérôme Parmentier
6185cb1991 [Serializer][FrameworkBundle] Add a DateInterval normalizer 2017-09-15 18:08:37 +02:00
Nicolas Grekas
46811fdd01 bug #24199 [DI] Fix non-instantiables auto-discovery (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix non-instantiables auto-discovery

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

Commits
-------

8b7c7c1 [DI] Fix non-instantiables auto-discovery
2017-09-15 15:18:29 +02:00
Robin Chalas
4dd2e3e837 Preserve URI fragment in HttpUtils::generateUri() 2017-09-15 15:18:09 +02:00
Nicolas Grekas
e3fa71c9f5 Merge branch '3.3' into 3.4
* 3.3:
  fix merge
2017-09-15 12:58:45 +02:00
Nicolas Grekas
cdb53266b3 fix merge 2017-09-15 12:58:39 +02:00
Dariusz
4e9d1600ee CS: recover no_break_comment 2017-09-15 12:36:22 +02:00
Nicolas Grekas
4b31b47f08 Merge branch '3.3' into 3.4
* 3.3:
  [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction
  [Filesystem] mirror - fix copying content with same name as source/target.
  Removed unnecessary getDefinition() call.
  .php_cs.dist - simplify config
  [WebProfilerBundle] fixed TemplateManager when using Twig 2 without compat interfaces
2017-09-15 12:12:22 +02:00
Nicolas Grekas
ebbcb7b1be Merge branch '2.8' into 3.3
* 2.8:
  [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction
  [Filesystem] mirror - fix copying content with same name as source/target.
  .php_cs.dist - simplify config
  [WebProfilerBundle] fixed TemplateManager when using Twig 2 without compat interfaces
2017-09-15 12:08:59 +02:00
Nicolas Grekas
6f924755a6 Merge branch '2.7' into 2.8
* 2.7:
  [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction
2017-09-15 11:59:38 +02:00
SpacePossum
3e90138214 [CS][2.7] yoda_style, no_unneeded_curly_braces, no_unneeded_final_method, semicolon_after_instruction 2017-09-15 11:46:57 +02:00
Nicolas Grekas
1e4d4ef888 Merge branch '2.7' into 2.8
* 2.7:
  [Filesystem] mirror - fix copying content with same name as source/target.
  .php_cs.dist - simplify config
  [WebProfilerBundle] fixed TemplateManager when using Twig 2 without compat interfaces
2017-09-15 11:26:12 +02:00
Fabien Potencier
89893c1204 [HttpKernel] deprecated bundle inheritance 2017-09-14 20:39:22 -07:00
Fabien Potencier
ee9f4c3dad fixed CS 2017-09-14 19:10:51 -07:00
Alexander M. Turek
d9a6b76dbd A DI tag for resettable services. 2017-09-14 22:28:48 +02:00
Jáchym Toušek
d4f6039dcd
[HttpFoundation] Fix file upload multiple with no files 2017-09-14 14:29:10 +02:00
Nicolas Grekas
8b7c7c179b [DI] Fix non-instantiables auto-discovery 2017-09-14 10:50:29 +02:00
Fabien Potencier
30e3b6d27e feature #23625 Feature #23583 Add current and fallback locales in WDT / Profiler (nemoneph)
This PR was merged into the 3.4 branch.

Discussion
----------

Feature #23583  Add current and fallback locales in WDT / Profiler

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

The goal of this PR is to add informations about the locale and the fallback locales in the translation WDT panel / and profiler

Commits
-------

98a8a6c735 Feature #23583  Add current and fallback locales in WDT / Profiler
2017-09-13 09:05:29 -07:00
Fabien Potencier
5bf241aa8e bug #23473 [Filesystem] mirror - fix copying content with same name as source/target. (gitlost)
This PR was squashed before being merged into the 2.7 branch (closes #23473).

Discussion
----------

[Filesystem] mirror - fix copying content with same name as source/target.

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

Uses `substr()` and lengths in `Filesystem::mirror()` rather than `str_replace()` to avoid multiple replacements.

Commits
-------

b524c84ce1 [Filesystem] mirror - fix copying content with same name as source/target.
2017-09-13 09:02:25 -07:00
gitlost
b524c84ce1 [Filesystem] mirror - fix copying content with same name as source/target. 2017-09-13 09:02:23 -07:00
Alexander M. Turek
d1f7024e14 Removed unnecessary getDefinition() call. 2017-09-13 15:44:19 +02:00
Nicolas Grekas
005cf6b463 Merge branch '3.3' into 3.4
* 3.3:
  Fix travis php7.0
  Add support to environment variables APP_ENV/DEBUG in KernelTestCase
  [Routing] Cleanup apache fixtures
2017-09-13 13:45:41 +02:00
Nicolas Grekas
30a13baef3 fix oups 2017-09-13 13:33:28 +02:00
Nicolas Grekas
8729f9fd6a [DI] Resolve nested refs to aliases 2017-09-13 13:21:02 +02:00
Grégoire Pineau
256055218e [Intl] Fixed support of Locale::getFallback 2017-09-13 12:20:09 +02:00
Nicolas Grekas
1936491f9b Make as many services private as possible 2017-09-13 09:59:43 +02:00
Nicolas Grekas
f1ab3b28ac [Routing] Cleanup apache fixtures 2017-09-12 18:00:24 +02:00
Christian Flothmann
ade060e80e feature #18314 [Translation] added support for adding custom message formatter (aitboudad)
This PR was merged into the 3.4 branch.

Discussion
----------

[Translation] added support for adding custom message formatter

| Q | A |
| --- | --- |
| Branch? | master |
| Bug fix? | no |
| New feature? | yes |
| BC breaks? | no |
| Deprecations? | yes |
| Tests pass? | yes |
| Fixed tickets | #6009, #10152, one item in #11742, #11948 |
| License | MIT |
| Doc PR | ~ |

Commits
-------

42183b0 [Translation] Support adding custom message formatter
2017-09-12 14:37:35 +02:00
Abdellatif Ait boudad
42183b0213 [Translation] Support adding custom message formatter 2017-09-12 13:17:01 +01:00
Christian Flothmann
75a26bb801 [Debug] fix test assertion 2017-09-12 10:02:51 +02:00
Fabien Potencier
7ab8efb74e fixed CS 2017-09-11 14:34:45 -07:00
Fabien Potencier
f46d324d63 Merge branch '3.3' into 3.4
* 3.3:
  fixed CS
  fixed CS
2017-09-11 14:23:16 -07:00
Fabien Potencier
ceae3bf16c fixed CS 2017-09-11 14:23:01 -07:00
Fabien Potencier
ebfb24070c Merge branch '2.8' into 3.3
* 2.8:
  fixed CS
2017-09-11 14:11:44 -07:00
Fabien Potencier
df07e73363 fixed CS 2017-09-11 14:10:59 -07:00
Fabien Potencier
8cb614df9f Merge branch '3.3' into 3.4
* 3.3:
  [CS] Apply phpdoc_annotation_without_dot
  bumped Symfony version to 3.3.10
  updated VERSION for 3.3.9
  updated CHANGELOG for 3.3.9
  [DomCrawler] Fix conversion to int on GetPhpFiles
  Remove `protected_to_private` rule.
  Filtering empty uuids in ORMQueryBuilderLoader.
2017-09-11 13:45:17 -07:00
Fabien Potencier
e844b640de Merge branch '2.8' into 3.3
* 2.8:
  [CS] Apply phpdoc_annotation_without_dot
2017-09-11 13:43:11 -07:00
Fabien Potencier
4e1c65c6f9 Merge branch '2.7' into 2.8
* 2.7:
  [CS] Apply phpdoc_annotation_without_dot
2017-09-11 13:39:16 -07:00
Fabien Potencier
687ad65d82 minor #24149 [CS] Apply phpdoc_annotation_without_dot (keradus)
This PR was squashed before being merged into the 2.7 branch (closes #24149).

Discussion
----------

[CS] Apply phpdoc_annotation_without_dot

| 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

Rule was manually applied here : https://github.com/symfony/symfony/pull/19198
In same PR, fixer for this rule was requested, later implementation was approved by Symfony in https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/2020 .

Rule is converting single sentence to not a sentence, dropping final dot and lowercasing first word.
If there are multiple sentences, it doesn't make any changes.

Status quo is that some annotation are in the middle - having first word uppercased, but no final stop.
Let us fix grammar by finishing applying the rule.

If, for some reason, you don't want to follow that rule that was requested by Symfony, please provide reasoning. If it's to some edge-case bug, simply raise that bug issue. If due to some other reasons, please send a PR to drop it from `@Symfony` ruleset.

Info: I did manually reviewed every single change of this PR.

Commits
-------

7a97b49436 [CS] Apply phpdoc_annotation_without_dot
2017-09-11 13:37:54 -07:00
Dariusz
7a97b49436 [CS] Apply phpdoc_annotation_without_dot 2017-09-11 13:37:52 -07:00
Clément LEFEBVRE
98a8a6c735 Feature #23583 Add current and fallback locales in WDT / Profiler 2017-09-11 19:07:47 +02:00
Fabien Potencier
9570a454ef bumped Symfony version to 3.3.10 2017-09-11 09:45:56 -07:00
Fabien Potencier
b9c93f1faa updated VERSION for 3.3.9 2017-09-11 09:13:23 -07:00
Fabien Potencier
51af90e042 Merge branch '2.8' into 3.3
* 2.8:
  [DomCrawler] Fix conversion to int on GetPhpFiles
  Filtering empty uuids in ORMQueryBuilderLoader.
2017-09-11 08:55:22 -07:00
Fabien Potencier
400263a39d Merge branch '2.7' into 2.8
* 2.7:
  [DomCrawler] Fix conversion to int on GetPhpFiles
  Filtering empty uuids in ORMQueryBuilderLoader.
2017-09-11 08:55:02 -07:00
Mara Blaga
122da5add5 [DomCrawler] Fix conversion to int on GetPhpFiles 2017-09-11 15:10:51 +01:00
Nicolas Grekas
b1b686081b Merge branch '3.3' into 3.4
* 3.3:
  Revert "bug #24105 [Filesystem] check permissions if dump target dir is missing (xabbuh)"
  [Filesystem] skip tests if not applicable
  [Fabbot] Do not run php-cs-fixer if there are no change in src/
  [Security] Fix exception when use_referer option is true and referer is not set or empty
  [HttpKernel] "controller.service_arguments" services should be public
  Get KERNEL_DIR through $_ENV too for KernelTestCase
  Get KERNEL_CLASS through $_ENV too
  check permissions if dump target dir is missing
2017-09-11 08:29:22 +02:00
Nicolas Grekas
483a274994 Merge branch '2.8' into 3.3
* 2.8:
  Revert "bug #24105 [Filesystem] check permissions if dump target dir is missing (xabbuh)"
  [Filesystem] skip tests if not applicable
  [Fabbot] Do not run php-cs-fixer if there are no change in src/
  [Security] Fix exception when use_referer option is true and referer is not set or empty
  Get KERNEL_DIR through $_ENV too for KernelTestCase
  check permissions if dump target dir is missing
2017-09-11 07:57:23 +02:00
Fabien Potencier
565a1c4b48 minor #24007 [ExpressionLanguage] SyntaxError : make a proposal when no function or variable found (fmata)
This PR was merged into the 3.4 branch.

Discussion
----------

[ExpressionLanguage] SyntaxError : make a proposal when no function or variable found

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

Now when an Expression fails to be parsed, a SyntaxError is raised with an explicit message but it's impossible to extract the function, variable or the pair token  type/token value to parse.
When a functional user encounters a SyntaxError, by default there is no mechanism to understand why what he typed is incorrect.

This PR exposes when it's possible the subject of the violation and in case of function or variable undefined in the Expression, a proposal is made.

```php
<?php

require 'vendor/autoload.php';

use Symfony\Component\ExpressionLanguage\Lexer;
use Symfony\Component\ExpressionLanguage\Parser;
use Symfony\Component\ExpressionLanguage\SyntaxError;

$lexer = new Lexer();
$parser = new Parser(array());

try {
    $parser->parse($lexer->tokenize('user.city.departement in [departement, departement2]'), array('user', 'departement1', 'departement2'));
} catch (SyntaxError $e) {
    echo $e->getMessage();
}
```
Outputs :

> Variable "departement" is not valid around position 27 for expression `user.city.departement in [departement, departement2]`.
>
> Did you mean "departement1"?

Commits
-------

f19cf8a916 [ExpressionLanguage] make a proposal in SyntaxError message
2017-09-10 16:46:16 -07:00
Fabien Potencier
d6dfb5b4e3 Merge branch '2.7' into 2.8
* 2.7:
  Revert "bug #24105 [Filesystem] check permissions if dump target dir is missing (xabbuh)"
  [Filesystem] skip tests if not applicable
  [Fabbot] Do not run php-cs-fixer if there are no change in src/
  [Security] Fix exception when use_referer option is true and referer is not set or empty
  Get KERNEL_DIR through $_ENV too for KernelTestCase
  check permissions if dump target dir is missing
2017-09-08 18:12:52 -07:00
Fabien Potencier
7793b797af Revert "bug #24105 [Filesystem] check permissions if dump target dir is missing (xabbuh)"
This reverts commit d74144fc0b, reversing
changes made to 2b79f48405.
2017-09-08 18:12:06 -07:00
Fabien Potencier
1677d9cddb minor #24073 [Console] Fix BC break in console.command.ids parameter (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Fix BC break in console.command.ids parameter

| 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/flex/issues/142#issuecomment-326029873
| License       | MIT
| Doc PR        | n/a

To make command services lazy loaded when their name is known, we need to exclude them from [runtime registration of other (non lazy-loadable) command services](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Console/Application.php#L176).
We also need to have them in the `console.command.ids` parameter in order to [not register them by convention](https://github.com/symfony/symfony/blob/3.4/src/Symfony/Component/HttpKernel/Bundle/Bundle.php#L188).
It is managed using `false` as values instead of ids for the parameter, [excluding false values from runtime registration](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Console/Application.php#L177). Problem is that it makes FrameworkBundle's 3.3 Application incompatible with Console 3.4+ given the check for `false` is missing.

This PR fixes it using another parameter referencing ids of command services which can be lazy loaded.
I would be happy to not add the parameter if someone has a suggestion that allows to do so.

Commits
-------

99e95c3d2d Fix BC break in console.command.ids parameter
2017-09-08 09:59:15 -07:00
Christian Flothmann
1605ce1f07 [Filesystem] skip tests if not applicable 2017-09-08 16:43:09 +02:00
Yonel Ceruto
47b1106868 Do not display short exception trace for built-in console exceptions 2017-09-07 11:50:16 -04:00
Florent Mata
f19cf8a916 [ExpressionLanguage] make a proposal in SyntaxError message 2017-09-07 17:13:34 +02:00
Sergey Linnik
a29e0694de [Security] Fix exception when use_referer option is true and referer is not set or empty 2017-09-07 07:52:52 -07:00
Fabien Potencier
7dfb5aa321 feature #24122 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass

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

Because that name makes things harder to understand now.
This uses exactly the same BC layer logic as the one we have for the renaming of DefinitionDecorator to ChildDefinition.

Commits
-------

a7f98c60d9 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass
2017-09-07 07:45:15 -07:00
Fabien Potencier
d74144fc0b bug #24105 [Filesystem] check permissions if dump target dir is missing (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Filesystem] check permissions if dump target dir is missing

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

`is_dir()` returns `false` if the parent directory misses the executable
bit even when the directory itself is present.

Commits
-------

a0f9f2c537 check permissions if dump target dir is missing
2017-09-07 07:43:15 -07:00
Nicolas Grekas
b9c6928d7e [HttpKernel] "controller.service_arguments" services should be public 2017-09-07 14:08:26 +02:00
Nicolas Grekas
a7f98c60d9 [DI] rename ResolveDefinitionTemplatesPass to ResolveChildDefinitionsPass 2017-09-07 10:45:01 +02:00
Nicolas Grekas
1f92e459db [DI] Allow processing env vars 2017-09-07 08:08:52 +02:00
Nicolas Grekas
8015ad60cc Fix merge 2017-09-06 21:47:44 +02:00
Nicolas Grekas
e565c6de00 Merge branch '3.3' into 3.4
* 3.3:
  [travis] fix minor php7.0 version
  [travis] add ldap.so for php70
  [HttpFoundation] Fix logic when JsonSerializable is missing
  [travis] update to trusty
  Don't use return on Assert::markTestSkipped.
  Create directories recursively in the PHPUnit bridge
  [Dotenv] Add a BC break note
  Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args
  [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-06 21:03:12 +02:00
Nicolas Grekas
9431a38cfc Merge branch '2.8' into 3.3
* 2.8:
  [travis] add ldap.so for php70
  [HttpFoundation] Fix logic when JsonSerializable is missing
2017-09-06 19:07:39 +02:00
Nicolas Grekas
9d240de539 Merge branch '2.7' into 2.8
* 2.7:
  [HttpFoundation] Fix logic when JsonSerializable is missing
2017-09-06 18:54:42 +02:00
Nicolas Grekas
d1fe4153a1 [HttpFoundation] Fix logic when JsonSerializable is missing 2017-09-06 18:53:48 +02:00
Nicolas Grekas
87b3b1a685 Merge branch '2.8' into 3.3
* 2.8:
  [travis] update to trusty
  Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args
  [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-06 18:40:18 +02:00
Christian Flothmann
a0f9f2c537 check permissions if dump target dir is missing
`is_dir()` returns `false` if the parent directory misses the executable
bit even when the directory itself is present.
2017-09-06 18:35:18 +02:00
Nicolas Grekas
c3f14708f4 Merge branch '2.7' into 2.8
* 2.7:
  [travis] update to trusty
  Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args
  [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-06 18:32:38 +02:00
Nicolas Grekas
cfc9346f66 [travis] update to trusty 2017-09-06 17:42:52 +02:00
Fabien Potencier
1022bb497d minor #24060 [Yaml] add inline parser context initializer (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] add inline parser context initializer

| 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/23262#discussion_r131544176
| License       | MIT
| Doc PR        |

Calling the parser to initialize some internal context does not look
like a good idea. Additionally, this change allows to not accept null
values in `Inline::parse()` in 3.4 anymore.

Commits
-------

1be23c2a86 [Yaml] add inline parser context initializer
2017-09-06 08:08:15 -07:00
Yonel Ceruto
f8afe02a49 Add help description to debug:form command 2017-09-06 08:10:51 -04:00
Alexander M. Turek
9cadeb8af2 Don't use return on Assert::markTestSkipped. 2017-09-05 22:39:38 +02:00
Fabien Potencier
a819038090 bug #24041 [ExpressionLanguage] throws an exception on calling uncallable method (fmata)
This PR was merged into the 2.7 branch.

Discussion
----------

[ExpressionLanguage] throws an exception on calling uncallable method

| 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

When we evaluate an expression, if a callable is incorrect (not exists or not accessible) a warning is printed.
This PR handles this case and throws a \RuntimeException when `is_callable()` returns `false` :

```php
$el = new ExpressionLanguage();
$el->evaluate('foo.myfunction()', array('foo' => new \stdClass()));
```

**Before:**
`Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'stdClass' does not have a method 'myfunction' in /home/.../src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php on line 84`

**After:**
`Fatal error: Uncaught RuntimeException: Unable to call method "myfunction" of object "stdClass". in /home/.../src/Symfony/Component/ExpressionLanguage/Node/GetAttrNode.php:81`

Commits
-------

c8b65aeb8b [ExpressionLanguage] throws an exception on calling uncallable method
2017-09-05 11:48:18 -07:00
Fabien Potencier
c0b4e564db feature #23978 [Cache] Use options from Memcached DSN (Bukashk0zzz)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] Use options from Memcached DSN

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

This PR allows to pass options in cache config.
Example:
```yaml
framework:
    cache:
        app: cache.adapter.memcached
        default_memcached_provider: 'memcached://%env(MEMCACHE_HOST)%?socket_recv_size=1&socket_send_size=2'
```

Commits
-------

5798dd6bec [Cache] Use options from Memcached DSN
2017-09-05 11:44:31 -07:00
Nicolas Grekas
76c42175b9 [FrameworkBundle] Fix Di config to allow for more private services 2017-09-05 18:47:43 +02:00
Nicolas Grekas
703a84c18c minor #24081 [Dotenv] Add a BC break note (voronkovich)
This PR was squashed before being merged into the 3.3 branch (closes #24081).

Discussion
----------

[Dotenv] Add a BC break note

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

Commits
-------

66621cc [Dotenv] Add a BC break note
2017-09-05 09:59:34 +02:00
Oleg Voronkovich
66621cc559 [Dotenv] Add a BC break note 2017-09-05 09:59:31 +02:00
Denis Golubovskiy
5798dd6bec
[Cache] Use options from Memcached DSN 2017-09-05 09:16:07 +03:00
Robin Chalas
2ba5005830 Fix ArrayInput::toString() for VALUE_IS_ARRAY options/args 2017-09-04 22:36:37 +02:00
Nicolas Grekas
aad90faa93 bug #24030 [VarDumper] Improve microseconds support in date caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Improve microseconds support in 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        | /

This PR adds the microseconds in ``period`` virtual property and in tooltip overview.

Before:
![](https://user-images.githubusercontent.com/4578773/29843773-58a2e212-8d0d-11e7-9053-3eb1cf933e3b.png)

After:
![](https://user-images.githubusercontent.com/4578773/29843774-58bd8342-8d0d-11e7-8d83-40835c89313c.png)

And fixes interval caster:

```php
dump((new DateTime('00:00:00'))->diff(new DateTime('00:00:00.123')));

// before
DateInterval {
  interval: + 00:00:00.0.123
}

// after
DateInterval {
  interval: + 00:00:00.123
}
```

Commits
-------

479b5d6 Improve microseconds support in date caster
2017-09-04 20:03:48 +02:00
Nicolas Grekas
c9bee848c5 bug #24025 Use new configuration depreciation method (sanpii, chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

Use new configuration depreciation method

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

In keeping with #22382

Commits
-------

4a62cc6 Do not trigger deprecation if node has not been explicitly filled
012e381 Use new configuration node depreciation method
2017-09-04 19:59:34 +02:00
Yanick Witschi
b635b62463 Implemented PruneableInterface on TagAwareAdapter 2017-09-04 19:57:22 +02:00
Nicolas Grekas
61966df131 [DI] There are no initialized-only refs to undeclared services 2017-09-04 19:49:50 +02:00
Nicolas Grekas
2a7f86f85b [3.4][DI] Inline trivial services 2017-09-04 19:14:45 +02:00
Nicolas Grekas
80c0ec1cfd Merge branch '3.3' into 3.4
* 3.3:
  [DI] Minor fix in dumped code
  #24046 added check for ext-dom to XmlUtil::loadFile
2017-09-04 19:13:19 +02:00
Robin Chalas
4a62cc6668 Do not trigger deprecation if node has not been explicitly filled 2017-09-04 19:00:50 +02:00
Dany Maillard
479b5d639a Improve microseconds support in date caster 2017-09-04 18:34:31 +02:00
Fabien Potencier
28e7a1377d Merge branch '2.8' into 3.3
* 2.8:
  #24046 added check for ext-dom to XmlUtil::loadFile
2017-09-04 09:28:07 -07:00
Fabien Potencier
5d2af1ef4c Merge remote-tracking branch 'origin/2.7' into 2.8
* origin/2.7:
  #24046 added check for ext-dom to XmlUtil::loadFile
2017-09-04 09:26:37 -07:00
Christian Flothmann
1be23c2a86 [Yaml] add inline parser context initializer
Calling the parser to initialize some internal context does not look
like a good idea. Additionally, this change allows to not accept null
values in `Inline::parse()` in 3.4 anymore.
2017-09-04 15:18:59 +02:00
Robin Chalas
fc91869376 Fix ability to deprecate a config node 2017-09-03 21:32:08 +02:00
Nicolas Grekas
263b95e1d1 [DI] Minor fix in dumped code 2017-09-03 20:01:57 +02:00
Robin Chalas
b2e1415cab feature #21414 [Console] Display file and line on Exception (arno14)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Display file and line on Exception

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

When an exception occured:
If you have not set a verbose mode when running the command, you don't have information about the file and the line on which the exception occured.
So you must run a second time the command but the exception may not occured this time (if based on some databases datas which have changed) and it's a waste of time if you process is very long and the exception occured at the end.

The feature #21003 solve the problem if you are in a standard Symfony edition, if you leave the default settings and if you are in dev mode

Commits
-------

484d278 [Console] Display file and line on Exception
2017-09-03 17:31:40 +02:00
Arnaud
484d278f50 [Console] Display file and line on Exception 2017-09-03 17:13:41 +02:00
Nicolas Grekas
c7e61f2333 Merge branch '3.3' into 3.4
* 3.3:
  Fix race condition in tests between cache and lock
  Improved how links are displayed in exception messages
2017-09-03 16:49:34 +02:00
Nicolas Grekas
cbd6b8e288 feature #24068 [HttpKernel] Deprecate EnvParametersResource (ro0NL)
This PR was squashed before being merged into the 3.4 branch (closes #24068).

Discussion
----------

[HttpKernel] Deprecate EnvParametersResource

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| 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        | symfony/symfony-docs#... <!--highly recommended for new features-->

See #24067

Commits
-------

76ea6df [HttpKernel] Deprecate EnvParametersResource
2017-09-03 16:48:11 +02:00
Roland Franssen
76ea6dfd33 [HttpKernel] Deprecate EnvParametersResource 2017-09-03 16:48:09 +02:00
Robin Chalas
99e95c3d2d Fix BC break in console.command.ids parameter 2017-09-03 16:34:48 +02:00
Fabien Potencier
7c5142804f feature #22542 [Lock] Check TTL expiration in lock acquisition (jderusse)
This PR was squashed before being merged into the 3.4 branch (closes #22542).

Discussion
----------

[Lock] Check TTL expiration in lock acquisition

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

This PR improve lock acquisition by throwing exception when the TTL is expired during the lock process.

Commits
-------

f74ef35778 [Lock] Check TTL expiration in lock acquisition
2017-09-03 07:31:46 -07:00
Jérémy Derussé
f74ef35778 [Lock] Check TTL expiration in lock acquisition 2017-09-03 07:31:45 -07:00
Jérémy Derussé
26948cf565 Fix race condition in tests between cache and lock 2017-09-03 16:06:51 +02:00
Oleg Andreyev
2f292c247e #24046 added check for ext-dom to XmlUtil::loadFile 2017-09-03 12:02:00 +02:00
Nicolas Grekas
012c56b8cb Merge branch '3.3' into 3.4
* 3.3:
  Improved the design of the redirection method in the web toolbar
  Update NoSuchPropertyException message for writeProperty
  [DI] Don't track merged configs when the extension doesn't expose it
  [Cache] Use namespace versioning for backends that dont support clearing by keys
2017-09-03 10:01:11 +02:00
Fabien Potencier
adc862ac21 feature #24031 [Routing] Add the possibility to define a prefix for all routes of a controller (fabpot)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Add the possibility to define a prefix for all routes of a controller

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

This PR adds the possibility to define a name on a `@Route` annotation set on a controller class. The name is then used as a prefix for all routes defined in the controller.

Commits
-------

00d959c933 [Routing] added the possibility to define a prefix for all routes of a controller
2017-09-01 12:30:42 -07:00
Fabien Potencier
1730cff72d minor #24057 [Lock] Make SemaphoreStore::isSupported() internal (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[Lock] Make SemaphoreStore::isSupported() internal

| 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/24053#discussion_r136391875
| License       | MIT
| Doc PR        | /

Commits
-------

86f2f25856 Mark SemaphoreStore::isSupported() as internal
2017-09-01 10:51:15 -07:00
Javier Eguiluz
a2af9a940f Improved how links are displayed in exception messages 2017-09-01 15:23:39 +02:00
Hidde Wieringa
4222d54a53
Initial commit for Bootstrap 4 form theme, based on Bootstrap 3 form theme
Fixed Bootstrap 4 error output

Updated form errors to look correctly

Cranked Twig Bridge Composer version to ~3.2

Added @ author PHPdoc tag to BS 4 test classes

Fixed small items, and added fieldset/legend support

- Fixed form class for File type
- Added fieldset element for expanded form types
- Added legend element as label for expanded form types
- Fixed horizontal form classes for labels

Added test for legend form label

Fixed form label coloring on validation errors

Fixed concrete Bootstrap layout test classes to use new code

Fixed tests for form-control-label class on form labels

Fixed a typo in using old Bootstrap 4 concrete test code

Processed proposed changes from stof

Processed proposed changes in bootstrap base layout from stof

Updated margin-top for error list in the alpha-5 version of BS 4

Fixed {% endblock ... %} and fixed BS error class in test

Fixed TwigRenderer => FormRenderer code change

Minor fixed for radio/checkboxes and fixed validation feedback

Added ~3.4 require of symfony/form (and <3.4 conflict) to Twig Bridge
composer.json

Updated Boostrap 4 file input to have class .form-control-file
2017-09-01 13:34:10 +02:00
Dany Maillard
86f2f25856 Mark SemaphoreStore::isSupported() as internal 2017-09-01 11:42:36 +02:00
Christian Flothmann
c8f9f916b4 prevent bundle readers from breaking out of paths 2017-09-01 10:48:43 +02:00
Fabien Potencier
0beb598a7b feature #23967 [VarDumper] add force-collapse/expand + use it for traces (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] add force-collapse/expand + use it for traces

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

This improves dumping stack traces by expanding only frames that are outside of vendor dirs.

Here the new CLI output (everything was expanded before):
![capture du 2017-08-24 15-24-01](https://user-images.githubusercontent.com/243674/29668407-614dfe32-88e0-11e7-85b3-8b4f774559a5.png)

And here is the HTML output, with toggle-able frames:
![capture du 2017-08-24 15-24-40](https://user-images.githubusercontent.com/243674/29668410-65170c16-88e0-11e7-9388-147475a76b9f.png)

Todo:
- [x] make tests pass :)

Commits
-------

0e2d2b8c08 [VarDumper] add force-collapse/expand + use it for traces
2017-08-31 14:57:46 -07:00
Fabien Potencier
4a0cc29ca1 bug #23969 [Cache] Use namespace versioning for backends that dont support clearing by keys (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Use namespace versioning for backends that dont support clearing by keys

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

Commits
-------

f8a75180e0 [Cache] Use namespace versioning for backends that dont support clearing by keys
2017-08-31 14:56:17 -07:00
Fabien Potencier
b641a76943 bug #24021 [DI] Don't track merged configs when the extension doesn't expose it (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Don't track merged configs when the extension doesn't expose it

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

This is driving me crazy :)

Commits
-------

a8e6aac2f5 [DI] Don't track merged configs when the extension doesn't expose it
2017-08-31 14:54:33 -07:00
Nicolas Grekas
0db3358ddb [DI] Add ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE 2017-08-31 23:26:27 +02:00
Fabien Potencier
80ac529742 feature #24026 [Security] add impersonator_user to "User was reloaded" log message (gharlan)
This PR was squashed before being merged into the 3.4 branch (closes #24026).

Discussion
----------

[Security] add impersonator_user to "User was reloaded" log message

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

My main concern is this: I use the swift monolog handler to get emails for exceptions.
I would like to see the impersonator in these mails.

But I'm not sure, if this is a good place for the log message.

Commits
-------

fc44215e70 [Security] add impersonator_user to "User was reloaded" log message
2017-08-31 10:53:59 -07:00
Gregor Harlan
fc44215e70 [Security] add impersonator_user to "User was reloaded" log message 2017-08-31 10:53:58 -07:00
Fabien Potencier
bd1bf2c28d minor #24006 [PropertyAccess] Update NoSuchPropertyException message for writeProperty (ScullWM)
This PR was merged into the 3.3 branch.

Discussion
----------

[PropertyAccess] Update NoSuchPropertyException message for writeProperty

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

Hi,
I've get a NoSuchPropertyException error while creating REST API forms.
Having the property name in the exception is great, but in some case, this property is available in many objects. Having more information about the object that generate this exception is better.

I simply suggest to add a get_class of the current object in the error message.

Before:
`Could not determine access type for property "id".`

After (edit)
`Could not determine access type for property "id" in class "App\Command\UserUpdateCommand".`

Commits
-------

7855748c78 Update NoSuchPropertyException message for writeProperty
2017-08-31 10:41:28 -07:00
Florent Mata
c8b65aeb8b [ExpressionLanguage] throws an exception on calling uncallable method 2017-08-31 16:22:01 +02:00
Nicolas Grekas
9cce236e29 feature #23603 [Cache] Add (pdo|chain) cache (adapter|simple) prune method (robfrawley)
This PR was merged into the 3.4 branch.

Discussion
----------

[Cache] Add (pdo|chain) cache (adapter|simple) prune method

| 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        | symfony/symfony-docs#8209

This is additional work toward making more cache implementations use the `PruneableInterface` contract. Specifically, this pull request focuses on `(Pdo|Chain)(Cache|Adapter)`, as suggested by @nicolas-grekas in https://github.com/symfony/symfony/pull/23451#issuecomment-316735763.

Commits
-------

b20a237 add (pdo|chain) cache (adapter|simple) prune method
2017-08-31 16:08:55 +02:00
Christian Flothmann
c708d02299 Merge branch '3.3' into 3.4
* 3.3:
  Fixed the escaping of back slashes and << in console output
  bumped Symfony version to 2.8.28
  updated VERSION for 2.8.27
  updated CHANGELOG for 2.8.27
  bumped Symfony version to 2.7.35
  updated VERSION for 2.7.34
  update CONTRIBUTORS for 2.7.34
  updated CHANGELOG for 2.7.34
2017-08-31 11:02:44 +02:00
Christian Flothmann
ad78743f1a Merge branch '2.8' into 3.3
* 2.8:
  Fixed the escaping of back slashes and << in console output
  bumped Symfony version to 2.8.28
  updated VERSION for 2.8.27
  updated CHANGELOG for 2.8.27
  bumped Symfony version to 2.7.35
  updated VERSION for 2.7.34
  update CONTRIBUTORS for 2.7.34
  updated CHANGELOG for 2.7.34
2017-08-31 10:38:26 +02:00
Christian Flothmann
3956469e16 Merge branch '2.7' into 2.8
* 2.7:
  Fixed the escaping of back slashes and << in console output
  bumped Symfony version to 2.7.35
  updated VERSION for 2.7.34
  update CONTRIBUTORS for 2.7.34
  updated CHANGELOG for 2.7.34
2017-08-31 10:36:47 +02:00
Maxime Steinhausser
dd3276c2e8 feature #23694 [Form] Add debug:form command (yceruto)
This PR was merged into the 3.4 branch.

Discussion
----------

[Form] Add debug:form command

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

![debug-form](https://user-images.githubusercontent.com/2028198/29007125-c3508cd6-7aca-11e7-91e2-c2b509847db5.png)

A short class name (e.g. `DateType`) can be passed as `class` argument too (the command will try to resolve its FQCN if it's in known form type namespaces).

Commits
-------

4f040d78fe Add debug:form command
2017-08-30 18:21:48 +02:00
Rob Frawley 2nd
b20a2376b2
add (pdo|chain) cache (adapter|simple) prune method 2017-08-30 11:10:37 -04:00
Thomas Perez
7855748c78 Update NoSuchPropertyException message for writeProperty 2017-08-30 16:49:16 +02:00
Nicolas Grekas
8264a9e398 [HttpKernel] Fix loading legacy 3.3 containers in 3.4 context 2017-08-30 16:25:32 +02:00
Christian Flothmann
330c6bf53e [Yaml] mark some classes as final 2017-08-30 08:19:03 +02:00
Fabien Potencier
00d959c933 [Routing] added the possibility to define a prefix for all routes of a controller 2017-08-29 15:38:20 -07:00
Robin Chalas
b9fc357d1c Fix merge 2017-08-29 23:15:51 +02:00
Fabien Potencier
2e111b3cca Merge branch '3.3' into 3.4
* 3.3: (27 commits)
  Always require symfony/polyfill-apcu to provide APCuIterator everywhere
  bumped Symfony version to 3.3.9
  updated VERSION for 3.3.8
  updated CHANGELOG for 3.3.8
  [DI] Fix tracking env var placeholders nested in object graphs
  bumped Symfony version to 3.3.8
  updated VERSION for 3.3.7
  updated CHANGELOG for 3.3.7
  [DI] Fix tracking env vars when merging configs (bis)
  removed obsolete comment
  install PHPUnit 6 on PHP 7.2
  [Cache] Use zend.detect_unicode instead of zend.multibyte
  Fix case sensitive typo in use class name
  [VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1)
  [Debug] Remove false-positive check in DebugClassLoader
  [Validator] Fix use of GroupSequenceProvider in child classes
  Change number PHPDoc type to int|float
  [Cache] Workaround zend.detect_unicode + zend.multibyte
  [VarDumper] Strengthen dumped JS
  [VarDumper] Strengthen dumped JS
  ...
2017-08-29 14:00:42 -07:00
Fabien Potencier
dda57e6e21 feature #22543 [Lock] Expose an expiringDate and isExpired method in Lock (jderusse)
This PR was squashed before being merged into the 3.4 branch (closes #22543).

Discussion
----------

[Lock] Expose an expiringDate and isExpired method in Lock

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

This PR store the expiration date of the lock in the key and exposes public method to let the user know the state of the Lock expiration.

Commits
-------

279430800e [Lock] Expose an expiringDate and isExpired method in Lock
2017-08-29 13:57:32 -07:00
Jérémy Derussé
279430800e [Lock] Expose an expiringDate and isExpired method in Lock 2017-08-29 13:57:28 -07:00
Fabien Potencier
173b7473d3 feature #23667 [Translation] Create an TranslationReaderInterface and move TranslationLoader to TranslationComponent (Nyholm)
This PR was merged into the 3.4 branch.

Discussion
----------

[Translation] Create an TranslationReaderInterface and move TranslationLoader to TranslationComponent

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

Create an interface for TranslationLoader. I put this in the Translation component even though the TranslationLoader implementation is in the FrameworkBundle. (Here is a PR moving the TranslationLoader to the Translation component: #23666)

We need this in PHP-translation. We currently have to rewrite things in strange mannar like: https://github.com/php-translation/symfony-storage/blob/0.2.2/src/FileStorage.php#L62-L64

Commits
-------

5bc50da677 Create an interface for TranslationReader and moved TranslationLoader to Translation component
2017-08-29 13:53:50 -07:00
Fabien Potencier
ec7a2b14ca bug #24011 [Cache] Always require symfony/polyfill-apcu to provide APCuIterator everywhere (guillaumelecerf)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Always require symfony/polyfill-apcu to provide APCuIterator everywhere

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

**TL;DR: when APCuIterator is not available (i.e. PHP 5.6 + APCu 4.0.7), the APC cache handling is broken.**

When [the app initializes](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml#L31) one of [the APC caches](https://github.com/symfony/symfony/blob/master/src/Symfony/Bundle/FrameworkBundle/Resources/config/cache.xml#L14-L28), it tries to [retrieve its namespace flag key](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/ApcuTrait.php#L42). If it can't, [it clears its namespaced cache](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/ApcuTrait.php#L43) and [adds its flag key back](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/ApcuTrait.php#L44).
But [when APCuIterator is not usable](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/ApcuTrait.php#L74), **the app [flushes the whole cache each time](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Cache/Traits/ApcuTrait.php#L76)**, preventing all the APC caches to retrieve their own flag key, resulting in a **perpetual full APC cache flush**.

TODO:
- [x] add test => https://travis-ci.org/symfony/symfony/jobs/269383629#L3334

See https://github.com/symfony/symfony/pull/24008

Commits
-------

9d444421ea Always require symfony/polyfill-apcu to provide APCuIterator everywhere
2017-08-29 13:50:21 -07:00
Fabien Potencier
9c796b4e39 bug #23730 Fixed the escaping of back slashes and << in console output (javiereguiluz)
This PR was squashed before being merged into the 2.7 branch (closes #23730).

Discussion
----------

Fixed the escaping of back slashes and << in console output

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

Not sure if it's a valid solution, but this is my attempt to solve #18481.

Commits
-------

d5cb1fe711 Fixed the escaping of back slashes and << in console output
2017-08-29 13:47:46 -07:00
Javier Eguiluz
d5cb1fe711 Fixed the escaping of back slashes and << in console output 2017-08-29 13:47:44 -07:00
Yonel Ceruto
4f040d78fe Add debug:form command 2017-08-29 13:37:17 -04:00
Nicolas Grekas
d00ac8adef [VarDumper] fix DateCasterTest 2017-08-29 18:16:36 +02:00
Nicolas Grekas
cba3393f9d minor #24023 [VarDumper] Fix segfault in period caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Fix segfault in period caster

| 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/23668#issuecomment-325685087
| License       | MIT
| Doc PR        | /

[This segfault](https://bugs.php.net/bug.php?id=71635) was fixed in [5.6.20](http://www.php.net/ChangeLog-5.php#5.6.20) and in [7.0.5](http://www.php.net/ChangeLog-7.php#7.0.5).

Issue in action here: https://3v4l.org/DhOdT#v565

Commits
-------

d84e9c8 Fix segfault in period caster
2017-08-29 18:08:59 +02:00
Fabien Potencier
d4e8166927 feature #22382 [config] Add abbitily to deprecate a node (Nyholm, fabpot, sanpii)
This PR was merged into the 3.4-dev branch.

Discussion
----------

[config] Add abbitily to deprecate a node

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

For BC breaks, I don’t know if modifying the Xml and Yaml dumper output is considering as a BC break (it’s just a comment).

Commits
-------

31d2250f4c [config] Add abbitily to deprecate a node
3b6442f8b2 feature #23947 [Translation] Adding the ability do load <notes> in xliff2.0 (Nyholm)
b0cdb53d67 [Translation] Adding the ability do load <notes> in xliff2.0
2017-08-29 17:48:44 +02:00
Dany Maillard
d84e9c8171 Fix segfault in period caster 2017-08-29 17:37:07 +02:00
Tobias Nyholm
5bc50da677
Create an interface for TranslationReader and moved TranslationLoader to Translation component 2017-08-29 16:37:52 +02:00
Nicolas Grekas
660feccb20 feature #23668 [VarDumper] Add period caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Add period caster

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

Result:

![](https://user-images.githubusercontent.com/4578773/29788181-fce3eb32-8c31-11e7-9da4-72c038d5a14e.png)

Commits
-------

4c4c398 Add period caster
2017-08-29 16:18:55 +02:00
Guillaume LECERF
9d444421ea Always require symfony/polyfill-apcu to provide APCuIterator everywhere 2017-08-29 16:10:37 +02:00
Nicolas Grekas
0096738b52 feature #23991 [DI] Improve psr4-based service discovery (alternative implementation) (kbond)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Improve psr4-based service discovery (alternative implementation)

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

This is an alternative to #23986. It is simpler and doesn't require a second glob in the service id. This adds a `namespace` option. It is optional and if it isn't used, then it falls back to using the service id (current behaviour).

As stof mentions in https://github.com/symfony/symfony/issues/22397#issuecomment-324972955, it is consistent with the xml loader.

With this feature, you can define your services like this:

```yaml
services:
    command_handlers:
        namespace: App\Domain\
        resource: ../../src/Domain/*/CommandHandler
        tags: [command_handler]

    event_subscribers:
        namespace: App\Domain\
        resource: ../../src/Domain/*/EventSubscriber
        tags: [event_subscriber]
```

ping @stof, @nicolas-grekas

Commits
-------

00d7f6f [DI] improve psr4-based service discovery with namespace option
2017-08-29 16:04:03 +02:00
Javier Eguiluz
a8d72e260f [Lock] Fix some tests that require pcntl_sigwaitinfo() function 2017-08-29 16:00:07 +02:00
Nicolas Grekas
a8e6aac2f5 [DI] Don't track merged configs when the extension doesn't expose it 2017-08-29 15:24:02 +02:00
Fabien Potencier
9280ca429e bumped Symfony version to 3.3.9 2017-08-28 15:49:36 -07:00
Fabien Potencier
bad5b6293d updated VERSION for 3.3.8 2017-08-28 15:35:03 -07:00
Nicolas Grekas
a8397cf1c7 [DI] Fix tracking env var placeholders nested in object graphs 2017-08-29 00:20:37 +02:00
Fabien Potencier
0b46166174 bumped Symfony version to 3.3.8 2017-08-28 13:30:14 -07:00
Fabien Potencier
8a33ecb058 updated VERSION for 3.3.7 2017-08-28 12:34:14 -07:00
Fabien Potencier
e313e69e98 bumped Symfony version to 2.8.28 2017-08-28 12:33:37 -07:00
Fabien Potencier
527e171383 updated VERSION for 2.8.27 2017-08-28 12:21:40 -07:00
Fabien Potencier
bc4e01500b bumped Symfony version to 2.7.35 2017-08-28 12:18:16 -07:00
Dany Maillard
4c4c3987fd Add period caster 2017-08-28 20:44:17 +02:00
Fabien Potencier
0f45d7963a updated VERSION for 2.7.34 2017-08-28 11:40:36 -07:00
Fabien Potencier
b12109d884 bug #24009 [DI] Fix tracking env vars when merging configs (bis) (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix tracking env vars when merging configs (bis)

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

Commits
-------

baaff20f4a [DI] Fix tracking env vars when merging configs (bis)
2017-08-28 11:35:09 -07:00
Kevin Bond
00d7f6fa71
[DI] improve psr4-based service discovery with namespace option 2017-08-28 12:51:31 -04:00
Nicolas Grekas
baaff20f4a [DI] Fix tracking env vars when merging configs (bis) 2017-08-28 17:49:50 +02:00
Nicolas Grekas
e600cd8647 [Cache] Use zend.detect_unicode instead of zend.multibyte 2017-08-28 10:20:24 +02:00
Fabien Potencier
726c567d14 Merge branch '2.8' into 3.3
* 2.8:
  [VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1)
  [Debug] Remove false-positive check in DebugClassLoader
  [Validator] Fix use of GroupSequenceProvider in child classes
  Change number PHPDoc type to int|float
  [VarDumper] Strengthen dumped JS
  [travis] Add timing info
  [Validator] Fix Greek translation
  [Console] Initialize lazily to render exceptions properly
  [Validator] Add a property tag for File::$maxSize
2017-08-27 07:52:21 -07:00
Fabien Potencier
a2d80cafb1 minor #24002 Fix case sensitive typo in use class name (PhilETaylor)
This PR was merged into the 3.3 branch.

Discussion
----------

Fix case sensitive typo in use class name

closes #24001

Change is simple typo: Parameterbag = ParameterBag

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

Fixes this:

`
  [RuntimeException]
  An error occurred when executing the "'cache:clear --no-warmup'" command:
  Fatal error: Uncaught RuntimeException: Case mismatch between loaded and declared class names: "Symfony\Component\DependencyInjection\Parameterbag\EnvPlaceholderParameterBag" v
  s "Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag". in /Users/phil/Sites/maintain.myjoomla.com/vendor/symfony/symfony/src/Symfony/Component/Debug
  /DebugClassLoader.php:165
`

Commits
-------

6fe9072c42 Fix case sensitive typo in use class name
2017-08-27 07:43:21 -07:00
Fabien Potencier
8a38f887cb bug #23985 [Cache] Workaround zend.detect_unicode + zend.multibyte (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Workaround zend.detect_unicode + zend.multibyte

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

ping @patrickvane

Commits
-------

1cab07ebee [Cache] Workaround zend.detect_unicode + zend.multibyte
2017-08-27 07:31:02 -07:00
Fabien Potencier
d3692cefac Merge branch '2.7' into 2.8
* 2.7:
  [VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1)
  [Debug] Remove false-positive check in DebugClassLoader
  [Validator] Fix use of GroupSequenceProvider in child classes
  Change number PHPDoc type to int|float
  [VarDumper] Strengthen dumped JS
  [travis] Add timing info
  [Validator] Fix Greek translation
  [Console] Initialize lazily to render exceptions properly
  [Validator] Add a property tag for File::$maxSize
2017-08-27 07:29:03 -07:00
Fabien Potencier
c6ffdcf9dd minor #23999 [VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1) (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1)

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

Commits
-------

0164038998 [VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1)
2017-08-27 07:26:20 -07:00
Fabien Potencier
56987eabd1 bug #23989 [Debug] Remove false-positive check in DebugClassLoader (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Debug] Remove false-positive check in DebugClassLoader

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

In some edge case situations, DebugClassLoader generates false-positives (see linked issue, ping @gharlan).

Commits
-------

466da3fd63 [Debug] Remove false-positive check in DebugClassLoader
2017-08-27 07:20:32 -07:00
Phil Taylor
6fe9072c42 Fix case sensitive typo in use class name
closes #24001

Simple typo fix
2017-08-27 14:23:17 +01:00
Maxime Steinhausser
cc9fd5967d [Translation] Fix <note> is interpreted as a tag in CHANGELOG 2017-08-27 10:55:51 +02:00
Nicolas Grekas
0164038998 [VarDumper] Enhance docblock to tell about AbstractDumper::dumpLine(-1) 2017-08-27 10:38:33 +02:00
Nicolas Grekas
466da3fd63 [Debug] Remove false-positive check in DebugClassLoader 2017-08-27 10:27:28 +02:00
Nicolas Grekas
f8a75180e0 [Cache] Use namespace versioning for backends that dont support clearing by keys 2017-08-27 09:56:53 +02:00
Fabien Potencier
ebd14ee67f bug #23983 [VarDumper] Strengthen dumped JS (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[VarDumper] Strengthen dumped JS

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

3.3 part of #23982

Commits
-------

5e05fc958f [VarDumper] Strengthen dumped JS
2017-08-26 06:19:07 -07:00
Fabien Potencier
c8966640bd bug #23982 [VarDumper] Strengthen dumped JS (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Strengthen dumped JS

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

Commits
-------

5c1bd10017 [VarDumper] Strengthen dumped JS
2017-08-26 06:17:11 -07:00
Fabien Potencier
b4452f8b3f bug #23925 [Validator] Fix use of GroupSequenceProvider in child classes (linniksa)
This PR was squashed before being merged into the 2.7 branch (closes #23925).

Discussion
----------

[Validator] Fix use of GroupSequenceProvider in child classes

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | not in real cases
| Deprecations? | no
| Tests pass?   | yes
| License       | MIT

For example validation of doctrine proxy objects fails.

Commits
-------

8d7b203d80 [Validator] Fix use of GroupSequenceProvider in child classes
2017-08-26 06:15:36 -07:00
Sergey Linnik
8d7b203d80 [Validator] Fix use of GroupSequenceProvider in child classes 2017-08-26 06:15:27 -07:00
Tobias Nyholm
b0cdb53d67 [Translation] Adding the ability do load <notes> in xliff2.0 2017-08-26 06:08:32 -07:00
GDIBass
fefc20233b newline at end of file 2017-08-25 11:26:09 -07:00
GDIBass
8f2fa6b047 changed exception message 2017-08-25 11:25:19 -07:00
Billie Thompson
c7601cb40e
Change number PHPDoc type to int|float
While number is a valid type inside PHP internally, it's not a part of
the PHPDoc standard. This causes IDEs and static analysers to raise
errors on this function. The internal PHP type `number` is the same as
`int|float`, this changes the type to that.

https://php.net/manual/en/language.pseudo-types.php#language.types.number
https://github.com/php-fig/fig-standards/blob/master/proposed/phpdoc.md#keyword
2017-08-25 17:49:09 +01:00
Nicolas Grekas
1cab07ebee [Cache] Workaround zend.detect_unicode + zend.multibyte 2017-08-25 17:28:27 +02:00
Nicolas Grekas
5c1bd10017 [VarDumper] Strengthen dumped JS 2017-08-25 14:02:05 +02:00
Nicolas Grekas
5e05fc958f [VarDumper] Strengthen dumped JS 2017-08-25 14:01:42 +02:00
Fabien Potencier
67abb80498 feature #23887 [Console] Allow commands to provide a default name for compile time registration (chalasr, nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Allow commands to provide a default name for compile time registration

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

Commits
-------

eda7d42955 [Console] Add protected static $defaultName to set the default name of a Command
5d9ae6b56f [Console] Allow commands to provide a default name for compile time registration
2017-08-24 14:10:36 -07:00
Nicolas Grekas
d8c400bf58 [Cache] Fix lazy Memcached connections 2017-08-24 21:53:51 +02:00
Nicolas Grekas
eda7d42955 [Console] Add protected static $defaultName to set the default name of a Command 2017-08-24 16:43:56 +02:00
Nicolas Grekas
0e2d2b8c08 [VarDumper] add force-collapse/expand + use it for traces 2017-08-24 15:46:12 +02:00
Fabien Potencier
9db03c16c0 bug #23970 [Cache] Fix >30 days expirations with Memcached (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Fix >30 days expirations with 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        | -

As documented in https://github.com/memcached/memcached/wiki/Programming#expiration, expiration times > 30 days are considered as unix timestamps by Memcached.

Commits
-------

2348d64b86 [Cache] Fix >30 days expirations with Memcached
2017-08-24 04:50:40 -07:00
Nicolas Grekas
2348d64b86 [Cache] Fix >30 days expirations with Memcached 2017-08-24 08:57:39 +02:00
Shawn Iwinski
94d55ca0de [Console] Require PHP 7 for ApplicationTest 2017-08-23 17:44:44 -04:00
Fabien Potencier
2e286f8854 minor #23907 [Validator] Add a property tag for File::$maxSize (issei-m)
This PR was merged into the 2.7 branch.

Discussion
----------

[Validator] Add a property tag for File::$maxSize

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| 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?   | Not confirmed (because minor change)
| Fixed tickets | -
| License       | MIT
| Doc PR        | -

For helping IDE to static analyze.

Commits
-------

b72ced22ad [Validator] Add a property tag for File::$maxSize
2017-08-23 05:28:33 -07:00
Fabien Potencier
481e31c2d1 feature #23874 [DI] Case sensitive parameter names (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Case sensitive parameter names

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

@GuilhemN took your patch.. but i use the same deprecation messages as for case sensitive service id's, i found it more clear. Also comparing to $origName to keep the diff smaller

Commits
-------

8a1d16839e [DI] Case sensitive parameter names
2017-08-22 15:02:44 -07:00
Fabien Potencier
e8bb73c775 feature #23936 Remove some sf2 references (fabpot)
This PR was merged into the 3.4 branch.

Discussion
----------

Remove some sf2 references

| 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

Those `sf2` references can be safely remove and changed to `symfony` as there are internal or they don't break anything when upgrading Symfony's version:

* Flashes are ephemeral, so changing the key in the session is not a problem;
* Changing the local storage key for the profiler is not an issue as this is a dev tool.

Commits
-------

1b0265417b removed sf2 references
2017-08-22 14:55:52 -07:00
Fabien Potencier
1b0265417b removed sf2 references 2017-08-22 13:48:27 -07:00
Nicolas Grekas
85f03e19cd Merge branch '3.3' into 3.4
* 3.3:
  [Dotenv] Get env using $_SERVER to work with fastcgi_param and workaround thread safety issues
  [Dotenv][WebServerBundle] Override previously loaded variables
  [DI] Use GlobResource for non-tracked directories
  [WebProfilerBundle] Re add missing link to the controller
2017-08-22 18:06:26 +02:00
Nicolas Grekas
f76e420e09 [Dotenv] Get env using $_SERVER to work with fastcgi_param and workaround thread safety issues 2017-08-22 15:55:16 +02:00
Fabien Potencier
2204f916a3 bug #23799 [Dotenv][WebServerBundle] Override previously loaded variables (voronkovich)
This PR was squashed before being merged into the 3.3 branch (closes #23799).

Discussion
----------

[Dotenv][WebServerBundle] Override previously loaded variables

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

This PR implements @nicolas-grekas's idea about how we could refresh loaded environment variables. See his comment https://github.com/symfony/symfony/issues/23723#issuecomment-320455669

Commits
-------

c5a1218555 [Dotenv][WebServerBundle] Override previously loaded variables
2017-08-22 06:33:43 -07:00
Oleg Voronkovich
c5a1218555 [Dotenv][WebServerBundle] Override previously loaded variables 2017-08-22 06:33:42 -07:00
Nicolas Grekas
cf1ff43067 feature #23665 Create an interface for TranslationWriter (Nyholm)
This PR was squashed before being merged into the 3.4 branch (closes #23665).

Discussion
----------

Create an interface for TranslationWriter

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

We should provide an interface for the TranslationWriter. This allows other libraries (php-translation) that depend on the Translation component provide different implementations.

Commits
-------

c25eafa Create an interface for TranslationWriter
2017-08-22 14:01:48 +02:00
Tobias Nyholm
c25eafa4f3 Create an interface for TranslationWriter 2017-08-22 14:01:15 +02:00
Nicolas Grekas
981001852b bug #23870 [DI] Use GlobResource for non-tracked directories (vudaltsov)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Use GlobResource for non-tracked directories

| Q             | A
| ------------- | ---
| Branch?       | 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

I noticed that some of my excluded directories are still tracked by the container and changes to files inside them make it recompile. This brought me to the `$trackContents || is_dir($path)` line introduced in #21505.

Commits
-------

048eb18 [DI] Use GlobResource for non-tracked directories
2017-08-22 13:27:11 +02:00
Nicolas Grekas
b2fea8849d feature #23890 [Translation] Adding the ability do dump <notes> in xliff2.0 (Nyholm)
This PR was squashed before being merged into the 3.4 branch (closes #23890).

Discussion
----------

[Translation] Adding the ability do dump <notes> in xliff2.0

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

The Xliff2.0 dumper do not dump notes. The note section is the only place (as far as I can see) you can add arbitrary data. See [specification](http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html).

This will be useful when you want to add data like "approved", "status" etc. I can see from the test code that a previous author intends to use attributes to the <target> for such data. That is [not allowed](http://docs.oasis-open.org/xliff/xliff-core/v2.0/os/xliff-core-v2.0-os.html#target), not even with a custom namespace.

If you want to validate my test fixture, here is the validator: http://okapi-lynx.appspot.com/validation

Commits
-------

c4dd11c [Translation] Adding the ability do dump <notes> in xliff2.0
2017-08-22 13:17:51 +02:00
Tobias Nyholm
c4dd11c4e1 [Translation] Adding the ability do dump <notes> in xliff2.0 2017-08-22 13:17:49 +02:00
Valentin
048eb186c7 [DI] Use GlobResource for non-tracked directories 2017-08-22 13:12:00 +02:00
Oleksii Zhurbytskyi
bdae7f530c [Validator] Fix Greek translation 2017-08-22 13:13:34 +03:00
Nicolas Grekas
3db39f453f Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix resolving env vars when compiling a ContainerBuilder
2017-08-21 18:05:35 +02:00
Nicolas Grekas
921959422f [DI] Fix resolving env vars when compiling a ContainerBuilder 2017-08-21 17:49:07 +02:00
GDIBass
49839e3c28 Ahh, I see. It actually wants a newline! 2017-08-18 08:43:29 -07:00
GDIBass
2c9d1e2d42 Removed newline 2017-08-18 08:42:05 -07:00
GDIBass
92308b4815 Created new Exception to throw and modified tests. 2017-08-18 08:40:24 -07:00
GDIBass
2ebc71a616 Created new Exception to throw and modified tests 2017-08-18 08:37:36 -07:00
Nicolas Grekas
3fa5b3aeba Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix merging of env vars in configs
2017-08-18 16:18:15 +02:00
Nicolas Grekas
1732cc8489 bug #23903 [DI] Fix merging of env vars in configs (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix merging of env vars in configs

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

Commits
-------

00b9273 [DI] Fix merging of env vars in configs
2017-08-18 16:05:00 +02:00
Fabien Potencier
50fe6a3c76 feature #23915 [DI] Allow get available services from service locator (Koc)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Allow get available services from service locator

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

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

Sometimes we are using service locators and throw context specific exceptions if service not found inside it. Would be nice inform user about available services in our custom exception, like:

```php
try {
    return $this->transports->get($transport);
} catch (NotFoundExceptionInterface $e) {
    $availableTransports = method_exists($e, 'getAlternatives') ? $e->getAlternatives() : [];

    throw TransportNotFoundException::create($transport, $availableTransports, $e);
}
```

Commits
-------

4993b1c14c Allow to get alternatives when ServiceNotFoundException occurs.
2017-08-18 14:05:45 +02:00
Nicolas Grekas
a4fc49294e [HttpKernel][FrameworkBundle] Add RebootableInterface, fix and un-deprecate cache:clear with warmup 2017-08-18 13:51:16 +02:00
Nicolas Grekas
00b927322c [DI] Fix merging of env vars in configs 2017-08-18 13:25:49 +02:00
Fabien Potencier
9306fec43e minor #23912 [DI] Rererence parameter arrays when possible (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Rererence parameter arrays when possible

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

This a minor optim that might save memory and CPU for cases where big array parameters are inlined by DI extensions. This re-references them when possible.

Commits
-------

62c1bb5d3b [DI] Rererence parameter arrays when possible
2017-08-18 10:12:20 +02:00
GDIBass
3a8b2eded1 Code standard fixes 2017-08-17 23:45:14 -07:00
GDIBass
22b44e251f Changed automatic token generation to throw an exception instead 2017-08-17 23:37:10 -07:00
Nicolas Grekas
16d34ebcae Merge branch '3.3' into 3.4
* 3.3:
  [VarDumper] Fix tests with phpredis 3.1.3
  [DI] Fix reading env vars from fastcgi params
  Allow phpdocumentor/reflection-docblock 4.
  [VarDumper] play nice with open_basedir when looking for composer.json
2017-08-17 15:38:59 +02:00
Nicolas Grekas
773f166d5e [VarDumper] Fix tests with phpredis 3.1.3 2017-08-17 15:29:00 +02:00
Konstantin.Myakshin
4993b1c14c Allow to get alternatives when ServiceNotFoundException occurs. 2017-08-17 15:22:42 +03:00
Nicolas Grekas
a014222113 bug #23899 [DI] Fix reading env vars from fastcgi params (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix reading env vars from fastcgi params

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

Values in fastcgi_param populate `$_SERVER`, never `$_ENV`.
This PR makes `$container->getEnv()` read from `$_SERVER`, excluding any vars whose name start by `HTTP_` as that would be a security issue (values injection via HTTP headers.)

Embeds a few other fixes found meanwhile.

Commits
-------

adff65a [DI] Fix reading env vars from fastcgi params
2017-08-17 14:09:40 +02:00
Nicolas Grekas
62c1bb5d3b [DI] Rererence parameter arrays when possible 2017-08-17 11:23:46 +02:00
Nicolas Grekas
62174fda10 [Console] Initialize lazily to render exceptions properly 2017-08-17 10:44:22 +02:00
GDIBass
8ab59cb1c2 Updated if statement 2017-08-17 01:27:02 -07:00
Issei.M
b72ced22ad [Validator] Add a property tag for File::$maxSize 2017-08-17 16:14:13 +09:00
GDIBass
324c208e12 Code standards update 2017-08-16 23:27:57 +00:00
GDIBass
b044ffb4a2 Added support for guards when advancing workflow from a command 2017-08-16 23:21:24 +00:00
Robin Chalas
5d9ae6b56f [Console] Allow commands to provide a default name for compile time registration 2017-08-16 21:44:58 +02:00
Nicolas Grekas
8c4a1e75be feature #23227 Add support for "controller" keyword for configuring routes controllers (voronkovich)
This PR was merged into the 3.4 branch.

Discussion
----------

Add support for "controller" keyword for configuring routes controllers

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

This PR adds a syntax sugar for configuring routes controllers in more user-friendly way by using a `controller` keyword.

```yaml
# Current syntax
# It looks strange and exposes Symfony's internals
blog_show:
    path:     /blog/{slug}
    defaults: { _controller: AppBundle:Blog:show }

# Suggested syntax
blog_show:
    path:       /blog/{slug}
    controller: AppBundle:Blog:show
```
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <!-- Current syntax -->
    <route id="blog_list" path="/blog">
        <default key="_controller">AppBundle:Blog:list</default>
    </route>

    <!-- Suggested syntax -->
    <route id="blog_list" path="/blog" controller="AppBundle:Blog:list" />
</routes>
```

Commits
-------

06bbee8 [Routing] Use "controller" keyword for configuring routes controllers
2017-08-16 18:33:30 +02:00
Oleg Voronkovich
06bbee862f [Routing] Use "controller" keyword for configuring routes controllers 2017-08-16 18:25:34 +02:00
Nicolas Grekas
9026aed89e bug #23793 [VarDumper] Fix interval caster with PT3600S-like spec (maidmaid)
This PR was squashed before being merged into the 3.4 branch (closes #23793).

Discussion
----------

[VarDumper] Fix interval caster with PT3600S-like spec

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

According [ISO 8601](https://fr.wikipedia.org/wiki/ISO_8601):

> The standard does not prohibit date and time values in a duration representation from exceeding their "carry over points" except as noted below. Thus, "PT36H" could be used as well as "P1DT12H" for representing the same duration.

But this *breaks* ``interval`` representation, and this PR improves this.

```php
dump(new DateInterval('PT3600S'));

// before
DateInterval {
  interval: + 00:00:3600.0
}

// after
DateInterval {
  interval: + 01:00:00.0
}
```

Commits
-------

046f8c1 [VarDumper] Fix interval caster with PT3600S-like spec
2017-08-16 18:14:34 +02:00
Dany Maillard
046f8c101b [VarDumper] Fix interval caster with PT3600S-like spec 2017-08-16 18:14:32 +02:00
Nicolas Grekas
be7751aba7 bug #23878 [VarDumper] play nice with open_basedir when looking for composer.json (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[VarDumper] play nice with open_basedir when looking for composer.json

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

ping @pounard, can you please confirm this fixes the issue you reported?

Commits
-------

1bea774 [VarDumper] play nice with open_basedir when looking for composer.json
2017-08-16 18:04:18 +02:00
Nicolas Grekas
af0b24e27d bug #23897 Allow phpdocumentor/reflection-docblock 4 (derrabus)
This PR was merged into the 3.3 branch.

Discussion
----------

Allow phpdocumentor/reflection-docblock 4

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

The PHPDocumentor team bumped their reflection-docblock library to version 4 due to a breaking change that should not affect Symfony, as far as I can tell. This PR indicates compatibility with the new major version.

Commits
-------

1a5fd79 Allow phpdocumentor/reflection-docblock 4.
2017-08-16 17:59:07 +02:00
Nicolas Grekas
adff65a602 [DI] Fix reading env vars from fastcgi params 2017-08-16 16:07:29 +02:00
Nicolas Grekas
2e4e6ad626 [HttpKernel] Remove old container files 2017-08-15 15:42:13 +02:00
Alexander M. Turek
1a5fd79c21 Allow phpdocumentor/reflection-docblock 4. 2017-08-15 15:32:50 +02:00
Nicolas Grekas
aef502b1a2 Merge branch '3.3' into 3.4
* 3.3:
  Update JsonBundleReader.php
  [HttpKernel] Clean test directory on tear down
  [Console] Remove useless http-kernel dev dep
  Fix testHtml method with regexp
  Fixed some param/return annotations in PHPDOC blocks.
  [Workflow] fixed InvalidDefinitionException message for StateMachineValidator
2017-08-15 15:32:22 +02:00
Nicolas Grekas
d32c7060f1 Merge branch '2.8' into 3.3
* 2.8:
  Update JsonBundleReader.php
  [HttpKernel] Clean test directory on tear down
  Fix testHtml method with regexp
2017-08-15 15:31:09 +02:00
Nicolas Grekas
6434a00f10 Merge branch '2.7' into 2.8
* 2.7:
  Update JsonBundleReader.php
  [HttpKernel] Clean test directory on tear down
  Fix testHtml method with regexp
2017-08-15 15:30:53 +02:00
Johannes Goslar
22a6642632 Update JsonBundleReader.php 2017-08-15 15:19:50 +02:00
Nicolas Grekas
0b613dbb57 minor #23893 [HttpKernel] Clean test directory on tear down (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpKernel] Clean test directory on tear down

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

I've been bitten by this leftover too often.

Commits
-------

0a3dc11 [HttpKernel] Clean test directory on tear down
2017-08-15 15:15:08 +02:00
Nicolas Grekas
0a3dc11af9 [HttpKernel] Clean test directory on tear down 2017-08-15 15:06:19 +02:00
Nicolas Grekas
712e877d8b minor #23894 [Console] Remove useless http-kernel dev dep (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[Console] Remove useless http-kernel dev dep

| 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

Commits
-------

8cbf094 [Console] Remove useless http-kernel dev dep
2017-08-15 11:36:39 +02:00
Robin Chalas
8cbf094702 [Console] Remove useless http-kernel dev dep 2017-08-15 11:15:06 +02:00
Roland Franssen
8a1d16839e [DI] Case sensitive parameter names 2017-08-14 17:16:04 +02:00
Matthieu Mota
339592da14 Fix testHtml method with regexp 2017-08-14 12:36:32 +02:00
Alexander M. Turek
423656f8ea Fixed some param/return annotations in PHPDOC blocks. 2017-08-14 00:08:09 +02:00
Nicolas Grekas
1bea774f4d [VarDumper] play nice with open_basedir when looking for composer.json 2017-08-13 16:29:04 +02:00
Thanos Polymeneas
04df2832ab [Console] Added a case-insensitive fallback for console command names 2017-08-12 10:14:42 +02:00
Florent Mata
9c29f9c19b [Workflow] fixed InvalidDefinitionException message for StateMachineValidator 2017-08-11 14:43:59 +02:00
Nicolas Grekas
eeaea83d38 fix merge 2017-08-10 21:55:15 +02:00
Nicolas Grekas
d1c754d8ca Merge branch '3.3' into 3.4
* 3.3:
  [DI] Fix dumping abstract with YamlDumper
  restrict reflection doc block
  [DI] Fix YamlDumper not dumping abstract and autoconfigure
2017-08-10 21:43:00 +02:00
Nicolas Grekas
daa0251768 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Fix dumping abstract with YamlDumper
2017-08-10 16:42:21 +02:00
Nicolas Grekas
1b9619c6ba bug #23856 [DI] Fix dumping abstract with YamlDumper (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] Fix dumping abstract with YamlDumper

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

c396e8c [DI] Fix dumping abstract with YamlDumper
2017-08-10 16:40:16 +02:00
Nicolas Grekas
f534315daf bug #23848 restrict reflection doc block (ElectricMaxxx)
This PR was merged into the 3.3 branch.

Discussion
----------

restrict reflection doc block

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

I think we should have same behavior on 2.8 and 3.0 but there `phpdocumentor/reflection` is required and i whanted to avoid conflicts.

### Reason:

The version 3.2.0 and 3.2.1 of phpdocumentor/reflection-docblock is really broken. All Annotations lide `@api`, means without any bracket, leads to errors like `Uninitialized string offset: 0`. We in the CMF do not require that bundle directly, but symfony does and so we get braking builds.

Commits
-------

6760127 restrict reflection doc block
2017-08-10 16:39:22 +02:00
Nicolas Grekas
c396e8cb9c [DI] Fix dumping abstract with YamlDumper 2017-08-10 16:37:13 +02:00
Nicolas Grekas
00897c0222 feature #23855 [DI] Allow dumping inline services in Yaml (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Allow dumping inline services in Yaml

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

Commits
-------

e5bbf3f [DI] Allow dumping inline services in Yaml
2017-08-10 16:19:11 +02:00
Nicolas Grekas
3d54c3b6f4 bug #23854 [DI] Fix YamlDumper not dumping abstract and autoconfigure (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Fix YamlDumper not dumping abstract and autoconfigure

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

685ff0e [DI] Fix YamlDumper not dumping abstract and autoconfigure
2017-08-10 16:18:14 +02:00
ElectricMaxxx
676012748a restrict reflection doc block
The version 3.2.0 and 3.2.1 of reflection-docblock is broken and lower version as 3.1 miss some tags
2017-08-10 15:40:56 +02:00
Nicolas Grekas
e5bbf3f4f3 [DI] Allow dumping inline services in Yaml 2017-08-10 13:54:24 +02:00
Nicolas Grekas
685ff0e280 [DI] Fix YamlDumper not dumping abstract and autoconfigure 2017-08-10 13:45:16 +02:00
Fabien Potencier
334b62acd0 minor #23847 [Lock] Fix/lock test (jderusse)
This PR was merged into the 3.4 branch.

Discussion
----------

[Lock] Fix/lock test

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

Test on the Lock component often fail, the purpose of this PR is to fix it.

The goal of this failling test is to assert that blocking locks works. To test the blocking mode, I had to create 2 concurent process and I used pcntl_fork for that.
Sadly, travis takes more time to fork the process than configured TTL.

This PR replace the previous "sleep" to let child and parent starts, by a pcntl communication between child and parent.

| Process 1               | Process 2
| ----------------------- | ----------
| Wait N°2                |
|                         | Acquire Lock
|                         | Send signal to N°1
| Wake up                 | Wait N°1
| Try lock(non block)     |
|  => assert failure      |
| Send signal to N°2      |
| lock(block)             | Wake up
| ..                      | sleep 50 000ms
| ..                      | ..
| ..                      | Release lock
|  => assert Acquired     | exit
| Release lock            |
|  => assert child exit 0 |

Commits
-------

ff951697b6 Fix lock failling test
2017-08-10 09:13:20 +02:00
Fabien Potencier
a1faaa1221 Merge branch '3.3' into 3.4
* 3.3:
  fixed CS
  [2.8] Modify 2.8 upgrade doc - key option is deprecated.
  [DebugBundle] Reword an outdated comment about var dumper wiring
  [DI] Fix some docblocks
  [DI] Fix some docblocks
  Fixed the exception page design in responsive mode
  [Console] Log exit codes as debug messages instead of errors
  Fixed UPGRADE-4.0 about Container::set
  Ignore memcached missing key error on dession destroy
  bumped Symfony version to 3.2.14
  updated VERSION for 3.2.13
  updated CHANGELOG for 3.2.13
2017-08-10 09:07:17 +02:00
Fabien Potencier
a670b2b932 Merge branch '3.2' into 3.3
* 3.2:
  [DebugBundle] Reword an outdated comment about var dumper wiring
  Ignore memcached missing key error on dession destroy
  bumped Symfony version to 3.2.14
  updated VERSION for 3.2.13
  updated CHANGELOG for 3.2.13
2017-08-10 09:07:06 +02:00
Fabien Potencier
3306986a5d Merge branch '2.8' into 3.2
* 2.8:
  fixed CS
  [2.8] Modify 2.8 upgrade doc - key option is deprecated.
  [DebugBundle] Reword an outdated comment about var dumper wiring
  [DI] Fix some docblocks
  Ignore memcached missing key error on dession destroy
  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
  [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
  [HttpFoundation] Generate safe fallback filename for wrongly encoded filename
2017-08-10 09:06:25 +02:00
Fabien Potencier
18e5e70afe Merge branch '2.7' into 2.8
* 2.7:
  [DebugBundle] Reword an outdated comment about var dumper wiring
  Ignore memcached missing key error on dession destroy
2017-08-10 09:04:10 +02:00
Fabien Potencier
ac3ee2c3c2 Merge branch '2.8' into 3.3
* 2.8:
  fixed CS
  [2.8] Modify 2.8 upgrade doc - key option is deprecated.
  [DI] Fix some docblocks
2017-08-10 09:03:10 +02:00
Fabien Potencier
1982fffb16 feature #23836 [FrameworkBundle] Catch Fatal errors in commands registration (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle] Catch Fatal errors in commands registration

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

#### before

![before](https://image.prntscr.com/image/QDmEVSPiQY6VCY7PoNAIbg.png)

#### after

![after](https://image.prntscr.com/image/B2EuZtzwTfiVS6F3kTAa4Q.png)

Trying to run the failing command itself

![failing](https://image.prntscr.com/image/7RgdtCVyQXyVit8TPkh98A.png)

Exceptions/errors thrown in `registerCommands()` (bundles/non-lazy command services registration) are caught and displayed as a warning, allowing to run other valid commands.

Commits
-------

46b6b42b7b [FrameworkBundle] Catch Fatal errors in commands registration
2017-08-10 08:57:58 +02:00
Jérémy Derussé
ff951697b6
Fix lock failling test 2017-08-10 07:46:51 +02:00
Nicolas Grekas
01d1563df4 bug #23844 [Debug] Correctly detect methods not from the same vendor (GuilhemN)
This PR was merged into the 3.4 branch.

Discussion
----------

[Debug] Correctly detect methods not from the same vendor

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

I just realized there were two issues in https://github.com/symfony/symfony/pull/23816:

* when a class extended another class from the same vendor itself extending a class from another vendor containing deprecated methods, the deprecation wasn't triggered in case the first class extended a deprecated method from the last class because the parent from the same vendor was used for "the same vendor check".

* As stated in https://github.com/symfony/symfony/pull/23816#issuecomment-320661894, ReflectionMethod::$class doesn't contain the right value when using a trait so if you extended a trait containing methods from another vendor you would have always get deprecations. I fixed this by comparing the method file to the filename of the class using the trait.

@nicolas-grekas are you aware of any issue of `ReflectionMethod::getFilename()`?

Commits
-------

08d352a [Debug] Correctly detect methods not from the same vendor
2017-08-09 19:12:38 +02:00
Nicolas Grekas
d90742e21a bug #23839 [VarDumper] Minor fix in date caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Minor fix in date 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        | /

Commits
-------

9fdb5d4 Fix minors in date caster
2017-08-09 19:04:47 +02:00
Guilhem Niot
08d352a302 [Debug] Correctly detect methods not from the same vendor 2017-08-09 18:59:29 +02:00
Tobias Schultze
25363450ca feature #23805 [HttpKernel] Deprecated commands auto-registration (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #23805).

Discussion
----------

[HttpKernel] Deprecated commands 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/23488
| License       | MIT
| Doc PR        |

Deprecates commands auto-registration. See https://github.com/symfony/symfony/issues/23488 for arguments.

Commits
-------

14215d8185 [HttpKernel] Deprecated commands auto-registration
2017-08-09 18:53:01 +02:00
Guilhem Niot
14215d8185 [HttpKernel] Deprecated commands auto-registration 2017-08-09 18:52:44 +02:00
Dany Maillard
9fdb5d4eae Fix minors in date caster 2017-08-09 18:38:43 +02:00
Robin Chalas
46b6b42b7b [FrameworkBundle] Catch Fatal errors in commands registration 2017-08-09 18:38:20 +02:00
Nicolas Grekas
1a9a254c10 feature #23816 [Debug] Detect internal and deprecated methods (GuilhemN)
This PR was squashed before being merged into the 3.4 branch (closes #23816).

Discussion
----------

[Debug] Detect internal and deprecated methods

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

I just realized we do not detect `@deprecated` methods like we do for `@final` methods, so here's a fix.

I reorganized the file to avoid code duplication... so the diff is kind of impressive but the behavior is the same.

Commits
-------

16eeabf [Debug] Detect internal and deprecated methods
2017-08-09 18:15:35 +02:00
Guilhem Niot
16eeabfdef [Debug] Detect internal and deprecated methods 2017-08-09 18:15:33 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
Jérémy Derussé
67ecc71364
Deprecate Filesystem/LockHandler 2017-07-31 11:53:49 +02: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
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
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
Nicolas Grekas
92fa55dd8b [VarDumper] Keep and reuse array stubs in memory 2017-07-28 08:06:09 +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
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
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
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
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
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
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
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
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
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
Gavin Staniforth
7ae578cc1a fix(security): ensure the 'route' index is set before attempting to use it 2017-07-20 09:38:09 +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
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
Fabien Potencier
547185fe7a bug #23573 [Config] Make ClassExistenceResource throw on invalid parents (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Config] Make ClassExistenceResource throw on invalid parents

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

Let's throw a more specific exception when a parent class/interface/trait is missing.
Fine tunes #23041

Commits
-------

53b01903ce [Config] Make ClassExistenceResource throw on invalid parents
2017-07-19 06:18:00 +02:00
Fabien Potencier
1f8cc178c1 minor #23579 [DI] Change "this" to "that" in findAndSortTaggedServices doc to reduce confusion (simshaun)
This PR was merged into the 3.2 branch.

Discussion
----------

[DI] Change "this" to "that" in `findAndSortTaggedServices` doc to reduce confusion

Continuation of PR #23578 which I royally messed up.....

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

I know this is extremely minor, but reading the description of this method, I got confused. Wondering if it's just me.

Where it says:

> The order of additions must be respected for services having the same priority, and knowing that the \SplPriorityQueue class does not respect the FIFO method, we should not use **this** class.

Should it not say "we should not use **that** class"?

Commits
-------

04b7b04b65 Change "this" to "that" to avoid confusion
2017-07-19 05:54:37 +02:00
Shaun Simmons
04b7b04b65 Change "this" to "that" to avoid confusion 2017-07-18 17:34:47 -04:00
Nicolas Grekas
eed8a5143d [VarDumper] Move locale sniffing to dump() time 2017-07-18 18:11:53 +02:00
Nicolas Grekas
305ae5e5d4 [VarDumper] Use "C" locale when using "comma" flags 2017-07-18 18:05:00 +02:00
Nicolas Grekas
53b01903ce [Config] Make ClassExistenceResource throw on invalid parents 2017-07-18 16:40:06 +02:00
Nicolas Grekas
a1846f0637 Merge branch '3.3' into 3.4
* 3.3:
  remove useless comment
  fix merge
2017-07-18 13:59:19 +02:00
Nicolas Grekas
4917b30718 fix merge 2017-07-18 10:09:42 +02:00
Nicolas Grekas
a0795c7186 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Resolve aliases earlier
  [DI] Mark Container::$privates as internal
  [DI] Minor dumping logic simplification
  bumped Symfony version to 3.3.6
  updated VERSION for 3.3.5
  updated CHANGELOG for 3.3.5
  bumped Symfony version to 3.2.13
  updated VERSION for 3.2.12
  updated CHANGELOG for 3.2.12
  bumped Symfony version to 2.8.26
  updated VERSION for 2.8.25
  updated CHANGELOG for 2.8.25
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:59:12 +02:00
Nicolas Grekas
72aaecc0ff Merge branch '3.2' into 3.3
* 3.2:
  [DI] Resolve aliases earlier
  [DI] Mark Container::$privates as internal
  bumped Symfony version to 3.2.13
  updated VERSION for 3.2.12
  updated CHANGELOG for 3.2.12
  bumped Symfony version to 2.8.26
  updated VERSION for 2.8.25
  updated CHANGELOG for 2.8.25
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:56:35 +02:00
Nicolas Grekas
30b409a295 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Resolve aliases earlier
  bumped Symfony version to 2.8.26
  updated VERSION for 2.8.25
  updated CHANGELOG for 2.8.25
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:52:56 +02:00
Nicolas Grekas
f8f5c028d1 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Resolve aliases earlier
  bumped Symfony version to 2.7.33
  updated VERSION for 2.7.32
  update CONTRIBUTORS for 2.7.32
  updated CHANGELOG for 2.7.32
2017-07-18 09:49:35 +02:00
Fabien Potencier
910a8debd8 minor #23559 [DI] Resolve aliases earlier (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] Resolve aliases earlier

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

Not a bug fix because a compiler pass already resolves aliases, but makes reasoning locally about the code easier.

Commits
-------

9922827cc2 [DI] Resolve aliases earlier
2017-07-18 09:30:09 +02:00
Nicolas Grekas
9922827cc2 [DI] Resolve aliases earlier 2017-07-18 09:15:21 +02:00
Nicolas Grekas
2725fd6080 [DI] Mark Container::$privates as internal 2017-07-18 09:06:47 +02:00
Nicolas Grekas
37d8495a59 [DI] Minor dumping logic simplification 2017-07-17 22:48:54 +02:00
Fabien Potencier
5c2797afd3 bumped Symfony version to 3.3.6 2017-07-17 21:17:46 +02:00
Fabien Potencier
d7d9a07917 updated VERSION for 3.3.5 2017-07-17 21:08:23 +02:00
Fabien Potencier
95c03f2fb3 bumped Symfony version to 3.2.13 2017-07-17 21:06:44 +02:00
Fabien Potencier
579203a9f0 updated VERSION for 3.2.12 2017-07-17 20:15:00 +02:00
Fabien Potencier
53b8579bec bumped Symfony version to 2.8.26 2017-07-17 20:14:06 +02:00
Fabien Potencier
5836f0ea64 updated VERSION for 2.8.25 2017-07-17 20:00:03 +02:00
Fabien Potencier
3d4e143619 bumped Symfony version to 2.7.33 2017-07-17 19:58:04 +02:00
Fabien Potencier
f01f3d328a updated VERSION for 2.7.32 2017-07-17 19:33:19 +02:00
Fabien Potencier
43eed768ab Merge branch '3.3' into 3.4
* 3.3:
  fixed double-declaration
2017-07-17 19:31:23 +02:00
Fabien Potencier
72947810a3 fixed double-declaration 2017-07-17 19:27:31 +02:00
Fabien Potencier
2cc53abd1e Merge branch '3.3' into 3.4
* 3.3:
  conflict for phpdocumentor/reflection-docblock 3.2
2017-07-17 18:39:35 +02:00
Fabien Potencier
26ffb959a1 Merge branch '3.2' into 3.3
* 3.2:
  conflict for phpdocumentor/reflection-docblock 3.2
2017-07-17 18:39:25 +02:00
Christian Flothmann
58d49f71f1 conflict for phpdocumentor/reflection-docblock 3.2
phpdocumentor/reflection-docblock included a change in release 3.2.0
which required a tag to be followed by a space. This conflicts with our
use of the `@Group` annotation:

```php
/**
 * @var \DateTime[]
 * @Groups({"a", "b"})
 */
public $collection;
```
2017-07-17 17:30:29 +02:00
Fabien Potencier
1e88b35380 Merge branch '3.3' into 3.4
* 3.3:
  [FrameworkBundle] Set default public directory on install assets
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  disable inlining deprecated services
  [Cache] add constructor docblocks for clarity
  [WebServerBundle] allowed public/ root directory to be auto-discovered along side web/
  [WebServerBundle] remove duplicate code
  [SecurityBundle] Clarify deprecation in UserPasswordEncoderCommand::getContainer
  [Cache] add constructor docblocks for clarity
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:07:19 +02:00
Fabien Potencier
649e2cd8bb Merge branch '3.2' into 3.3
* 3.2:
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  disable inlining deprecated services
  [Cache] add constructor docblocks for clarity
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:07:10 +02:00
Fabien Potencier
d3ca5083bf Merge branch '2.8' into 3.2
* 2.8:
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  disable inlining deprecated services
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:04:01 +02:00
Fabien Potencier
f49cc11021 Merge branch '2.7' into 2.8
* 2.7:
  [Security] Fix wrong term in UserProviderInterface
  [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content
  [Security] validate empty passwords again
  [DI] Remove irrelevant comment from container
  [TwigBridge] cleaner implementation of the TwigRenderer
2017-07-17 16:02:19 +02:00
Fabien Potencier
2fa948d328 minor #23533 [Console] Application is not responsible for setting the name of lazy commands (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Console] Application is not responsible for setting the name of lazy commands

| 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

Fixes `all` not calling `get()` for lazy commands and stop setting the command name from Application (the command loader is responsible for returning valid commands).

Commits
-------

f25a8b5c41 Fix lazy commands registration
2017-07-17 14:48:33 +02:00
Robin Chalas
f25a8b5c41 Fix lazy commands registration 2017-07-17 14:21:21 +02:00
Fabien Potencier
80efd8f950 minor #23505 [Cache] add constructor docblocks for clarity (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] add constructor docblocks for clarity

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

Commits
-------

d1ce5322a6 [Cache] add constructor docblocks for clarity
2017-07-17 14:07:22 +02:00
Fabien Potencier
559ccb2c66 security #23507 [Security] validate empty passwords again (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] validate empty passwords again

| 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/23341#issuecomment-315341226
| License       | MIT
| Doc PR        |

It looks like this part of #23341 causes serious security issues for some users who rely on the validator to also compare the empty string with their user's password (see for example https://github.com/symfony/symfony/pull/23341#issuecomment-315341226). Thus I suggest to revert this part of #23341.

Commits
-------

878198cefa [Security] validate empty passwords again
2017-07-17 12:54:11 +02:00
Issei.M
b5b8c15831 [Security] Fix wrong term in UserProviderInterface 2017-07-17 12:41:13 +02:00
Fabien Potencier
aa27974920 minor #23517 [Profiler][Validator] ValidatorDataCollector: use new DataCollector::getCasters() method (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Profiler][Validator] ValidatorDataCollector: use new DataCollector::getCasters() method

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

~~First commit targets 3.3; see https://github.com/symfony/symfony/pull/23516.~~

I didn't re-used the `ConstraintViolationInterface` caster used in the form collector, as it's the purpose of the validator collector to show the constraints data.

Commits
-------

c725a700cf [Profiler][Validator] ValidatorDataCollector: use new DataCollector::getCasters() method
2017-07-17 12:35:31 +02:00
Fabien Potencier
a6232a4eef feature #23515 [VarDumper] Added setMinDepth to VarCloner (james-johnston-thumbtack)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Added setMinDepth to VarCloner

This new function allows VarCloner users to specify a minimum tree
depth that must be fully explored before we start limiting the number of
cloned items via the existing setMaxItems functionality.

It’s useful for dumping arguments from a backtrace to ensure some
minimum level of detail, while keeping a very low setMaxItems value to
ensure fast performance at the deeper levels.

| 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 | none
| License       | MIT
| Doc PR        | symfony/symfony-docs#8155 <!--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.
-->

Commits
-------

d6534f5cfc [VarDumper] Added setMinDepth to VarCloner
2017-07-17 12:31:40 +02:00
Fabien Potencier
0100ca145d minor #23452 [DI] Remove irrelevant comment from container (ro0NL)
This PR was merged into the 2.7 branch.

Discussion
----------

[DI] Remove irrelevant comment from container

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| 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-->

Spotted in #22811

Commits
-------

595a225a0f [DI] Remove irrelevant comment from container
2017-07-17 12:28:17 +02:00
Jonathan Vollebregt
5508a00e74 [HttpFoundation] Set meta refresh time to 0 in RedirectResponse content 2017-07-17 12:22:37 +02:00
Alessandro Chitolina
6ab8ca0d36
disable inlining deprecated services 2017-07-17 11:57:18 +02:00
Gregor Harlan
b2c0dc3901 [Stopwatch] Fix precision for root section 2017-07-17 09:33:44 +02:00
Christian Flothmann
d1ce5322a6 [Cache] add constructor docblocks for clarity 2017-07-17 08:54:27 +02:00
Maxime Steinhausser
c725a700cf [Profiler][Validator] ValidatorDataCollector: use new DataCollector::getCasters() method 2017-07-15 10:55:31 +02:00
Nicolas Grekas
b24a338f71 Merge branch '3.3' into 3.4
* 3.3:
  [Profiler] Fix data collector getCasters() call
  remove symfony/process suggestion
  [DI] Remove unused dynamic property
  [Process] Fixed issue between process builder and exec
  non-conflicting anonymous service ids across files
2017-07-15 10:52:56 +02:00
Nicolas Grekas
de1143ba28 minor #23516 [Profiler] Fix data collector getCasters() call (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[Profiler] Fix data collector getCasters() call

| 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

Relates to https://github.com/symfony/symfony/pull/23465. Calling `DataCollector::getCasters()` using self results into overridden methods in child classes never been called.

Also removes an unused property.

Commits
-------

34e7094 [Profiler] Fix data collector getCasters() call
2017-07-15 10:52:36 +02:00
Maxime Steinhausser
9b40b4af65 [Console] Add a factory command loader for standalone application with lazy-loading needs 2017-07-15 10:43:17 +02:00
Maxime Steinhausser
34e7094d3d [Profiler] Fix data collector getCasters() call 2017-07-15 09:52:13 +02:00
James Johnston
d6534f5cfc [VarDumper] Added setMinDepth to VarCloner
This new function allows VarCloner users to specify a minimum tree
depth that must be fully explored before we start limiting the number of
cloned items via the existing setMaxItems functionality.

It’s useful for dumping arguments from a backtrace to ensure some
minimum level of detail, while keeping a very low setMaxItems value to
ensure fast performance.
2017-07-15 00:44:49 -07:00
Kévin Dunglas
6de81a7756
[DI] Remove unused dynamic property 2017-07-14 23:11:01 +02:00
Christian Flothmann
813a5377e1 [Cache] add constructor docblocks for clarity 2017-07-14 16:39:18 +02:00
Christian Flothmann
878198cefa [Security] validate empty passwords again 2017-07-14 16:25:02 +02:00
Grégoire Pineau
8cd1a2d527 [Process] Fixed issue between process builder and exec
refs #23495
2017-07-13 15:05:09 +02:00
Christian Flothmann
8289ca6d1a non-conflicting anonymous service ids across files 2017-07-12 20:52:55 +02:00
Roland Franssen
c4b6066c9f [DI] Check privates before resolving alias in Container::initialized 2017-07-12 20:41:02 +02:00
Dany Maillard
a73522c0de Add interval caster 2017-07-12 20:00:22 +02:00
Nicolas Grekas
c9371808f6 Merge branch '3.3' into 3.4
* 3.3:
  fix merge
  fix merge
2017-07-12 16:42:11 +02:00
Nicolas Grekas
8e6accc4d0 fix merge 2017-07-12 16:41:59 +02:00
Nicolas Grekas
d09aeaf0fd Merge branch '3.2' into 3.3
* 3.2:
  fix merge
2017-07-12 16:40:39 +02:00
Nicolas Grekas
2b2c0b7c97 fix merge 2017-07-12 16:37:06 +02:00
Nicolas Grekas
5f91f74f4d feature #23404 [Serializer] AbstractObjectNormalizer: Allow to disable type enforcement (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] AbstractObjectNormalizer: Allow to disable type enforcement

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

This allows to denormalize simple DTOs with public properties using the property-info component and the `ObjectNormalizer`. The raised exception is not really useful in such cases, as it cannot be easily handled gracefully to build a proper violation response (too generic and no real hint on the complete attribute path for instance).
Instead, I use the validator component to validate my DTOs and the properties' types, get a proper violation list, and build a response from it.

I wasn't really inspired for the `DISABLE_TYPE_ENFORCEMENT` name.

Commits
-------

959ac2a [Serializer] AbstractObjectNormalizer: Allow to disable type enforcement
2017-07-12 16:21:35 +02:00
Nicolas Grekas
4324804357 Merge branch '3.3' into 3.4
* 3.3:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Process] Fix parsing args on Windows
  [HttpKernel][VarDumper] Truncate profiler data & optim perf
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 15:09:21 +02:00
Nicolas Grekas
6b5d35f058 Merge branch '3.2' into 3.3
* 3.2:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 15:03:20 +02:00
Nicolas Grekas
e51c1a5658 Merge branch '2.8' into 3.2
* 2.8:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 15:02:55 +02:00
Nicolas Grekas
0c6096fc32 Merge branch '2.7' into 2.8
* 2.7:
  [DI] Handle root namespace in service definitions
  Use rawurlencode() to transform the Cookie into a string
  [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 14:59:33 +02:00
Nicolas Grekas
ab8ac13dcf feature #22576 [Validator] Allow to use a property path to get value to compare in comparison constraints (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Allow to use a property path to get value to compare in comparison constraints

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

So we can simply declare something like:

```php
class Activity
{
    /**
     * @var \DateTime
     *
     * @Assert\DateTime()
     */
    private $startDate;

    /**
     * @var \DateTime
     *
     * @Assert\DateTime()
     * @Assert\GreaterThan(propertyPath="startDate")
     */
    private $endDate;

    // [...]

    public function getStartDate(): \DateTime
    {
        return $this->startDate;
    }

    public function getEndDate(): \DateTime
    {
        return $this->startDate;
    }
}
```

Of course, this is actually already possible by using an `Expression` constraint (or a callable), but it feels more natural to me to use proper comparison constraints for this.

Commits
-------

07c5aa6 [Validator] Allow to use a property path to get value to compare in comparison constraints
2017-07-12 14:11:37 +02:00
Nicolas Grekas
87a6845b4d bug #23468 [DI] Handle root namespace in service definitions (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #23468).

Discussion
----------

[DI] Handle root namespace in service definitions

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

Fixes

```
Cannot dump definition because of invalid class name ('\\stdClass')
```

for

```yaml
services:
    foo: {class: '\stdClass' }
```

`ContainerBuilder` allows it, so `PhpDumper` should as well.

Commits
-------

05170c8 [DI] Handle root namespace in service definitions
2017-07-12 13:53:19 +02:00
Roland Franssen
05170c84a2 [DI] Handle root namespace in service definitions 2017-07-12 13:53:12 +02:00
Robin Chalas
7f97519624 Add support for command lazy-loading 2017-07-12 11:59:19 +02:00
Nicolas Grekas
e659ec175f bug #23477 [Process] Fix parsing args on Windows (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Process] Fix parsing args on Windows

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

Commits
-------

8826da1 [Process] Fix parsing args on Windows
2017-07-12 08:48:08 +02:00
Nicolas Grekas
c2a6a6e9b5 bug #23256 [Security] Fix authentication.failure event not dispatched on AccountStatusException (chalasr)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] Fix authentication.failure event not dispatched on AccountStatusException

| 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/18807
| License       | MIT
| Doc PR        | n/a

Authentication fails if the user exists but its account is disabled/expired/locked, the failure event should be dispatched in this case, so that you can hook into as for any authentication exception.

Commits
-------

64c2efd [Security] Fix authentication.failure event not dispatched on AccountStatusException
2017-07-12 08:41:53 +02:00
Javier Eguiluz
025dfff675 Use rawurlencode() to transform the Cookie into a string 2017-07-11 16:37:17 +02:00
Nicolas Grekas
66ead2e972 minor #23476 [VarDumper] Test ReflectionCaster excluding verbosity (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Test ReflectionCaster excluding verbosity

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

Cover better ``ReflectionCaster`` in tests thanks to ``EXCLUDE_*`` filter which was added in https://github.com/symfony/symfony/pull/22588.

Commits
-------

e535089 Add exculde verbosity test
2017-07-11 16:36:03 +02:00
Fabien Potencier
f9d73b902d feature #22176 [DI] Allow imports in string format for YAML (ro0NL)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Allow imports in string format for YAML

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

I see no real reasons why this shouldnt be allowed..

Before

```yml
imports:
    - { resource: config.yml }
```

After

```yml
imports:
    - config.yml
```

Commits
-------

632e934cfa [DI] Allow imports in string format for YAML
2017-07-11 15:58:08 +02:00
Nicolas Grekas
050d686096 feature #23295 [Security] Lazy load user providers (chalasr)
This PR was merged into the 3.4 branch.

Discussion
----------

[Security] Lazy load user providers

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

Commits
-------

d7914a6 [Security] Lazy load user providers
2017-07-11 15:48:06 +02:00
Nicolas Grekas
8826da1c81 [Process] Fix parsing args on Windows 2017-07-11 15:19:03 +02:00
Dany Maillard
e53508986a Add exculde verbosity test 2017-07-11 11:21:44 +02:00
Nicolas Grekas
2b3afd2683 bug #23465 [HttpKernel][VarDumper] Truncate profiler data & optim perf (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpKernel][VarDumper] Truncate profiler data & optim perf

| Q             | A
| ------------- | ---
| Branch?       | 3.3
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #23415, #21547 and hopefully #23110 and #23175
| License       | MIT
| Doc PR        | -

Commits
-------

754d3a7 [HttpKernel][VarDumper] Truncate profiler data & optim perf
2017-07-11 11:17:07 +02:00
Nicolas Grekas
bd30a27805 minor #23470 [VarDumper] Test ExceptionCaster excluding verbosity (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Test ExceptionCaster excluding verbosity

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

Cover better ``ExceptionCaster`` in tests thanks to filter which was added in https://github.com/symfony/symfony/pull/22588.

Commits
-------

85766c9 Add exculde verbosity test
2017-07-11 11:12:37 +02:00
Nicolas Grekas
77b8ea751c Merge branch '3.3' into 3.4
* 3.3:
  Don't display the Symfony debug toolbar when printing the page
  do not wire namespaces for the ArrayAdapter
  check _controller attribute is a string before parsing it
  [Cache] Added test for ApcuAdapter when using in CLI
  allow to configure custom formats in XML configs
  [HttpKernel] fix DumpDataCollector tests
  [FrameworkBundle] fix changelog
  [WebProfilerBundle] Cleanup profiler leftover
  [DotEnv] Fix variable substitution
  require the XML PHP extension
  Fix phpdoc for serializer normalizers exceptions
  Fixed absolute url generation for query strings and hash urls
  bumped Symfony version to 2.8.25
  updated VERSION for 2.8.24
  updated CHANGELOG for 2.8.24
  bumped Symfony version to 2.7.32
  [Filesystem] Dont copy perms when origin is remote
  updated VERSION for 2.7.31
  update CONTRIBUTORS for 2.7.31
  updated CHANGELOG for 2.7.31
2017-07-11 09:19:17 +02:00
Nicolas Grekas
22b67a4430 Merge branch '3.2' into 3.3
* 3.2:
  Don't display the Symfony debug toolbar when printing the page
  do not wire namespaces for the ArrayAdapter
  [Cache] Added test for ApcuAdapter when using in CLI
  allow to configure custom formats in XML configs
  [HttpKernel] fix DumpDataCollector tests
  [FrameworkBundle] fix changelog
  [WebProfilerBundle] Cleanup profiler leftover
  require the XML PHP extension
  Fix phpdoc for serializer normalizers exceptions
  Fixed absolute url generation for query strings and hash urls
  bumped Symfony version to 2.8.25
  updated VERSION for 2.8.24
  updated CHANGELOG for 2.8.24
  bumped Symfony version to 2.7.32
  [Filesystem] Dont copy perms when origin is remote
  updated VERSION for 2.7.31
  update CONTRIBUTORS for 2.7.31
  updated CHANGELOG for 2.7.31
2017-07-11 09:17:58 +02:00
Nicolas Grekas
6435c7f3cf Merge branch '2.8' into 3.2
* 2.8:
  Don't display the Symfony debug toolbar when printing the page
  allow to configure custom formats in XML configs
  require the XML PHP extension
  Fixed absolute url generation for query strings and hash urls
  bumped Symfony version to 2.8.25
  updated VERSION for 2.8.24
  updated CHANGELOG for 2.8.24
  bumped Symfony version to 2.7.32
  [Filesystem] Dont copy perms when origin is remote
  updated VERSION for 2.7.31
  update CONTRIBUTORS for 2.7.31
  updated CHANGELOG for 2.7.31
2017-07-11 09:14:38 +02:00
Nicolas Grekas
6735b35062 Merge branch '2.7' into 2.8
* 2.7:
  allow to configure custom formats in XML configs
  require the XML PHP extension
  Fixed absolute url generation for query strings and hash urls
  bumped Symfony version to 2.7.32
  [Filesystem] Dont copy perms when origin is remote
  updated VERSION for 2.7.31
  update CONTRIBUTORS for 2.7.31
  updated CHANGELOG for 2.7.31
2017-07-11 09:12:11 +02:00
Nicolas Grekas
38905d3f6a feature #23440 [Routing] Add matched and default parameters to redirect responses (artursvonda, Tobion)
This PR was merged into the 3.4 branch.

Discussion
----------

[Routing] Add matched and default parameters to redirect responses

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

Finished #18012 and #19037

Commits
-------

4c1fdd4 [Routing] also add matched params for redirect due to trailing slash
dc3f7a9 [Routing] Add matched and default parameters to redirect responses
2017-07-11 09:07:41 +02:00
Tobias Schultze
4c1fdd4edf [Routing] also add matched params for redirect due to trailing slash 2017-07-11 08:35:47 +02:00
Dany Maillard
85766c9b5e Add exculde verbosity test 2017-07-10 23:04:06 +02:00
Grégoire Pineau
64d196adae [Cache] Added test for ApcuAdapter when using in CLI 2017-07-10 18:11:13 +02:00
Nicolas Grekas
754d3a7568 [HttpKernel][VarDumper] Truncate profiler data & optim perf 2017-07-10 16:18:27 +02:00
Christian Flothmann
5dbee5b5bd [HttpKernel] fix DumpDataCollector tests 2017-07-09 14:41:10 +02:00
Roland Franssen
632e934cfa [DI] Allow imports in string format for YAML 2017-07-08 18:23:22 +02:00
Roland Franssen
595a225a0f [DI] Remove irrelevant comment from container 2017-07-08 10:35:50 +02:00
Maxime Steinhausser
07c5aa6822 [Validator] Allow to use a property path to get value to compare in comparison constraints 2017-07-06 20:13:35 +02:00
Arturs Vonda
dc3f7a9ebd [Routing] Add matched and default parameters to redirect responses 2017-07-06 17:17:23 +03:00
Nicolas Grekas
0bcc5afbda Minor cleanups 2017-07-06 16:36:30 +03:00
Fabien Potencier
c3ec5c5361 bug #23434 [DotEnv] Fix variable substitution (brieucthomas)
This PR was merged into the 3.3 branch.

Discussion
----------

[DotEnv] Fix variable substitution

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

Commits
-------

1dfcdc7000 [DotEnv] Fix variable substitution
2017-07-06 15:57:36 +03:00
Brieuc Thomas
1dfcdc7000 [DotEnv] Fix variable substitution 2017-07-06 14:23:24 +02:00
Nicolas Grekas
47ee1d53c1 Merge branch '3.3' into 3.4
* 3.3: (33 commits)
  Preserve HttpOnly value when deserializing a header
  [DX] [TwigBundle] Enhance the new exception page design
  Fix deprecated message
  [DI][Security] Prevent unwanted deprecation notices when using Expression Languages
  bumped Symfony version to 3.3.5
  updated VERSION for 3.3.4
  updated CHANGELOG for 3.3.4
  [VarDumper] Reduce size of serialized Data objects
  bumped Symfony version to 3.2.12
  updated VERSION for 3.2.11
  updated CHANGELOG for 3.2.11
  fixed bad merge
  Fix indent of methods
  [Cache] Handle APCu failures gracefully
  [DoctrineBridge] Use normalizedIds for resetting entity manager services
  [FrameworkBundle] Do not remove files from assets dir
  [FrameworkBundle] 3.3: Don't get() private services from debug:router
  bumped Symfony version to 3.3.4
  updated VERSION for 3.3.3
  updated CHANGELOG for 3.3.3
  ...
2017-07-06 13:23:40 +03:00
Nicolas Grekas
7ac2570d5c feature #22832 [Debug] Deprecate support for stacked errors (mbabker)
This PR was merged into the 3.4 branch.

Discussion
----------

[Debug] Deprecate support for stacked errors

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

Per discussion in #22804 this deprecates support for error stacking.  // @nicolas-grekas

Commits
-------

04b8b80 Deprecate support for stacked errors
2017-07-06 13:21:47 +03:00
Michael Babker
04b8b8027c Deprecate support for stacked errors 2017-07-06 13:08:05 +03:00
Fabien Potencier
26641bdf44 fixed tests 2017-07-06 12:58:45 +03:00
Chris Wilkinson
5a37f84713 [HttpFoundation] Find the original request protocol version 2017-07-06 12:57:36 +03:00
Fabien Potencier
76858808ad fixed CS 2017-07-06 12:37:30 +03:00
Fabien Potencier
77963313ee feature #23431 [Validator] Add min/max amount of pixels to Image constraint (akeeman)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Add min/max amount of pixels to Image constraint

| 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        | https://github.com/symfony/symfony-docs/pull/7756

Useful for asserting image sizes/areas in pixels, for instance to estimate processing work load.

**This PR continues #22288**. I cleaned up my associated branch a while ago and found no way of restoring or re-linking.

@fabpot: "Could you rename to [TOO_FEW_PIXEL_ERROR](9ab5263d71/src/Symfony/Component/Validator/Constraints/Image.php (L28))? Same for the other constant?"
This is done.
@fabpot "Can you change the base to 3.4 instead of master and rebase on current 3.4? Thanks."
This is done too.

Commits
-------

9ab5263d71 add minimum and maximum amount of pixels to Image validator
2017-07-06 12:36:39 +03:00
Fabien Potencier
82036a388b feature #23223 Add support for microseconds in Stopwatch (javiereguiluz)
This PR was squashed before being merged into the 3.4 branch (closes #23223).

Discussion
----------

Add support for microseconds in Stopwatch

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

Stopwatch component already supports microseconds (and nanoseconds, etc.) ... but the problem is that it converts the millisecond times to integers, so anything smaller to 1 millisecond is lost. This PR changes that to fix issues like the one explained in #18756.

### Before
![before-stopwatch](https://user-images.githubusercontent.com/73419/27279393-c745db54-54e4-11e7-8f26-01e2063604ce.png)

### After

![after-stopwatch](https://user-images.githubusercontent.com/73419/27279396-c8894dac-54e4-11e7-9a3a-bff027377047.png)

Commits
-------

0db8d7fb6a Add support for microseconds in Stopwatch
2017-07-06 12:15:02 +03:00
Javier Eguiluz
0db8d7fb6a Add support for microseconds in Stopwatch 2017-07-06 12:14:58 +03:00
Yanick Witschi
73187d0003 Preserve HttpOnly value when deserializing a header
The specification states that the cookie should be considered http only if and
only if the flag is present.
See https://www.owasp.org/index.php/HttpOnly
2017-07-06 11:04:09 +02:00
Arjan Keeman
9ab5263d71 add minimum and maximum amount of pixels to Image validator 2017-07-06 11:02:57 +02:00
Fabien Potencier
fd01d7a1cf fixed CHANGELOG 2017-07-06 10:45:45 +03:00
Maxime Veber
ec3cc84656 Fix phpdoc for serializer normalizers exceptions
The normalizers throw exceptions. They need to be documented for DX
in the normalizer/denormalizer interfaces.

[Serializer] fit Symfony phpdoc standard

It also adds meaning of each exception throw.

Fix grammary in phpdoc
2017-07-06 10:39:51 +03:00
Nikolay Labinskiy
680da44789 [BrowserKit] Emulate back/forward browser navigation 2017-07-06 10:09:09 +03:00
Dany Maillard
bbd0c7f69f Fix deprecated message 2017-07-06 09:08:20 +02:00
Fabien Potencier
bfaf8a0fdc feature #22619 [FrameworkBundle][Translation] Move translation compiler pass (lepiaf)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle][Translation] Move translation compiler pass

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

move TranslationDumperPass, TranslationExtractorPass, TranslatorPass to Translation component.

Commits
-------

74c951fa04 [FrameworkBundle][Translation] Move translation compiler pass
2017-07-06 09:49:25 +03:00
Fabien Potencier
3981f9ba89 feature #22620 [FrameworkBundle][HttpKernel] Move httpkernel pass (lepiaf)
This PR was merged into the 3.4 branch.

Discussion
----------

[FrameworkBundle][HttpKernel] Move httpkernel pass

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

Move addcachearmer, addcacheclearer compiler pass to httpkernel

Commits
-------

83727c7e3d [FrameworkBundle][HttpKernel] Move addcachearmer, addcacheclearer compiler pass
2017-07-06 09:43:51 +03:00
Fabien Potencier
7e93ccad3f Merge branch '3.2' into 3.3
* 3.2:
  [DI][Security] Prevent unwanted deprecation notices when using Expression Languages
  bumped Symfony version to 3.2.12
  updated VERSION for 3.2.11
  updated CHANGELOG for 3.2.11
2017-07-06 09:25:00 +03:00
Kévin Dunglas
052b8c3a04
[DI][Security] Prevent unwanted deprecation notices when using Expression Languages 2017-07-05 22:19:23 +02:00
Jordan Samouh
a15829d524 [Component][Serializer][Normalizer] : Deal it with Has Method for the Normalizer/Denormalizer 2017-07-05 15:47:26 -04:00
Fabien Potencier
311e627828 bug #23398 [Filesystem] Dont copy perms when origin is remote (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Filesystem] Dont copy perms when origin is remote

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

Commits
-------

7b442211dc [Filesystem] Dont copy perms when origin is remote
2017-07-05 17:24:07 +03:00
Fabien Potencier
94b6ec3092 bumped Symfony version to 3.3.5 2017-07-05 16:59:31 +03:00
Fabien Potencier
e81d5d17d6 updated VERSION for 3.3.4 2017-07-05 16:28:15 +03:00
Nicolas Grekas
70bd2bc41b [VarDumper] Reduce size of serialized Data objects 2017-07-05 16:02:37 +03:00
Robin Chalas
64c2efd8cb [Security] Fix authentication.failure event not dispatched on AccountStatusException 2017-07-05 14:02:28 +02:00
Fabien Potencier
692acb4d64 bumped Symfony version to 3.2.12 2017-07-05 13:46:19 +03:00
Fabien Potencier
99e70b8cc0 updated VERSION for 3.2.11 2017-07-05 12:51:47 +03:00
Fabien Potencier
15df829a83 bumped Symfony version to 2.8.25 2017-07-05 12:39:23 +03:00
Maxime Steinhausser
959ac2a6b2 [Serializer] AbstractObjectNormalizer: Allow to disable type enforcement 2017-07-05 11:31:02 +02:00
Fabien Potencier
bf1be0e08f updated VERSION for 2.8.24 2017-07-05 11:52:59 +03:00
Fabien Potencier
39fc4ddec7 bumped Symfony version to 2.7.32 2017-07-05 11:52:01 +03:00
Nicolas Grekas
7b442211dc [Filesystem] Dont copy perms when origin is remote 2017-07-05 10:27:10 +03:00
Fabien Potencier
beee4332a1 updated VERSION for 2.7.31 2017-07-05 10:16:12 +03:00
Fabien Potencier
442058dc61 Merge branch '2.7' into 2.8
* 2.7:
  Fix indent of methods
2017-07-05 09:50:35 +03:00
Nicolas Grekas
56f72d7f8f Merge branch '3.2' into 3.3
* 3.2:
  fixed bad merge
  [Cache] Handle APCu failures gracefully
  [FrameworkBundle] Do not remove files from assets dir
  bumped Symfony version to 3.2.11
  updated VERSION for 3.2.10
  updated CHANGELOG for 3.2.10
  bumped Symfony version to 2.8.24
  updated VERSION for 2.8.23
  updated CHANGELOG for 2.8.23
  bumped Symfony version to 2.7.31
  updated VERSION for 2.7.30
  update CONTRIBUTORS for 2.7.30
  updated CHANGELOG for 2.7.30
2017-07-05 09:39:29 +03:00
Fabien Potencier
d879eed12a fixed bad merge 2017-07-05 09:33:38 +03:00
Fabien Potencier
ecaae2368d Merge branch '2.7' into 2.8
* 2.7:
  [FrameworkBundle] Do not remove files from assets dir
  bumped Symfony version to 2.7.31
  updated VERSION for 2.7.30
  update CONTRIBUTORS for 2.7.30
  updated CHANGELOG for 2.7.30
2017-07-05 09:32:23 +03:00
Dariusz
58ba4818a6 Fix indent of methods 2017-07-04 23:00:55 +02:00
Christian Flothmann
ac107ba6b2 [Validator] improve the changelog 2017-07-04 21:32:35 +02:00
Nicolas Grekas
47020c4904 [Cache] Handle APCu failures gracefully 2017-07-04 18:20:09 +03:00
Fabien Potencier
5de56eba9a bumped Symfony version to 3.3.4 2017-07-04 09:15:40 +03:00
Fabien Potencier
5d8d746a10 updated VERSION for 3.3.3 2017-07-04 09:02:59 +03:00
Fabien Potencier
ddc9d2e313 bumped Symfony version to 3.2.11 2017-07-04 09:01:46 +03:00
Fabien Potencier
af3fcc11ed updated VERSION for 3.2.10 2017-07-04 08:45:03 +03:00
Fabien Potencier
d011d57f81 bumped Symfony version to 2.8.24 2017-07-04 08:43:52 +03:00
Fabien Potencier
f9b4223990 updated VERSION for 2.8.23 2017-07-04 08:31:02 +03:00
Fabien Potencier
8b1f4127c3 Merge branch '3.2' into 3.3
* 3.2:
  Don't access private services from container aware commands (deprecated)
  Improve CircularReferenceException message
2017-07-04 08:29:22 +03:00
Fabien Potencier
04baf86525 Merge branch '2.8' into 3.2
* 2.8:
  Improve CircularReferenceException message
2017-07-04 08:27:49 +03:00
Christian Flothmann
0ca27ccfde add groups support to the Valid constraint 2017-07-03 18:47:01 +02:00
Fabien Potencier
fa6b45bc58 bumped Symfony version to 2.7.31 2017-07-03 18:37:36 +03:00
Fabien Potencier
75443d232b updated VERSION for 2.7.30 2017-07-03 17:22:50 +03:00
Fabien Potencier
26c5fc0732 Merge branch '2.7' into 2.8
* 2.7:
  Improve CircularReferenceException message
2017-07-03 17:09:54 +03:00
Robin Chalas
d7914a6a7d [Security] Lazy load user providers 2017-07-03 15:41:29 +02:00
Fabien Potencier
d43355c6d8 Merge branch '3.3' into 3.4
* 3.3:
  [Console] Fix descriptor tests
  [Dotenv] parse concatenated variable values
2017-07-03 16:31:36 +03:00
Robin Chalas
3ddb6e6aad [Console] Fix descriptor tests 2017-07-03 15:19:36 +02:00
Thomas Perez
3a529e3391 Improve CircularReferenceException message 2017-07-03 15:09:40 +02:00
Nicolas Grekas
5a3abf5e82 feature #22588 [VarDumper] Add filter in VarDumperTestTrait (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Add filter in VarDumperTestTrait

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

Many casters uses ``EXCLUDE_*`` flags in their cast method. It would be usefull to use this flags directly with ``VarDumperTestTrait`` to tests many cases.

Commits
-------

1da8e71 Add filter in VarDumperTestTrait
2017-07-03 13:37:07 +03:00
Fabien Potencier
73d3d40cf0 feature #23288 [Yaml] deprecate the !str tag (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] deprecate the !str tag

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

The tag specified in the YAML spec is actually !!str.

Commits
-------

976b93a040 [Yaml] deprecate the !str tag
2017-07-03 13:20:17 +03:00
Fabien Potencier
ccfc4dac66 feature #23039 [Validator] Support for parsing PHP constants in yaml loader (mimol91)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Support for parsing PHP constants in yaml loader

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

Yaml components supports PHP constants. It would be great if we could use it also in validator component.

Commits
-------

37afeeae7a Support for parsing PHP constants in yaml loader
2017-07-03 12:57:47 +03:00
Fabien Potencier
3169e12bbf bug #23351 [Dotenv] parse concatenated variable values (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[Dotenv] parse concatenated variable values

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

Commits
-------

aaaf64ddde [Dotenv] parse concatenated variable values
2017-07-03 12:28:08 +03:00
Nicolas Grekas
d6271d7d95 feature #22431 [VarDumper] Add date caster (maidmaid)
This PR was merged into the 3.4 branch.

Discussion
----------

[VarDumper] Add date caster

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

I propose to add a ``DateCaster`` that casts date (with timestamp, date, time, timezone (offset + id), literal date, delta from now and DST) and interval.

Todo:
- [x] cast date
- [x] cast interval
- [x] add tests

Commits
-------

1dbdf1c Add DateCaster
2017-07-03 11:35:37 +03:00
Fabien Potencier
6080220f4a minor #23353 [Stopwatch] add changelog entry for Stopwatch::reset() (xabbuh)
This PR was merged into the 3.4 branch.

Discussion
----------

[Stopwatch] add changelog entry for Stopwatch::reset()

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

f3867e6c54 add changelog entry for Stopwatch::reset()
2017-07-03 11:31:49 +03:00
Fabien Potencier
f9173ea511 minor #23201 Change wording from object to subject (greg0ire)
This PR was merged into the 3.4 branch.

Discussion
----------

Change wording from object to subject

| Q             | A
| ------------- | ---
| Branch?       | 3.4
| 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
| License       | MIT

The authorization checker has been changed to support any value
recently. The naming should reflect that to avoid confusion.
Refs https://github.com/sonata-project/SonataAdminBundle/issues/4518

Commits
-------

d261894c6e Change wording from object to subject
2017-07-03 11:28:26 +03:00
Grégoire Paris
d261894c6e
Change wording from object to subject
The authorization checker has been changed to support any value
recently. The naming should reflect that to avoid confusion.
Refs https://github.com/sonata-project/SonataAdminBundle/issues/4518
2017-07-03 10:24:58 +02:00
Christian Flothmann
f3867e6c54 add changelog entry for Stopwatch::reset() 2017-07-03 10:16:04 +02:00
Fabien Potencier
886df9969a Merge branch '3.3' into 3.4
* 3.3:
  Misspelled word
  Display a better error design when the toolbar cannot be displayed
  do not validate empty values
  [Cache] fix cleanup of expired items for PdoAdapter
  [Dotenv] clean up before running assertions
  [Console] fix description of INF default values
  parse escaped quotes in unquoted env var values
  [PropertyAccess] Fix TypeError discard
  [Validator] Throw exception on Comparison constraints null options
  [FrameworkBundle] Display a proper warning on cache:clear without the --no-warmup option
  [Security] Fix Firewall ExceptionListener priority
  Identify tty tests in Component/Process
  [Workflow] Added more events to the announce function
  [Validator] Remove property path suggestion for using the Expression validator
  [WebProfilerBundle] Fix css trick used for offsetting html anchor from fixed header
  [Security] Fix annotation
2017-07-03 11:12:16 +03:00
Fabien Potencier
9260a7ba03 Merge branch '3.2' into 3.3
* 3.2:
  Misspelled word
  Display a better error design when the toolbar cannot be displayed
  do not validate empty values
  [Cache] fix cleanup of expired items for PdoAdapter
  [Console] fix description of INF default values
  [PropertyAccess] Fix TypeError discard
  [Validator] Throw exception on Comparison constraints null options
  Identify tty tests in Component/Process
  [Workflow] Added more events to the announce function
  [Validator] Remove property path suggestion for using the Expression validator
  [WebProfilerBundle] Fix css trick used for offsetting html anchor from fixed header
  [Security] Fix annotation
2017-07-03 11:12:02 +03:00
Fabien Potencier
d051ef42b3 Merge branch '2.8' into 3.2
* 2.8:
  Misspelled word
  Display a better error design when the toolbar cannot be displayed
  do not validate empty values
  [Console] fix description of INF default values
  [PropertyAccess] Fix TypeError discard
  [Validator] Throw exception on Comparison constraints null options
  Identify tty tests in Component/Process
  [Security] Fix annotation
2017-07-03 11:06:20 +03:00
Dany Maillard
1dbdf1c864 Add DateCaster 2017-07-03 10:05:06 +02:00
Fabien Potencier
2f8eeed5df Merge branch '2.7' into 2.8
* 2.7:
  Misspelled word
  Display a better error design when the toolbar cannot be displayed
  do not validate empty values
  [Console] fix description of INF default values
  [PropertyAccess] Fix TypeError discard
  [Validator] Throw exception on Comparison constraints null options
  Identify tty tests in Component/Process
  [Security] Fix annotation
2017-07-03 11:04:30 +03:00
Fabien Potencier
77d06b5d39 bug #23341 [DoctrineBridge][Security][Validator] do not validate empty values (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[DoctrineBridge][Security][Validator] do not validate empty values

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

Nearly all validators operating on scalar values (except for some special constraints) do ignore empty values. If you want to forbid them, you have to use the `NotBlank` constraint instead.

Commits
-------

fd7ad234bc do not validate empty values
2017-07-03 10:38:34 +03:00
mcorteel
b576f46c26 Misspelled word
The French word "chaine" should be spelled "chaîne".
2017-07-03 10:29:33 +03:00
Fabien Potencier
4c00279360 minor #23107 [Security] Fix annotation (enumag)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] Fix annotation

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

8a4d4eb563 [Security] Fix annotation
2017-07-03 10:26:42 +03:00
Christian Flothmann
aaaf64ddde [Dotenv] parse concatenated variable values 2017-07-03 09:16:11 +02:00
Fabien Potencier
b23ddfefce feature #23285 [Stopwatch] Add a reset method (jmgq)
This PR was merged into the 3.4 branch.

Discussion
----------

[Stopwatch] Add a reset method

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

Let the Stopwatch to be reset to its original state, deleting all the data measured so far. This allows the stopwatch to be reusable, and emulates an actual stopwatch's reset button.

Commits
-------

7cda099663 [Stopwatch] Add a reset method
2017-07-03 10:03:20 +03:00
Fabien Potencier
bfd4173860 bug #23342 [Dotenv] parse escaped quotes in unquoted env var values (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[Dotenv] parse escaped quotes in unquoted env var values

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

66a4fd749d parse escaped quotes in unquoted env var values
2017-07-03 09:56:41 +03:00
Fabien Potencier
03945c7d20 minor #23309 Identify tty tests in Component/Process (pmmaga)
This PR was merged into the 2.7 branch.

Discussion
----------

Identify tty tests in Component/Process

| 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

Commits
-------

65d89ec224 Identify tty tests in Component/Process
2017-07-03 09:43:33 +03:00
Fabien Potencier
1b0e920e08 bug #23291 [Security] Fix Firewall ExceptionListener priority (chalasr)
This PR was merged into the 3.3 branch.

Discussion
----------

[Security] Fix Firewall ExceptionListener priority

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

When making EventDispatcher able to lazy load listeners, we stopped using `ContainerAwareEventDispatcher::addListenerService/addSubcriberService`, we use `EventDispatcher::addListener()` instead. This change makes that the order of listeners is different than before, because `ContainerAwareEventDispatcher` calls `addListener()` tardily so that factories are never stored in `EventDispatcher::$listeners`.

Example diff due to the behavior change in 3.3 (registering an `AppBundle\ExceptionListener::doCatch()` exception listener in the fullstack):

3.2
----

```php
array:5
  0 => "Symfony\Component\Security\Http\Firewall\ExceptionListener::onKernelException"
  1 => "AppBundle\ExceptionListener::doCatch"
  2 => "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelException"
  3 => "Symfony\Bundle\SwiftmailerBundle\EventListener\EmailSenderListener::onException"
  4 => "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException"
]
```

3.3
----

```php
array:5 [
  0 => "AppBundle\ExceptionListener::doCatch"
  1 => "Symfony\Component\HttpKernel\EventListener\ProfilerListener::onKernelException"
  2 => "Symfony\Bundle\SwiftmailerBundle\EventListener\EmailSenderListener::onException"
  3 => "Symfony\Component\Security\Http\Firewall\ExceptionListener::onKernelException"
  4 => "Symfony\Component\HttpKernel\EventListener\ExceptionListener::onKernelException"
]
```
(that is what breaks #23253, the lazy listener is called before the runtime firewall exception listener on dispatch).

This fixes the order by increasing the security exception listener priority.

Commits
-------

8014b38055 [Security] Fix Firewall ExceptionListener priority
2017-07-03 09:18:56 +03:00
Fabien Potencier
4a66db42fc minor #23297 [Validator] Remove property path suggestion for using the Expression validator (ogizanagi)
This PR was merged into the 3.2 branch.

Discussion
----------

[Validator] Remove property path suggestion for using the Expression validator

| 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

This suggestion is erroneous since #17398 removed any usage of the PropertyAccess component within the Validator one, so it's not even required anymore by the ExpressionValidator.

Commits
-------

e9e1534cde [Validator] Remove property path suggestion for using the Expression validator
2017-07-03 09:13:14 +03:00
Fabien Potencier
c1e8183f1b bug #23333 [PropertyAccess] Fix TypeError discard (dunglas)
This PR was merged into the 2.7 branch.

Discussion
----------

[PropertyAccess] Fix TypeError discard

| Q             | A
| ------------- | ---
| Branch?       | 2.7
| Bug fix?      | yes
| New feature?  | no
| 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

Given the following code:

```php
class Bar
{
    private $foos = [];

    public function getFoos(): array
    {
        return 'It doesn\'t respect the return type';
    }

    public function addFoo(Foo $foo)
    {
        // ...
    }

    public function removeFoo(Foo $dateTime)
    {
        // ...
    }
}

$object = new Bar();
$this->propertyAccessor->setValue($object, 'foos', array(new \DateTime()));
```

The `PropertyAccessor` will  crash (`[Symfony\Component\Debug\Exception\ContextErrorException]  Notice: Undefined offset: 0`) instead of displaying the (valid) PHP error.

This PR fixes the issue.

Commits
-------

e0c5040398 [PropertyAccess] Fix TypeError discard
2017-07-03 09:09:23 +03:00
Fabien Potencier
44c3f58265 minor #23327 [Validator] Throw exception on Comparison constraints null options (ogizanagi)
This PR was merged into the 2.7 branch.

Discussion
----------

[Validator] Throw exception on Comparison constraints null options

| Q             | A
| ------------- | ---
| Branch?       | 2.7 <!-- see comment below -->
| Bug fix?      | no. There is no bug, but the constraint can be silently created in an invalid state.
| 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 (failure unrelated)
| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

Commits
-------

2de59a7381 [Validator] Throw exception on Comparison constraints null options
2017-07-03 08:46:34 +03:00
Christian Flothmann
fd7ad234bc do not validate empty values 2017-07-02 09:03:13 +02:00
David Maicher
c183b0e06d [Cache] fix cleanup of expired items for PdoAdapter 2017-07-01 12:17:16 +02:00
Christian Flothmann
baafc7b409 [Dotenv] clean up before running assertions
If one of the assertions failed, the clean up part would never happen.
2017-07-01 11:58:14 +02:00
Christian Flothmann
d8ba440def [Console] fix description of INF default values 2017-07-01 11:26:27 +02:00
Christian Flothmann
66a4fd749d parse escaped quotes in unquoted env var values 2017-06-30 21:14:02 +02:00
Kévin Dunglas
e0c5040398
[PropertyAccess] Fix TypeError discard 2017-06-30 11:24:55 +02:00
Christian Flothmann
a2ae6bf745 [Yaml] fix the displayed line number
`getRealCurrentLineNb()` returns line numbers index by 0 (as they serve
as array indexes internally).
2017-06-30 11:07:51 +02:00
Fabien Potencier
1baac5a74f feature #23294 [Yaml][Lint] Add line numbers to JSON output. (WybrenKoelmans)
This PR was merged into the 4.0-dev branch.

Discussion
----------

[Yaml][Lint] Add line numbers to JSON output.

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

- [ ] Run tests?
- [ ] Check if it will break BC?
- [ ] Update changelog?

The JSON output is not very useful for me without the line number. I don't want to have to parse it from the message.

Is this the right way of doing it?

With PR:
```
[
    {
        "file": "",
        "line": 13,
        "valid": false,
        "message": "Unable to parse at line 13 (near \"sdf \")."
    }
]
```

Before:
```
[
    {
        "file": "",
        "valid": false,
        "message": "Unable to parse at line 13 (near \"sdf \")."
    }
]
```

Commits
-------

c6d19b1976 [Yaml][Twig][Lint] Added line numbers to JSON output.
2017-06-30 11:07:28 +02:00
Maxime Steinhausser
2de59a7381 [Validator] Throw exception on Comparison constraints null options 2017-06-30 08:56:32 +02:00
Robin Chalas
8014b38055 [Security] Fix Firewall ExceptionListener priority 2017-06-28 17:08:40 +02:00
Pedro Magalhães
65d89ec224 Identify tty tests in Component/Process 2017-06-27 18:14:10 +02:00
Tobias Nyholm
c5042f35e1 [Workflow] Added more events to the announce function 2017-06-26 14:40:44 +02:00
Maxime Steinhausser
e9e1534cde [Validator] Remove property path suggestion for using the Expression validator 2017-06-25 18:46:33 +02:00
Christian Flothmann
976b93a040 [Yaml] deprecate the !str tag
The tag specified in the YAML spec is actually !!str.
2017-06-25 08:10:51 +02:00
Fabien Potencier
e891d551b1 Merge branch '3.3' into 3.4
* 3.3:
  fixed tests
  swiftmailer bridge is gone
  respect the API in FirewallContext map
  [TwigBundle] add back exception check
  Dont call count on non countable object
  Fix undefined variable $filesystem
2017-06-24 09:45:46 -07:00
Fabien Potencier
7093fc1f24 Merge branch '3.2' into 3.3
* 3.2:
  fixed tests
  swiftmailer bridge is gone
  [TwigBundle] add back exception check
  Dont call count on non countable object
  Fix undefined variable $filesystem
2017-06-24 09:45:30 -07:00
Fabien Potencier
59094b406a Merge branch '2.8' into 3.2
* 2.8:
  fixed tests
  [TwigBundle] add back exception check
  Dont call count on non countable object
  Fix undefined variable $filesystem
2017-06-24 09:45:17 -07:00
Fabien Potencier
bddf9be8ce Merge branch '2.7' into 2.8
* 2.7:
  [TwigBundle] add back exception check
  Dont call count on non countable object
2017-06-24 09:44:49 -07:00
Jose Gonzalez
7cda099663 [Stopwatch] Add a reset method 2017-06-24 13:12:40 +01:00
Christian Flothmann
411d9fa7a1 Merge branch '3.3' into 3.4
* 3.3: (64 commits)
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  Add Doctrine Cache to dev dependencies to fix failing unit tests.
  return fallback locales whenever possible
  Fix Predis client cluster with pipeline
  [Dotenv] Test load() with multiple paths
  [Console] Fix catching exception type in QuestionHelper
  Improved the exception page when there is no message
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Validator] replace hardcoded service id
  [Routing] Fix XmlFileLoader exception message
  [DI] Dedup tags when using instanceof/autoconfigure
  [Translation] Fix FileLoader::loadResource() php doc
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  fixed CS
  [WebProfilerBundle] Fix the icon for the Cache panel
  [WebServerBundle] Fix router script path and check existence
  ...
2017-06-24 11:47:31 +02:00
Christian Flothmann
22723dafd4 Merge branch '3.2' into 3.3
* 3.2: (42 commits)
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  Add Doctrine Cache to dev dependencies to fix failing unit tests.
  return fallback locales whenever possible
  [Console] Fix catching exception type in QuestionHelper
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Routing] Fix XmlFileLoader exception message
  [Translation] Fix FileLoader::loadResource() php doc
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  Reset redirectCount when throwing exception
  [TwigBundle] Remove template.xml services when templating is disabled
  add content-type header on exception response
  Embedding a response that combines expiration and validation, that should not defeat expiration on the combined response
  fixed bad merge
  Fix two edge cases in ResponseCacheStrategy
  [Routing] Expose request in route conditions, if needed and possible
  [Routing] Expose request in route conditions, if needed and possible
  ...
2017-06-24 11:29:48 +02:00
Pierre du Plessis
635bccdf8f Dont call count on non countable object 2017-06-23 12:52:30 +02:00
Christian Flothmann
80b114e66b Merge branch '2.8' into 3.2
* 2.8: (40 commits)
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  return fallback locales whenever possible
  [Console] Fix catching exception type in QuestionHelper
  [WebProfilerBundle] Eliminate line wrap on count columnt (routing)
  [Routing] Fix XmlFileLoader exception message
  [Translation] Fix FileLoader::loadResource() php doc
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  Reset redirectCount when throwing exception
  [TwigBundle] Remove template.xml services when templating is disabled
  add content-type header on exception response
  Embedding a response that combines expiration and validation, that should not defeat expiration on the combined response
  Fix two edge cases in ResponseCacheStrategy
  [Routing] Expose request in route conditions, if needed and possible
  [Routing] Expose request in route conditions, if needed and possible
  [Translation][FrameworkBundle] Fix resource loading order inconsistency reported in #23034
  [Filesystem] added workaround in Filesystem::rename for PHP bug
  ...
2017-06-23 08:35:45 +02:00
Christian Flothmann
b4aa0271cb Merge branch '2.7' into 2.8
* 2.7:
  Show exception is checked twice in ExceptionController of twig
  allow SSI fragments configuration in XML files
  Display a better error message when the toolbar cannot be displayed
  render hidden _method field in form_rest()
  return fallback locales whenever possible
2017-06-23 07:57:41 +02:00
Thierry Thuon
83727c7e3d [FrameworkBundle][HttpKernel] Move addcachearmer, addcacheclearer compiler pass 2017-06-22 13:11:19 +02:00
Fabien Potencier
2c438c5a25 feature #23026 [SecurityBundle] Add user impersonation info and exit action to the profiler (yceruto)
This PR was squashed before being merged into the 3.4 branch (closes #23026).

Discussion
----------

[SecurityBundle] Add user impersonation info and exit action to the profiler

| 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/23094
| License       | MIT

Toolbar item result:

![toolbar](https://cloud.githubusercontent.com/assets/2028198/26724555/1b60320a-4768-11e7-8433-da935f7068e9.png)

I'm no sure if more information should be displayed from source token, wdyt?

Security profile panel result:

![security_token_profile_panel](https://cloud.githubusercontent.com/assets/2028198/26705860/f7a64054-4706-11e7-9eef-6cd6b7365738.png)

Commits
-------

a3253f6db6 [SecurityBundle] Add user impersonation info and exit action to the profiler
2017-06-21 12:59:47 -07:00
Yonel Ceruto
a3253f6db6 [SecurityBundle] Add user impersonation info and exit action to the profiler 2017-06-21 12:59:45 -07:00
Christian Flothmann
0ee3f57533 render hidden _method field in form_rest() 2017-06-21 18:08:25 +02:00
Fabien Potencier
7bb72b06fd bug #23237 [Cache] Fix Predis client cluster with pipeline (flolivaud)
This PR was merged into the 3.3 branch.

Discussion
----------

[Cache] Fix Predis client cluster with pipeline

| Q             | A
| ------------- | ---
| Branch?       | 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

Commits
-------

a85d5b01f7 Fix Predis client cluster with pipeline
2017-06-21 07:12:54 -07:00
Fabien Potencier
b0bc9fea85 bug #23240 [Console] Fix catching exception type in QuestionHelper (voronkovich)
This PR was merged into the 2.8 branch.

Discussion
----------

[Console] Fix catching exception type in QuestionHelper

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

When generic exceptions were replaced by domain exceptions in dd17dc00ee one catch statement was missed. The existing code works fine because a `RuntimeException` extends a `\RuntimeException`.

Commits
-------

1c091eb703 [Console] Fix catching exception type in QuestionHelper
2017-06-21 07:10:56 -07:00
Fabien Potencier
16fbe3aac4 feature #22932 [HttpFoundation] Adds support for the immutable directive in the cache-control header (twoleds)
This PR was merged into the 3.4 branch.

Discussion
----------

[HttpFoundation] Adds support for the immutable directive in the cache-control header

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

Added support for the immutable directive in the cache-control header, tries to resolve #21425.

Commits
-------

33573c6eb1 Added support for the immutable directive in the cache-control header
2017-06-21 06:57:30 -07:00
Thierry Thuon
74c951fa04 [FrameworkBundle][Translation] Move translation compiler pass 2017-06-21 13:24:12 +02:00
Christian Flothmann
3c21650d9e return fallback locales whenever possible 2017-06-21 13:03:18 +02:00
Florent Olivaud
a85d5b01f7 Fix Predis client cluster with pipeline 2017-06-21 11:32:59 +02:00
Robin Chalas
dabecdee99 [Dotenv] Test load() with multiple paths 2017-06-21 09:43:27 +02:00
Fabien Potencier
be6af2e944 Merge branch '2.7' into 2.8
* 2.7:
  [Routing] Fix XmlFileLoader exception message
  Sessions: configurable "use_strict_mode" option for NativeSessionStorage
  [FrameworkBundle] [Command] Clean bundle directory, fixes #23177
  Reset redirectCount when throwing exception
  [TwigBundle] Remove template.xml services when templating is disabled
  add content-type header on exception response
  Embedding a response that combines expiration and validation, that should not defeat expiration on the combined response
  Fix two edge cases in ResponseCacheStrategy
  [Routing] Expose request in route conditions, if needed and possible
  [Routing] Expose request in route conditions, if needed and possible
  [Translation][FrameworkBundle] Fix resource loading order inconsistency reported in #23034
  [Filesystem] added workaround in Filesystem::rename for PHP bug
  Add tests for ResponseCacheStrategy to document some more edge cases
  [HttpFoundation] added missing docs
  fixes #21606
  [VarDumper] fixes
  [Security] fix switch user _exit without having current token
2017-06-20 16:27:56 -07:00
Oleg Voronkovich
1c091eb703 [Console] Fix catching exception type in QuestionHelper 2017-06-20 23:21:43 +03:00
Fabien Potencier
035d5260b9 bug #23218 [DI] Dedup tags when using instanceof/autoconfigure (ogizanagi)
This PR was merged into the 3.3 branch.

Discussion
----------

[DI] Dedup tags when using instanceof/autoconfigure

| 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, failures unrelated (8dc00bbe8d)
| Fixed tickets | N/A <!-- #-prefixed issue number(s), if any -->
| License       | MIT
| Doc PR        | N/A

This fixes uselessly duplicated tags shown when using the `debug:container` command, or in the dumped container in xml format:
<img width="554" alt="screenshot 2017-06-17 a 20 41 27" src="https://user-images.githubusercontent.com/2211145/27255375-de79fc4e-539d-11e7-98d9-c10074ddcffb.PNG">
<img width="494" alt="screenshot 2017-06-17 a 20 41 54" src="https://user-images.githubusercontent.com/2211145/27255376-de7ff5b8-539d-11e7-97ae-ccd31b1d5254.PNG">
<img width="1371" alt="screenshot 2017-06-17 a 20 42 33" src="https://user-images.githubusercontent.com/2211145/27255377-de869ba2-539d-11e7-8cd7-6005f8a499d6.PNG">

(duplicates here are explained by the twig namespaced and unnamespaced versions, and the controllers being tagged explicitly in https://github.com/symfony/symfony-demo/blob/master/app/config/services.yml#L25, while also being tagged by autoconfiguration ([which is expected](https://github.com/symfony/symfony-docs/pull/7921#discussion_r117585827)))

Commits
-------

9f877efb39 [DI] Dedup tags when using instanceof/autoconfigure
2017-06-20 07:01:46 -07:00
Fabien Potencier
6e75cee83e bug #22732 [Security] fix switch user _exit without having current token (dmaicher)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security] fix switch user _exit without having current token

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

Attempting to `_exit` from a switched user caused an error when not having any token in the storage (for example happens when not logged in + disallowing anonymous users on that firewall):

`[1] Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Argument 1 passed to Symfony\Component\Security\Http\Firewall\SwitchUserListener::getOriginalToken()
        must be an instance of Symfony\Component\Security\Core\Authentication\Token\TokenInterface, null given, called in
        symfony/symfony/src/Symfony/Component/Security/Http/Firewall/SwitchUserListener.php on line 164`

Commits
-------

16da6861be [Security] fix switch user _exit without having current token
2017-06-19 11:57:05 -07:00
Maxime Steinhausser
ac5e884f36 [Profiler][Validator] Add a validator panel in profiler 2017-06-19 17:21:01 +02:00
Christian Flothmann
44ff4b1a49 [Validator] replace hardcoded service id 2017-06-19 16:33:26 +02:00
Fabien Potencier
71b61b04a1 minor #23222 [Routing] Fix XmlFileLoader exception message (voronkovich)
This PR was merged into the 2.7 branch.

Discussion
----------

[Routing] Fix XmlFileLoader exception message

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

When an `XmlFileLoader` encounters an unknown tag it throws an exception with message like `Unknown tag "foo" used in file "bar". Expected "default", "requirement" or "option".`. A proper message should be `Unknown tag "foo" used in file "bar". Expected "default", "requirement", "option"  or "condition".`

Commits
-------

f6a94cb56f [Routing] Fix XmlFileLoader exception message
2017-06-19 07:02:36 -07:00
Oleg Voronkovich
f6a94cb56f [Routing] Fix XmlFileLoader exception message 2017-06-18 21:08:05 +03:00
Maxime Steinhausser
9f877efb39 [DI] Dedup tags when using instanceof/autoconfigure 2017-06-17 21:02:43 +02:00
Maxime Steinhausser
e76ee7a542 [Translation] Fix FileLoader::loadResource() php doc 2017-06-17 21:00:18 +02:00
Maxime Steinhausser
74db2e61bc [Serializer] Fix workaround min php version 2017-06-17 20:11:33 +02:00
Jaroslav Kuba
33573c6eb1 Added support for the immutable directive in the cache-control header 2017-06-17 09:49:15 +02:00
Fabien Potencier
0478ecd472 feature #22124 Shift responsibility for keeping Date header to ResponseHeaderBag (mpdude)
This PR was squashed before being merged into the 3.4 branch (closes #22124).

Discussion
----------

Shift responsibility for keeping Date header to ResponseHeaderBag

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

This is an improvement over #22036. It shifts responsibility for preserving a `Date` header to the `ResponseHeaderBag`.

We already have similar logic there for the `Cache-Control` header.

Commits
-------

5d838360f3 Shift responsibility for keeping Date header to ResponseHeaderBag
2017-06-16 14:36:06 -07:00
Matthias Pigulla
5d838360f3 Shift responsibility for keeping Date header to ResponseHeaderBag 2017-06-16 14:35:59 -07:00
RJ Garcia
8f6e67d319 XML Encoder Optional Type Cast
- This provides the ability to forgo the attribute type casting
- Updated the CHANGELOG

Signed-off-by: RJ Garcia <rj@bighead.net>
2017-06-16 11:28:02 -07:00
Iltar van der Berg
9e047122f1 Fixed composer resources between web/cli 2017-06-16 14:40:34 +02:00
Maxime Steinhausser
2940bb0d2c [FrameworkBundle] Allow .yaml file extension everywhere 2017-06-16 12:53:40 +02:00
Fabien Potencier
1f6330a9b9 feature #23076 [Validator] Adds support to check specific DNS record type for URL (iisisrael)
This PR was merged into the 3.4 branch.

Discussion
----------

[Validator] Adds support to check specific DNS record type for URL

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

URL validation with the `checkDNS` option can time out for some international registrars or for reasons unknown.  When the `URL` constraint is implemented, the context may logically allow for a single DNS record type to be checked, which is less prone to timing out.  This updates the `checkDNS` option value to be one of any valid for the underlying `checkdnsrr()` method with backwards compatibility for the original boolean value.

Commits
-------

e66d8f1bef [Validator] Adds support to check specific DNS record type for URL
2017-06-15 07:35:35 -07:00
Fabien Potencier
bc4dd8f16b feature #22629 [Security] Trigger a deprecation when a voter is missing the VoterInterface (iltar)
This PR was squashed before being merged into the 3.4 branch (closes #22629).

Discussion
----------

[Security] Trigger a deprecation when a voter is missing the VoterInterface

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

Right now it's possible to add voters to the access decision manager that do not have a `VoterInterface`.
 - No Interface, no `vote()` method, and it will give a PHP error.
 - No Interface, but `vote()` method, it will still work.
 - If I don't implement the interface _and_ have no `vote()` method, I will get weird exception that's not meaningful: `Attempted to call an undefined method named "vote" of class "App\Voter\MyVoter".`

This PR will deprecate the ability to use voters without the interface, it will also throw a proper exception when missing the interface _and_ the `vote()` method. Why when using and not when setting? Due to the fact that the voters can be set lazily via the `IteratorArgument`. The SecurityBundle will trigger a deprecation if the interface is not implemented and an exception if there's not even a `vote()` method present (to prevent exceptions at run-time).

This should have full backwards compatibility with 3.3, but give more meaningful errors. The only behavioral difference, might be that the container will throw an exception instead of maybe succeeding in voting when 1 voter would be broken at the end of the list (based on strategy). This case however, will be detected during development and deployment, rather than run-time.

Commits
-------

9c253e1ff6 [Security] Trigger a deprecation when a voter is missing the VoterInterface
2017-06-15 07:23:21 -07:00
Iltar van der Berg
9c253e1ff6 [Security] Trigger a deprecation when a voter is missing the VoterInterface 2017-06-15 07:21:44 -07:00
Henne Van Och
83fd578f96 Reset redirectCount when throwing exception 2017-06-15 15:33:54 +02:00
meyerbaptiste
f927ebadad [Yaml] Fix typo: PARSE_KEYS_AS_STRING -> PARSE_KEYS_AS_STRINGS 2017-06-15 14:58:50 +02:00
Israel J. Carberry
e66d8f1bef [Validator] Adds support to check specific DNS record type for URL 2017-06-15 00:40:00 -05:00
Matthias Pigulla
09bcbc70e7 Embedding a response that combines expiration and validation, that should not defeat expiration on the combined response 2017-06-14 23:57:46 +02:00
Fabien Potencier
8dc00bbe8d fixed bad merge 2017-06-14 14:54:47 -07:00
Fabien Potencier
551e5ba515 bug #23129 Fix two edge cases in ResponseCacheStrategy (mpdude)
This PR was squashed before being merged into the 2.7 branch (closes #23129).

Discussion
----------

Fix two edge cases in ResponseCacheStrategy

| 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 reviewing how `ResponseCacheStrategy` calculates the caching-related headers for responses that embed subrequests, I came across two cases that I think are currently implemented incorrectly.

a) When the main response is public and cacheable with an expiration time, but it embeds (via ESI) a controller that does not set any caching-related headers, this embedded response is more constrained. So, the resulting (combined) response must not be cacheable, especially it may not keep the s-maxage.

b) When the main response is public and cacheable with an expiration time, but it embeds (via ESI) a controller that explicitly creates a "private" response, the resulting (combined) response must be private as well.

Commits
-------

c6e8c07e4d Fix two edge cases in ResponseCacheStrategy
2017-06-14 14:29:16 -07:00
Matthias Pigulla
c6e8c07e4d Fix two edge cases in ResponseCacheStrategy 2017-06-14 14:29:14 -07:00
Fabien Potencier
f392282984 bug #22636 [Routing] Expose request in route conditions, if needed and possible (ro0NL)
This PR was squashed before being merged into the 2.7 branch (closes #22636).

Discussion
----------

[Routing] Expose request in route conditions, if needed and possible

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

given

```
/**
 * @Route("/", name="homepage", condition="request.isXmlHttpRequest()")
 */
```

```
$ app/console route:match /
```

before

![image](https://cloud.githubusercontent.com/assets/1047696/25716808/b9ab518e-3100-11e7-8b59-21351b5c14ca.png)

after

![image](https://cloud.githubusercontent.com/assets/1047696/25716833/d08065fc-3100-11e7-9462-987b2c6eaa26.png)

Commits
-------

016e976691 [Routing] Expose request in route conditions, if needed and possible
2017-06-14 13:57:27 -07:00
Roland Franssen
016e976691 [Routing] Expose request in route conditions, if needed and possible 2017-06-14 13:57:25 -07:00
Fabien Potencier
e992eae067 feature #22909 [Yaml] Deprecate using the non-specific tag (GuilhemN)
This PR was merged into the 3.4 branch.

Discussion
----------

[Yaml] Deprecate using the non-specific tag

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

Values tagged with the non-specific tag must not be transformed in an integer, this tag means that they must not be evaluated (see [the spec](http://www.yaml.org/spec/1.2/spec.html#tag/non-specific/)).

I applied this change in https://github.com/symfony/symfony/pull/22762 to comply with the spec.

Commits
-------

60f5046661 [Yaml] Deprecate using the non-specific tag
2017-06-14 13:38:21 -07:00
Fabien Potencier
7b827ce823 Merge branch '3.2' into 3.3
* 3.2:
  [SecurityBundle] Move cache of the firewall context into the request parameters
  Fix Usage with anonymous classes
  [Workflow] Added more keywords in the composer.json
  [Cache] APCu isSupported() should return true when apc.enable_cli=Off
  [PropertyAccess] Do not silence TypeErrors from client code.
2017-06-14 13:33:09 -07:00
Fabien Potencier
4667262074 bug #23088 [FrameworkBundle] Dont set pre-defined esi/ssi services (ro0NL)
This PR was squashed before being merged into the 3.3 branch (closes #23088).

Discussion
----------

[FrameworkBundle] Dont set pre-defined esi/ssi services

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

It fixes the issue, but im not sure what's expected if you dont use http cache (solely enabled ssi/esi in config). Before the services were initialized, now they are synthetic as http cache sets them, but thats optional =/

Commits
-------

8c26aab0fe [FrameworkBundle] Dont set pre-defined esi/ssi services
2017-06-14 13:16:34 -07:00
Roland Franssen
8c26aab0fe [FrameworkBundle] Dont set pre-defined esi/ssi services 2017-06-14 13:16:32 -07:00
Fabien Potencier
53a911194d minor #23185 [HttpFoundation] Add missing docs (fabpot)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] Add missing docs

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

Commits
-------

c6b9101e06 [HttpFoundation] added missing docs
2017-06-14 13:11:47 -07:00
Fabien Potencier
bf094efa9c feature #23042 Consistent error handling in remember me services (lstrojny)
This PR was merged into the 3.4 branch.

Discussion
----------

Consistent error handling in remember me services

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

RememberMeServices lacked consistent error handling so far making it impossible for implementors to e.g. maintain sufficiently detailed audit logs for remember me errors. Since remember me is a very sensitive area in any application, detailed logging is crucial.

The change proposed allows `loginFail` to optionally take the exception object as a second parameter and uses said exception consistently internally by calling `loginFail` instead of `cancelCookie`.

Commits
-------

eda1888f71 Consistent error handling in remember me services
2017-06-14 13:00:10 -07:00
Fabien Potencier
d44f143c75 bug #23092 [Filesystem] added workaround in Filesystem::rename for PHP bug (VolCh)
This PR was squashed before being merged into the 2.7 branch (closes #23092).

Discussion
----------

[Filesystem] added workaround in Filesystem::rename for PHP bug

[Filesystem] added workaround in Filesystem::rename for https://bugs.php.net/bug.php?id=54097

Standard PHP rename() of dirs across devices/mounted filesystems  produces confusing copy error & throws IOException in Filesystem::rename. I got it during console cache:clear  in the Docker environment. This PR possible fixes https://github.com/symfony/symfony/issues/19851 and other environment related issues.

Workaround is on \rename() fails try to Filesystem::mirror & Filesystem::remove if $origin is directory

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

3ccbc479da [Filesystem] added workaround in Filesystem::rename for PHP bug
2017-06-14 12:55:44 -07:00
VolCh
3ccbc479da [Filesystem] added workaround in Filesystem::rename for PHP bug 2017-06-14 12:55:43 -07:00
Fabien Potencier
f0abe11a42 minor #23123 Add tests for ResponseCacheStrategy to document some more edge cases (mpdude)
This PR was squashed before being merged into the 2.7 branch (closes #23123).

Discussion
----------

Add tests for ResponseCacheStrategy to document some more edge cases

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

Adds some test cases for possible combinations of master/subrequest responses to better document behaviour in edge cases. Should now cover the entire `ResponseCacheStrategy`.

I hope 2.7 is the right target branch because having more tests for all releases should be a good thing™️.

Commits
-------

69e84633dd Add tests for ResponseCacheStrategy to document some more edge cases
2017-06-14 12:53:11 -07:00
Matthias Pigulla
69e84633dd Add tests for ResponseCacheStrategy to document some more edge cases 2017-06-14 12:53:08 -07:00
Fabien Potencier
57bed81101 bug #23074 [HttpFoundation] add back support for legacy constant values (xabbuh)
This PR was merged into the 3.3 branch.

Discussion
----------

[HttpFoundation] add back support for legacy constant values

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

Due to the data type change of the `Request::HEADER_` constants in Symfony 3.3 #23067 introduced a small BC break if someone used the old constant values statically instead of referring to the constants themselves.

Commits
-------

fddd754c0a add back support for legacy constant values
2017-06-14 12:40:00 -07:00
Fabien Potencier
c6b9101e06 [HttpFoundation] added missing docs 2017-06-14 12:35:44 -07:00
Fabien Potencier
4cff0522d7 bug #23128 [HttpFoundation] fix for Support for new 7.1 session options (vincentaubert)
This PR was merged into the 2.7 branch.

Discussion
----------

[HttpFoundation] fix for Support for new 7.1 session options

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

Commits
-------

71c1b6f5bf fixes #21606
2017-06-14 12:27:50 -07:00
Fabien Potencier
1ed41b549d feature #22444 [Serializer] DateTimeNormalizer: allow to provide timezone (ogizanagi)
This PR was merged into the 3.4 branch.

Discussion
----------

[Serializer] DateTimeNormalizer: allow to provide timezone

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

My own use-case was for denormalization of a csv file provided by a third-party. The datetime format inside does not contain any timezone information, and won't change, but it's established to be UTC (or at least consistent).

So by providing the new `datetime_timezone` option, the returned instance of `\DateTime(Interface)` will properly be set with the expected timezone. (In case the format already supports the time offset, the provided timezone is ignored in favor of the one parsed by the `\DateTime` object)

Regarding normalization, the expected behavior of this feature is to consistently return the same time offset.

Commits
-------

c10a780afb [Serializer] DateTimeNormalizer: allow to provide timezone
2017-06-14 12:25:49 -07:00
Fabien Potencier
a03e19424b feature #23143 [DI] Reference instead of inline for array-params (nicolas-grekas)
This PR was merged into the 3.4 branch.

Discussion
----------

[DI] Reference instead of inline for array-params

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

- [x] Tests to be written.

This PR is part of my "container on a diet" quest.

When big array parameters are resolved, they create data duplication in the dumped container. This is even worse when the same big array parameters are used several times.
Even though OPcache stores static arrays in shared memory (php7), it does not deduplicate them (it does for strings.)

Instead of inlining arrays, this PR leverages the `$this->parameters` property when possible.

Commits
-------

7c3d0c7a46 [DI] Reference instead of inline for array-params
2017-06-14 12:08:03 -07:00
Fabien Potencier
dce267171a bug #23100 [PropertyAccess] Do not silence TypeErrors from client code. (tsufeki)
This PR was merged into the 3.2 branch.

Discussion
----------

[PropertyAccess] Do not silence TypeErrors from client code.

| Q             | A
| ------------- | ---
| Branch?       | 3.2
| 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        |

Fixes TypeError silencing in `setValue()` when said error is thrown inside setter/adder/etc.

An example is given in the included test, but more real-life story is botched accessors for a many-to-one association on a Doctrine entity:

```php
class B {
  function setA(A $a) { ... } // forgotten "= null" here
}

class A {
  function removeB(B $b) {
    if ($this->bs->contains($b)) {
      $this->bs->removeElement($b);
      $b->setA(null); // TypeError thrown
    }
    return $this;
  }
}
```

No error is shown to the user, even though removing doesn't work.

This bug is not present in 2.7 & 2.8.

Commits
-------

45b961de2e [PropertyAccess] Do not silence TypeErrors from client code.
2017-06-14 12:02:32 -07:00
Fabien Potencier
aa94dd6cda bug #23156 [PropertyAccess] Fix Usage with anonymous classes (mablae)
This PR was merged into the 3.2 branch.

Discussion
----------

[PropertyAccess] Fix Usage with anonymous classes

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

Replace forbidden characters in the the class names of Anonymous Classes in form of
"class@anonymous /symfony/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php0x7f3f5f267ad5"

Wrapped in eval to avoid PHP parsing errors < 7 and using `rawurlenceode` for perf reasons

Thanks @nicolas-grekas for the help and patience. Let me know if anything is missing.

Commits
-------

3f7fd432df Fix Usage with anonymous classes
2017-06-14 11:48:56 -07:00
Fabien Potencier
3278915a29 bug #23168 [Config] Fix ** GlobResource on Windows (nicolas-grekas)
This PR was merged into the 3.3 branch.

Discussion
----------

[Config] Fix ** GlobResource on Windows

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

We cannot tell Finder to use RecursiveDirectoryIterator::UNIX_PATHS so we have to fix paths on Windows.

Commits
-------

44955bea53 [Config] Fix ** GlobResource on Windows
2017-06-14 11:48:03 -07:00
Vincent AUBERT
71c1b6f5bf fixes #21606 2017-06-14 19:36:27 +02:00
Nicolas Grekas
d7238c9d96 [VarDumper] fixes 2017-06-14 18:20:11 +02:00
Nicolas Grekas
c8cf42bcbb Merge branch '3.3' into 3.4
* 3.3:
  [TwigBundle] Add Doctrine Cache to dev dependencies
  [Yaml] Fix linting yaml with constants as keys
  [Routing] Revert the change in [#b42018] with respect to Routing/Route.php
2017-06-14 09:34:46 +02:00
Nicolas Grekas
44955bea53 [Config] Fix ** GlobResource on Windows 2017-06-14 09:11:58 +02:00
Fabien Potencier
5bc4ef0224 Merge branch '2.7' into 2.8
* 2.7:
  fixed CS
  SCA with Php Inspections (EA Extended): 2.7
  Remove deprecated each function
  Fixed PHPdoc return references in FormBuilderInterface
  [FrameworkBundle] Fix perf issue in CacheClearCommand::warmup()
2017-06-13 17:55:24 -07:00
Fabien Potencier
78f028cc75 fixed CS 2017-06-13 17:54:13 -07:00
Robin Chalas
55a8d35e64 [Yaml] Fix linting yaml with constants as keys 2017-06-13 23:05:27 +02:00
Dan Wilga
f09893bed4 [Routing] Revert the change in [#b42018] with respect to Routing/Route.php 2017-06-13 10:11:59 -07:00
Nicolas Grekas
7c3d0c7a46 [DI] Reference instead of inline for array-params 2017-06-13 13:14:06 +02:00
Malte Blättermann
3f7fd432df Fix Usage with anonymous classes
Replace forbidden characters in the the class names of Anonymous Classes in form of
"class@anonymous /symfony/src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php0x7f3f5f267ad5"

Wrapped in eval to avoid PHP parsing errors < 7
2017-06-13 10:47:59 +02:00
Robin Chalas
369f19fcfd Give info about called security listeners in profiler 2017-06-13 10:30:58 +02:00
Christian Flothmann
fddd754c0a add back support for legacy constant values 2017-06-13 09:43:03 +02:00
Fabien Potencier
f1e2fbd486 minor #23101 [FormBuilderInterface] Fixed PHPdoc return references (Javan Eskander)
This PR was merged into the 2.7 branch.

Discussion
----------

[FormBuilderInterface] Fixed PHPdoc return references

| Q             | A
| ------------- | ---
| Branch?       | 2.7 and higher
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | N/A (phpdoc)
| License       | MIT

In a case where the method `createFormBuilder()` was used where the methods `add()` and `getForm()` were chained onto it, the final resulting object was no longer a FormBuilder object as the `add()` and `remove()` methods was using a return variable that didn't work.
Should reference `self` as interfaces do not have a `$this` object.

Commits
-------

2f350d1d38 Fixed PHPdoc return references in FormBuilderInterface
2017-06-12 11:43:34 -07:00
Nicolas Grekas
8bbfc96802 Merge branch '3.3' into 3.4
* 3.3:
  Fix the conditional definition of the SymfonyTestsListener
  [DI] Fix keys resolution in ResolveParameterPlaceHoldersPass
  [EventDispatcher] Remove dead code in WrappedListener
  Fix non-dumped voters in security panel
  [Yaml] Remove line number in deprecation notices
  [SecurityBundle] Made 2 service aliases private
2017-06-12 18:03:21 +02:00
Grégoire Pineau
79bc4b017d [Workflow] Added more keywords in the composer.json 2017-06-12 13:49:55 +02:00
Nicolas Grekas
9251a2143d [DI] Fix keys resolution in ResolveParameterPlaceHoldersPass 2017-06-12 12:11:53 +02: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
Christian Flothmann
c9c3495fc0 remove now useless condition 2017-06-10 13:08:03 +01: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
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
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
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
Guilhem Niot
c2f796fa15 Automatically enable the routing annotation loader 2017-06-07 12:20: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
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
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
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
Adam Szaraniec
37afeeae7a Support for parsing PHP constants in yaml loader 2017-06-04 00:41:12 +04: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
ff6151b15f [Profiler] Fix text selection on exception pages 2017-05-30 18:34:49 +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
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
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
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
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