Commit Graph

14877 Commits

Author SHA1 Message Date
Fabien Potencier
2877f4b9ec Merge branch '2.8' into 3.0
* 2.8:
  add @Event annotation for AuthenticationEvents
  bumped Symfony version to 2.8.6
  [PropertyInfo] PHPDoc correction
  add @Event annotation for KernelEvents
  updated VERSION for 2.8.5
  updated CHANGELOG for 2.8.5
  bumped Symfony version to 2.7.13
  updated VERSION for 2.7.12
  update CONTRIBUTORS for 2.7.12
  updated CHANGELOG for 2.7.12
  bumped Symfony version to 2.3.41
  updated VERSION for 2.3.40
  update CONTRIBUTORS for 2.3.40
  updated CHANGELOG for 2.3.40
  Revert "minor #18257 [Routing] Don't needlessly execute strtr's as they are fairly expensive (arjenm)"
  Revert "fixed CS"
  fixed deprecation notices in tests
  [Security] Normalize "symfony/security-acl" dependency versions across all composer.json files
  [FrameworkBundle] Remove misleading comment
  bug #17460 [DI] fix ambiguous services schema
2016-05-03 14:23:49 +02:00
Fabien Potencier
a5e6172e12 Merge branch '2.7' into 2.8
* 2.7:
  add @Event annotation for AuthenticationEvents
  add @Event annotation for KernelEvents
  bumped Symfony version to 2.7.13
  updated VERSION for 2.7.12
  update CONTRIBUTORS for 2.7.12
  updated CHANGELOG for 2.7.12
  bumped Symfony version to 2.3.41
  updated VERSION for 2.3.40
  update CONTRIBUTORS for 2.3.40
  updated CHANGELOG for 2.3.40
  Revert "minor #18257 [Routing] Don't needlessly execute strtr's as they are fairly expensive (arjenm)"
  Revert "fixed CS"
  [FrameworkBundle] Remove misleading comment
  bug #17460 [DI] fix ambiguous services schema
2016-05-03 14:21:46 +02:00
Fabien Potencier
591fc3a491 Merge branch '2.3' into 2.7
* 2.3:
  add @Event annotation for AuthenticationEvents
  bumped Symfony version to 2.3.41
  updated VERSION for 2.3.40
  update CONTRIBUTORS for 2.3.40
  updated CHANGELOG for 2.3.40
  bug #17460 [DI] fix ambiguous services schema
2016-05-03 14:21:10 +02:00
Fabien Potencier
6bc7c87147 minor #18696 [PropertyInfo] PHPDoc correction (dunglas)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo] PHPDoc correction

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

3b78492 [PropertyInfo] PHPDoc correction
2016-05-03 14:19:54 +02:00
Daniel Espendiller
af4ca4f48b add @Event annotation for AuthenticationEvents 2016-05-03 14:17:15 +02:00
Fabien Potencier
06dd96e5d2 bug #18693 add @Event annotation for AuthenticationEvents (Haehnchen)
This PR was merged into the 3.1-dev branch.

Discussion
----------

add @Event annotation for AuthenticationEvents

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

split of #18684 for targeting 2.3 branch

Commits
-------

e2c1270 add @Event annotation for AuthenticationEvents
2016-05-03 14:15:42 +02:00
Martin Hasoň
d1ad43c174 [DependencyInjection] Fixed the priority of service decoration on service with parent 2016-05-03 11:49:32 +02:00
Fabien Potencier
42279b5d00 bumped Symfony version to 3.0.6 2016-05-03 08:45:46 +02:00
Fabien Potencier
58b48a8337 updated VERSION for 3.0.5 2016-05-03 07:58:27 +02:00
Fabien Potencier
7b3c65bf67 bumped Symfony version to 2.8.6 2016-05-03 07:55:22 +02:00
Kévin Dunglas
3b78492136 [PropertyInfo] PHPDoc correction 2016-05-02 22:41:39 +02:00
Daniel Espendiller
a52e51a7b8 add @Event annotation for KernelEvents 2016-05-02 19:24:41 +02:00
Daniel Espendiller
e2c127081a add @Event annotation for AuthenticationEvents 2016-05-02 19:21:33 +02:00
Nathanael Noblet
d751d596e7 Add request method to logger messages
While debugging some functional tests I was looking at the test.log. It would have been quite useful to know if the request was a POST or GET. This adds to the log details.
2016-05-02 09:46:27 -06:00
Mathieu Lemoine
2ac81f954b Make failed autowiring error messages more explicit 2016-05-02 11:29:33 -04:00
Nicolas Grekas
9a56498c8d [Cache] Cleanups 2016-05-02 14:16:25 +02:00
Fabien Potencier
8166094dc2 feature #18681 [Cache] Add DSN based Redis connection factory (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Add DSN based Redis connection factory

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

Required by #18667

Commits
-------

3073efb [Cache] Add DSN based Redis connection factory
2016-05-01 12:56:11 +02:00
Nicolas Grekas
3073efb6d1 [Cache] Add DSN based Redis connection factory 2016-05-01 11:31:04 +02:00
Fabien Potencier
352997e61e minor #18664 [Form] [DoctrineBridge] updated changelogs after #18359 (HeahDude)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Form] [DoctrineBridge] updated changelogs after #18359

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

follows #18359.

Commits
-------

1c8dc9d [Form] [DoctrineBridge] updated changelogs after #18359
2016-04-29 17:38:41 +02:00
Fabien Potencier
25d166b4d8 updated VERSION for 2.8.5 2016-04-29 17:33:46 +02:00
Fabien Potencier
fb92d7a04a bumped Symfony version to 2.7.13 2016-04-29 12:50:16 +02:00
Fabien Potencier
39890ed371 updated VERSION for 2.7.12 2016-04-29 11:47:36 +02:00
Fabien Potencier
ca80946379 bumped Symfony version to 2.3.41 2016-04-29 11:36:11 +02:00
Jules Pietri
1c8dc9d06b [Form] [DoctrineBridge] updated changelogs after #18359
follows #18359.
2016-04-29 11:10:43 +02:00
Fabien Potencier
2dc63b3914 updated VERSION for 2.3.40 2016-04-29 07:38:17 +02:00
Fabien Potencier
731d7a6bf0 Merge branch '3.0'
* 3.0:
  [Form] Fix tests added in #18180
2016-04-28 16:43:15 +02:00
Jules Pietri
c45a435805 [Form] Fix tests added in #18180 2016-04-28 16:42:50 +02:00
Fabien Potencier
1ab5be70ae feature #18656 Updating the error message of an AuthenticationEntryPointInterface (weaverryan)
This PR was merged into the 3.1-dev branch.

Discussion
----------

Updating the error message of an AuthenticationEntryPointInterface

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

During a training, we forgot to fill in the `start()` method for an entry point and got a *horrible* error message. Now, if you mess up `start()`, you get:

![screen shot 2016-04-27 at 12 49 50 pm](https://cloud.githubusercontent.com/assets/121003/14860378/92578e68-0c76-11e6-9fe5-45141fe2ce43.png)

Thanks!

Commits
-------

7b6c56c Updating the error message of an AuthenticationEntryPointInterface returns a non-Response object
2016-04-28 16:41:32 +02:00
Fabien Potencier
ae1baac0e6 bug #18659 [Cache] Dont use Redis connection when not required (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Dont use Redis connection when not required

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

Commits
-------

1165459 [Cache] Dont use Redis connection when not required
2016-04-28 13:15:08 +02:00
Fabien Potencier
745334e386 minor #18594 [Security] Normalize "symfony/security-acl" dependency versions across all composer.json files (siwinski)
This PR was merged into the 2.8 branch.

Discussion
----------

[Security] Normalize "symfony/security-acl" dependency versions across all composer.json files

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

There are some inconsistencies in the Symfony 2.8 `symfony/security-acl` dependency versions that would help downstream if we could just package `symfony/security-acl` 3.0.0 instead of having to package both versions 2.8.0 (for Symfony 2.8) and 3.0.0 (for Symfony 3.0).

```
$ git clone https://github.com/symfony/symfony.git
Cloning into 'symfony'...
cd remote: Counting objects: 319438, done.
nyReceiving objects:   4% (12778/319438), 2.06 MiB | 4.12 MiB/s
4Receiving objects:  41% (130970/319438), 40.80 MiB | 7.86 MiB/s
remote: Total 319438 (delta 0), reused 0 (delta 0), pack-reused 319437
Receiving objects: 100% (319438/319438), 68.46 MiB | 8.21 MiB/s, done.
Resolving deltas: 100% (204691/204691), done.
Checking connectivity... done.

$ cd symfony

$ git checkout v2.8.4
Previous HEAD position was 4e17cb2... Merge branch '2.8' into 3.0
HEAD is now at 9e14f9f... Merge branch '2.7' into 2.8

$ find . -name 'composer.json' | xargs grep 'symfony/security-acl'
./src/Symfony/Bundle/SecurityBundle/composer.json:        "symfony/security-acl": "~2.7|~3.0.0",
./src/Symfony/Bridge/Twig/composer.json:        "symfony/security-acl": "~2.6|~3.0.0",
./src/Symfony/Component/Security/composer.json:        "symfony/security-acl": "~2.7",
./composer.json:        "symfony/security-acl": "~2.7",
```

Commits
-------

e249bc3 [Security] Normalize "symfony/security-acl" dependency versions across all composer.json files
2016-04-28 13:08:06 +02:00
Fabien Potencier
321fd382bd minor #18575 Fixed a redundant check in DefaultValueResolver (iltar)
This PR was merged into the 3.1-dev branch.

Discussion
----------

Fixed a redundant check in DefaultValueResolver

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

In #18308 I have introduced a `DefaultValueResolver`. When writing documentation, I was planning on adding the code as an example and I noticed it did a check in the request attributes. A default value value should always be injected, whether the request has it or not. In case the request _does_ have the value, it would've already been added and thus never reach the default resolver.

Thus as this is never called in the default and configured flows and should not change the default value behavior, I'm removing this.

Commits
-------

e54c1a6 Fixed a redundant check in DefaultValueResolver
2016-04-28 13:04:44 +02:00
Fabien Potencier
90e577c608 feature #18492 [LDAP] Check whether an entry attribute exists (hiddewie)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[LDAP] Check whether an entry attribute exists

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

Currently a method exists for getting the value of an attribute. It would make the Entry class more complete to be able to simply test if an attribute exists in the entry.

Commits
-------

56ef8a0 [LDAP] Check whether an entry attribute exists
2016-04-28 12:54:29 +02:00
Fabien Potencier
616ebb758f Revert "minor #18257 [Routing] Don't needlessly execute strtr's as they are fairly expensive (arjenm)"
This reverts commit f03dc6eec5, reversing
changes made to 2f2ce3e637.
2016-04-28 12:50:58 +02:00
Fabien Potencier
e9dda1ee0a Revert "fixed CS"
This reverts commit ba1cd26237.
2016-04-28 12:50:52 +02:00
Fabien Potencier
fcf5e278d7 bug #18246 [DependencyInjection] fix ambiguous services schema (backbone87)
This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] fix ambiguous services schema

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

Commits
-------

9828f23 bug #17460 [DI] fix ambiguous services schema
2016-04-28 12:41:45 +02:00
Fabien Potencier
becdbd9ea8 fixed CS 2016-04-28 12:32:50 +02:00
Fabien Potencier
89b6bb84e5 bug #18618 [HttpKernel] tweaked redirection profiling in RequestDataCollector (HeahDude)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[HttpKernel] tweaked redirection profiling in RequestDataCollector

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

- c8ba3b2 removes duplicated code forgotten in #17589

- a47d2e8 fixes the collecting of redirect data in first sub request instead of redirected master request.

Commits
-------

df19c14 use a request attribute flag for redirection profile
b26cb6d [HttpKernel] added RequestDataCollector::onKernelResponse()
c8ba3b2 [HttpKernel] remove legacy duplicated code
2016-04-28 12:32:03 +02:00
Fabien Potencier
cc8c5b5181 bug #18566 [SecurityBundle] fixed DebugAccessDecisionManager config (HeahDude)
This PR was squashed before being merged into the 3.1-dev branch (closes #18566).

Discussion
----------

[SecurityBundle] fixed DebugAccessDecisionManager config

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

Commits
-------

53c78fe [SecurityBundle] fixed DebugAccessDecisionManager config
2016-04-28 12:25:11 +02:00
Jules Pietri
53c78fe93b [SecurityBundle] fixed DebugAccessDecisionManager config 2016-04-28 12:24:52 +02:00
Fabien Potencier
ee679bf18e added a missing @group legacy 2016-04-28 12:18:51 +02:00
Fabien Potencier
5a64e5869e fixed typos 2016-04-28 12:17:48 +02:00
Fabien Potencier
0c5b83ab95 feature #18359 [Form] [DoctrineBridge] optimized LazyChoiceList and DoctrineChoiceLoader (HeahDude)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Form] [DoctrineBridge] optimized LazyChoiceList and DoctrineChoiceLoader

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

Problem
======
Actually we got a circular dependency:

| Object | Return
|----------|-------------|
|`DefaultChoiceListFactory::createListFromLoader()` (decorated) | `LazyChoiceList` with loader and resolved `$value`
| `LazyChoiceList::get*` | `DoctrineChoiceLoader` with resolved `$value`
`DoctrineChoiceLoader::loadChoiceList()` | (decorated) `DefaultChoiceListFactory` with loaded choices and resolved `$value`
`DefaultChoiceListFactory::createListFromChoices()` | `ArrayChoiceList` with `resolved `$value`

With this refactoring, the `DoctrineChoiceLoader` is no longer dependant to the factory, the `ChoiceLoaderInterface::loadChoiceList()` must return a `ChoiceListInterface` but should not need a decorated factory while `$value` is already resolved. It should remain lazy IMHO.

Solution
======

| Object | Return |
|----------|-----------|
| `DefaultChoiceListFactory::createListFromLoader()` | `LazyChoiceList` with loader and resolved `$value`
| `LazyChoiceList::get*()` | `DoctrineChoiceLoader` with resolved `$value`
| `DoctrineChoiceLoader::loadChoiceList()` | `ArrayChoiceList` with resolved `$value`.

Since `choiceListFactory` is a private property, this change should be safe regarding BC.

To justify this change, I've made some blackfire profiling.
You can see my [branch of SE here](https://github.com/HeahDude/symfony-standard/tree/test/optimize-doctrine_choice_loader) and the [all in file test implementation](https://github.com/HeahDude/symfony-standard/blob/test/optimize-doctrine_choice_loader/src/AppBundle/Controller/DefaultController.php).

Basically it loads a form with 3 `EntityType` fields with different classes holding 50 instances each.

(INIT events are profiled with an empty cache)

When | What | Diff (SE => PR)
--------|-------|------
INIT (1) | build form (load types) | [see](https://blackfire.io/profiles/compare/061d5d28-15c6-4e01-b8c0-3edc9cb8daf0/graph)
INIT (2) | build view (load choices) | [see](https://blackfire.io/profiles/compare/04f142a8-d886-405a-be4d-636ba82d8acd/graph)
CACHED | build form (load types) | [see](https://blackfire.io/profiles/compare/293b27b6-aa58-42ae-bafb-655513201505/graph)
CACHED | build view (load choices) | [see](https://blackfire.io/profiles/compare/e5b37dfe-cc9e-498f-b98a-7448830ad190/graph)
SUBMIT | build form (load types) | [see](https://blackfire.io/profiles/compare/7f3baea9-0d27-46b6-8c24-c577742382dc/graph)
SUBMIT | handle request (load choices) | [see](https://blackfire.io/profiles/compare/8644ebfb-4397-495b-8f3d-1a6e1d7f8476/graph)
SUBMIT | build view (load values) | [see](https://blackfire.io/profiles/compare/89c3cc7c-ea07-4300-91b3-99004cb58ea1/graph)

(1):
![build_form-no_cache](https://cloud.githubusercontent.com/assets/10107633/14136166/b5a85eb8-f661-11e5-8556-3e0dcbfaf404.jpg)
(2):
![build_view-no_cache](https://cloud.githubusercontent.com/assets/10107633/14136240/1162f3ee-f662-11e5-834a-1ed1e519dc83.jpg)

It can seem like 1 and 2 balance each other but it comes clear when comparing values:

| -  | Build form | Build view |
|-----|---------|--------------|
| wall time | -88 ms | +9.71 ms
| blocking I/O | -40 ms | +3.67 ms
| cpu | -48 ms | +13.4 ms
| memory | -4.03 MB | +236 kB
| network | -203 B | +2.21 kB

Commits
-------

98621f4 [Form] optimized LazyChoiceList
86b2ff1 [DoctrineBridge] optimized DoctrineChoiceLoader
2016-04-28 12:16:40 +02:00
Fabien Potencier
50f2529acb feature #18357 [Form] Let TextType implement DataTransformerInterface (HeahDude)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Form] Let `TextType` implement `DataTransformerInterface`

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

Commits
-------

7e97fbb [Form] let `TextType` implements `DataTransformerInterface`
2016-04-28 12:07:03 +02:00
Fabien Potencier
996251ce13 fixed deprecation notices in tests 2016-04-28 11:59:09 +02:00
Fabien Potencier
461e8712bc Merge branch '3.0'
* 3.0:
  [Form] refactor CheckboxListMapper and RadioListMapper
  Revert "[Form] refactor `RadioListMapper::mapDataToForm()`"
2016-04-28 11:57:20 +02:00
Fabien Potencier
99be2fcfb7 Merge branch '2.8' into 3.0
* 2.8:
  [Form] refactor CheckboxListMapper and RadioListMapper
  Revert "[Form] refactor `RadioListMapper::mapDataToForm()`"
2016-04-28 11:57:11 +02:00
Fabien Potencier
5c235428d2 Merge branch '2.7' into 2.8
* 2.7:
  [Form] refactor CheckboxListMapper and RadioListMapper
  Revert "[Form] refactor `RadioListMapper::mapDataToForm()`"
2016-04-28 11:53:50 +02:00
Fabien Potencier
a8c10ac6e5 bug #18180 [Form] fixed BC break with pre selection of choices with ChoiceType and its children (HeahDude)
This PR was merged into the 2.7 branch.

Discussion
----------

[Form] fixed BC break with pre selection of choices with `ChoiceType` and its children

| Q             | A
| ------------- | ---
| Branch        | 2.7+
| Bugfix?  | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #18173, #14712, #17789
| License       | MIT
| Doc PR        | -

- f7eea72 reverts BC break introduced in #17760
- 58e8ed0 fixes pre selection of choice with model values such as `false`, `null` or empty string without BC break.

`ChoiceType` now always use `ChoiceToValueTransformer` or `ChoicesToValuesTransformer` depending on `multiple` option.
Hence `CheckboxListMapper` and `RadioListMapper` don't handle the transformation anymore.

Commits
-------

ea5375c [Form] refactor CheckboxListMapper and RadioListMapper
71841c7 Revert "[Form] refactor `RadioListMapper::mapDataToForm()`"
2016-04-28 11:51:12 +02:00
Fabien Potencier
44c3e32c29 Merge branch '3.0'
* 3.0:
  [Console] Fix wrong exceptions being thrown
  Add missing parenthesis in docblock description
  [FrameworkBundle] Remove duplicated code in ContainerDebugCommand
2016-04-28 11:49:00 +02:00
Fabien Potencier
dd3e5108b2 Merge branch '2.8' into 3.0
* 2.8:
  [Console] Fix wrong exceptions being thrown
  Add missing parenthesis in docblock description
  [FrameworkBundle] Remove duplicated code in ContainerDebugCommand
2016-04-28 11:48:42 +02:00
Nicolas Grekas
11654591e7 [Cache] Dont use Redis connection when not required 2016-04-28 10:49:16 +02:00
Ryan Weaver
7b6c56c4b3 Updating the error message of an AuthenticationEntryPointInterface returns a non-Response object 2016-04-27 12:48:29 -04:00
Nicolas Grekas
f146f8491c bug #18645 [Console] Fix wrong exceptions being thrown (JhonnyL)
This PR was merged into the 2.8 branch.

Discussion
----------

[Console] Fix wrong exceptions being thrown

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

Commits
-------

28fca7c [Console] Fix wrong exceptions being thrown
2016-04-27 15:32:57 +02:00
Nicolas Grekas
f2228d5cd4 bug #18630 [FrameworkBundle][Serializer] Fix a deprecation triggered by the ClassMetadataFactory (Ener-Getick)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[FrameworkBundle][Serializer] Fix a deprecation triggered by the ClassMetadataFactory

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

Without apparent reasons, [FOSRestBundle's tests fail](https://travis-ci.org/FriendsOfSymfony/FOSRestBundle/jobs/124384888) since https://github.com/symfony/symfony/pull/18561.
```
Passing a Doctrine Cache instance as 2nd parameter of the "Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactory" constructor is deprecated. This parameter will be removed in Symfony 4.0. Use the "Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory" class instead: 6x
    1x in ErrorWithTemplatingFormatTest::testSerializeExceptionHtml from FOS\RestBundle\Tests\Functional
    1x in SerializerErrorTest::testSerializeExceptionJson from FOS\RestBundle\Tests\Functional
    1x in SerializerErrorTest::testSerializeExceptionJsonWithoutDebug from FOS\RestBundle\Tests\Functional
    1x in SerializerErrorTest::testSerializeExceptionXml from FOS\RestBundle\Tests\Functional
    1x in SerializerErrorTest::testSerializeInvalidFormJson from FOS\RestBundle\Tests\Functional
    1x in SerializerErrorTest::testSerializeInvalidFormXml from FOS\RestBundle\Tests\Functional
```
We don't use cache in our tests but some of them are not in ``debug`` mode (will change soon) so the cache is automatically used.

This PR fixes this deprecation by detecting if the cache used by the serializer is psr6 compliant or not (if it is, then it replaces the default metadata factory by an instance of the new class ``CacheClassMetadataFactory``, otherwise the second parameter of the ``ClassMetadataFactory`` is used).

Commits
-------

15579d5 [FrameworkBundle] Deprecate framework.serializer.cache
eccbffb [Serializer] Improve a deprecation message
96e418a Revert "[FrameworkBundle] Fallback to default cache system in production for serializer"
2016-04-27 09:24:49 +02:00
Nicolas Grekas
e0696fadee minor #18647 [Cache] Minor cleanup (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Minor cleanup

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

Commits
-------

5786f3d [Cache] Minor cleanup
2016-04-27 09:23:25 +02:00
Nicolas Grekas
5786f3d532 [Cache] Minor cleanup 2016-04-27 08:45:20 +02:00
jhonnyL
28fca7c343 [Console] Fix wrong exceptions being thrown 2016-04-26 12:00:47 +00:00
Jeremy Benoist
199aa09c0f Add missing parenthesis in docblock description 2016-04-26 10:02:35 +02:00
Ener-Getick
eccbffb435
[Serializer] Improve a deprecation message 2016-04-25 19:26:34 +02:00
Nicolas Grekas
b44abe3361 Merge branch '3.0'
* 3.0:
  use stable 1.0.x Composer versions
  Fix typo in VarDumper README
  [DI] Fix AutowirePass fatal error with classes that have non-existing parents
  [DependencyInjection] Tests for AutowirePass with missing parent class
  [WebProfilerBunde] Give an absolute url in case the request occured from another domain

Conflicts:
	src/Symfony/Component/DependencyInjection/Compiler/AutowirePass.php
	src/Symfony/Component/DependencyInjection/Tests/Compiler/AutowirePassTest.php
2016-04-25 13:21:08 +02:00
Nicolas Grekas
fc50ad909b Merge branch '2.8' into 3.0
* 2.8:
  use stable 1.0.x Composer versions
  Fix typo in VarDumper README
  [DI] Fix AutowirePass fatal error with classes that have non-existing parents
  [DependencyInjection] Tests for AutowirePass with missing parent class
  [WebProfilerBunde] Give an absolute url in case the request occured from another domain
2016-04-25 13:17:47 +02:00
Nicolas Grekas
38bbb57bec Merge branch '2.7' into 2.8
* 2.7:
  use stable 1.0.x Composer versions
  Fix typo in VarDumper README
  [WebProfilerBunde] Give an absolute url in case the request occured from another domain
2016-04-25 13:17:03 +02:00
Christian Flothmann
8b0d990a0c [Cache] fix expiration handling in ArrayAdapter 2016-04-24 19:31:20 +02:00
Jules Pietri
df19c14050 use a request attribute flag for redirection profile 2016-04-23 05:34:37 +02:00
Jules Pietri
b26cb6d3b8 [HttpKernel] added RequestDataCollector::onKernelResponse()
fixes redirection profile introduced in
0a1b2841f7.

Prevents collecting redirect data on sub request profiling.
2016-04-23 05:34:36 +02:00
Jules Pietri
c8ba3b2073 [HttpKernel] remove legacy duplicated code
Finishes reverting part of 227ac77f11
in 4f020b5686
2016-04-22 19:17:18 +02:00
Wouter Sioen
36e65fcbcf Fix typo in VarDumper README 2016-04-22 14:44:08 +02:00
Kévin Dunglas
ca5930b3ec bug #18600 [DI] Fix AutowirePass fatal error with classes that have non-existing parents (hason, nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[DI] Fix AutowirePass fatal error with classes that have non-existing parents

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

Commits
-------

202cc77 [DI] Fix AutowirePass fatal error with classes that have non-existing parents
1735b85 [DependencyInjection] Tests for AutowirePass with missing parent class
2016-04-21 14:16:17 +02:00
Nicolas Grekas
db208e3e25 Merge branch '3.0'
* 3.0:
  [PropertyAccess] ->getValue() should be read-only
  [VarDumper] Fix dumping type hints for non-existing parent classes
  [Config] Fix XmlUtilsTest namespace
  [Console] [TableHelper] make it work with SymfonyStyle.
  Remove dead code
  [FrameworkBundle] Better output for user in ContainerDebugCommand
  [Routing] add query param if value is different from default
2016-04-20 20:54:21 +02:00
Nicolas Grekas
ffb7573bd7 Merge branch '2.8' into 3.0
* 2.8:
  [PropertyAccess] ->getValue() should be read-only
  [VarDumper] Fix dumping type hints for non-existing parent classes
  [Config] Fix XmlUtilsTest namespace
  [Console] [TableHelper] make it work with SymfonyStyle.
  Remove dead code
  [Routing] add query param if value is different from default

Conflicts:
	src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php
2016-04-20 20:53:54 +02:00
Nicolas Grekas
68415abf71 Merge branch '2.7' into 2.8
* 2.7:
  [PropertyAccess] ->getValue() should be read-only
  [VarDumper] Fix dumping type hints for non-existing parent classes
  [Config] Fix XmlUtilsTest namespace
  [Console] [TableHelper] make it work with SymfonyStyle.
  Remove dead code
  [Routing] add query param if value is different from default

Conflicts:
	src/Symfony/Component/VarDumper/Tests/Caster/ReflectionCasterTest.php
2016-04-20 20:52:26 +02:00
Nicolas Grekas
1ff12d92fd Merge branch '2.3' into 2.7
* 2.3:
  [PropertyAccess] ->getValue() should be read-only
  [Config] Fix XmlUtilsTest namespace
  [Routing] add query param if value is different from default

Conflicts:
	src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
2016-04-20 20:45:26 +02:00
Nicolas Grekas
4256add915 [Cache] Test & tweak CacheItem::validateKey() 2016-04-20 18:47:41 +02:00
Nicolas Grekas
fa6852968b [PropertyAccess] ->getValue() should be read-only 2016-04-20 17:25:54 +02:00
Nicolas Grekas
202cc7724e [DI] Fix AutowirePass fatal error with classes that have non-existing parents 2016-04-20 16:12:37 +02:00
Nicolas Grekas
6a0a6872bf bug #18593 [VarDumper] Fix dumping type hints for non-existing parent classes (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[VarDumper] Fix dumping type hints for non-existing parent classes

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

812bf5c [VarDumper] Fix dumping type hints for non-existing parent classes
2016-04-20 14:13:47 +02:00
Martin Hasoň
1735b85c04 [DependencyInjection] Tests for AutowirePass with missing parent class 2016-04-20 14:07:35 +02:00
Nicolas Grekas
357785aace Merge branch '3.0'
* 3.0:
  [DI] Fix internal caching in AutowirePass
  [PropertyInfo] Remove useless return statement
  [Console] use ANSI escape sequences in ProgressBar overwrite method
  [HttpKernel] Fix wrong number of arguments in call of ExceptionListener::logException()
  Replace iconv_*() uses by mb_*(), add mbstring polyfill when required
  [DependencyInjection] Remove YAML check in CrossCheckTest
  [Process] Consistently use getProcess() in tests
  [LDAP] Free the search result after a search to free memory
  [DependencyInjection] fix phpDoc

Conflicts:
	src/Symfony/Component/Ldap/LdapClient.php
2016-04-20 13:42:08 +02:00
Nicolas Grekas
76f3eae5e1 Merge branch '2.8' into 3.0
* 2.8:
  [DI] Fix internal caching in AutowirePass
  [PropertyInfo] Remove useless return statement
  Replace iconv_*() uses by mb_*(), add mbstring polyfill when required

Conflicts:
	src/Symfony/Bridge/Doctrine/composer.json
	src/Symfony/Component/Validator/composer.json
2016-04-20 13:35:44 +02:00
Nicolas Grekas
d1038c3421 bug #18596 [DI] Fix internal caching in AutowirePass (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

[DI] Fix internal caching in AutowirePass

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

ping @dunglas

Commits
-------

ed2e236 [DI] Fix internal caching in AutowirePass
2016-04-20 13:30:10 +02:00
Nicolas Grekas
7fd5a02fa1 feature #18597 [Cache] Add CacheItem::validateKey utility method (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Add CacheItem::validateKey utility method

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

Ping @dunglas

Commits
-------

af09cde [Cache] Add CacheItem::validateKey utility method
2016-04-20 11:44:29 +02:00
Nicolas Grekas
af09cdef49 [Cache] Add CacheItem::validateKey utility method 2016-04-20 11:19:01 +02:00
Nicolas Grekas
ed2e2360bc [DI] Fix internal caching in AutowirePass 2016-04-20 08:44:03 +02:00
Fabien Potencier
2f0b8f8f3f bug #18581 [Console] [TableHelper] make it work with SymfonyStyle. (aitboudad)
This PR was merged into the 2.7 branch.

Discussion
----------

[Console] [TableHelper] make it work with SymfonyStyle.

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

Commits
-------

43cc93c [Console] [TableHelper] make it work with SymfonyStyle.
2016-04-20 08:32:07 +02:00
Fabien Potencier
8e67eab202 fixed CS 2016-04-20 08:30:26 +02:00
Fabien Potencier
1253700e01 bug #18589 [Serializer] fix parent class of AbstractNormalizer (xabbuh)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Serializer] fix parent class of AbstractNormalizer

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

We must maintain the parent class to not break BC.

Commits
-------

45b9ed9 fix parent class of AbstractNormalizer
2016-04-20 08:29:49 +02:00
Shawn Iwinski
e249bc3cae [Security] Normalize "symfony/security-acl" dependency versions across all composer.json files 2016-04-19 14:38:18 -04:00
Nicolas Grekas
812bf5c45d [VarDumper] Fix dumping type hints for non-existing parent classes 2016-04-19 19:25:26 +02:00
Kévin Dunglas
114fca3126 feature #17660 [Serializer] Integrate the PropertyInfo Component (recursive denormalization and hardening) (mihai-stancu, dunglas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

	[Serializer] Integrate the PropertyInfo Component (recursive denormalization and hardening)

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #16143, #17193, #14844
| License       | MIT
| Doc PR        | todo

Integrates the PropertyInfo Component in order to:

* denormalize a graph of objects recursively (see tests)
* harden the hydratation logic

The hardening part is interesting. Considering the following example:

```php
class Foo
{
    public function setDate(\DateTimeInterface $date)
    {
    }
}

// initialize $normalizer
$normalizer->denormalize(['date' => 1234], Foo::class);
```

Previously, a PHP error was thrown because the type passed to the setter (an int) doesn't match the one checked with the typehint. With the PropertyInfo integration, an `UnexpectedValueExcption` is throw instead.
It's especially interesting for web APIs dealing with JSON documents. For instance in API Platform, previously a 500 error was thrown, but thanks to this fix a 400 HTTP code with a descriptive error message will be returned. (/cc @csarrazi @mRoca @blazarecki, it's an alternative to https://github.com/dunglas/php-to-json-schema for protecting an API).

/cc @mihai-stancu

Commits
-------

5194482 [Serializer] Integrate the PropertyInfo Component
6b464b0 Recursive denormalize using PropertyInfo
2016-04-19 17:18:49 +02:00
Kévin Dunglas
5194482ed5 [Serializer] Integrate the PropertyInfo Component
Recursive denormalization handling and hardening.
2016-04-19 17:00:22 +02:00
Théo FIDRY
d3063ed288 [Serializer] Add deprecation notices 2016-04-19 16:04:22 +02:00
jhonnyL
58425eb44c [Config] Fix XmlUtilsTest namespace 2016-04-19 13:29:13 +00:00
Abdellatif Ait boudad
43cc93c7e8 [Console] [TableHelper] make it work with SymfonyStyle. 2016-04-19 12:28:43 +01:00
Christian Flothmann
45b9ed95fe fix parent class of AbstractNormalizer
We must maintain the parent class to not break BC.
2016-04-19 13:00:54 +02:00
Kévin Dunglas
9093bd5d83 [PropertyInfo] Remove useless return statement 2016-04-18 22:49:43 +02:00
Mihai Stancu
6b464b01aa Recursive denormalize using PropertyInfo
- Refactored PR 14844 "Denormalize with typehinting"
- Now using PropertyInfo to extract type information
- Updated tests
- Updated composer.json
2016-04-18 21:22:06 +02:00
Théo FIDRY
31c530ae4a
Remove dead code 2016-04-18 20:15:00 +01:00
Kévin Dunglas
3a165e551d feature #17959 [Serializer] Harden the ObjectNormalizer (dunglas)
This PR was squashed before being merged into the 3.1-dev branch (closes #17959).

Discussion
----------

[Serializer] Harden the ObjectNormalizer

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

Transform `\TypeError`s to catchable serializer exceptions.

Follows #17738 and completes #17660.

Commits
-------

26a07fb [Serializer] Harden the ObjectNormalizer
2016-04-18 19:37:57 +02:00
Kévin Dunglas
26a07fb2ab [Serializer] Harden the ObjectNormalizer 2016-04-18 19:37:45 +02:00
Nicolas Grekas
2824db3da8 feature #18547 DX: better error message if factory class is empty (dbu)
This PR was merged into the 3.1-dev branch.

Discussion
----------

DX: better error message if factory class is empty

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

i was trying to debug this service configuration:

```xml
        <service id="repository.user" class="Doctrine\ORM\EntityRepository">
            <argument>%user_entity_class%</argument>
            <factory id="doctrine.orm.default_entity_manager" method="getRepository"/>
        </service>
```

Turns out i should have used `<factory service=...` instead of `<factory id=...` but the error message does not even tell which service is wrong. The same happens when only specifying the `method=` attribute. The current exception message tells:

    Cannot dump definition because of invalid class name ('')

With this change, the message at least tells the context, hopefully helping the developer debug the issue:

    Empty class for factory of service repository.user and no factory service specified

Commits
-------

0999326 better error message if factory class is empty
2016-04-18 14:53:30 +02:00