Commit Graph

14711 Commits

Author SHA1 Message Date
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
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
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
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
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
Nicolas Grekas
9ca22e9805 [Cache] Fix test tearDown 2016-04-18 13:57:20 +02:00
David Buchmann
09993265c2 better error message if factory class is empty 2016-04-18 11:26:57 +02:00
Nicolas Grekas
39df9e4f8b CS fixes 2016-04-17 18:02:30 +02:00
Nicolas Grekas
9dcbe3403c [Cache] Minor tweaks 2016-04-17 13:51:09 +02:00
Fabien Potencier
47cb0c3ec1 feature #18020 fix #17993 - Deprecated callable strings (hamza)
This PR was merged into the 3.1-dev branch.

Discussion
----------

fix #17993 - Deprecated callable strings

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

Is this ok ?

- [x] Rebase when  #18057 is merged

Commits
-------

191b495 fix #17993 - Deprecated callable strings
2016-04-15 12:08:13 +02:00
Fabien Potencier
529d0fe230 feature #18487 [Cache] Add DoctrineProvider, for using PSR-6 pools in Doctrine Cache (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Add DoctrineProvider, for using PSR-6 pools in Doctrine Cache

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

This would allow cache pool configuration as usual (see #17290) before injecting the resulting doctrine cache provider anywhere such an interface is required.

Commits
-------

5d256dd [Cache] Add DoctrineProvider, for using PSR-6 pools in Doctrine Cache
2016-04-15 11:27:30 +02:00
hamza
191b4954c0 fix #17993 - Deprecated callable strings
ext
2016-04-15 07:55:48 +02:00
Nicolas Grekas
5d256ddaee [Cache] Add DoctrineProvider, for using PSR-6 pools in Doctrine Cache 2016-04-14 15:55:05 +02:00
Fabien Potencier
1ee981fbb8 bug #18436 fix Autowiring tests of #18144 (HeahDude)
This PR was merged into the 3.1-dev branch.

Discussion
----------

fix Autowiring tests of #18144

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | yes
| Tests pass?   | yes
| Fixed issue | https://github.com/symfony/symfony/pull/18422#discussion_r58362092
| License       | MIT

Commits
-------

0cbf04a [DI] fix Autowiring tests of #18144
2016-04-14 13:54:39 +02:00
Joel Wurtz
231819e9ac Fix the wrong method name given the corresponding interface 2016-04-14 00:46:09 +02:00
Jules Pietri
0cbf04a77e [DI] fix Autowiring tests of #18144 2016-04-13 08:43:21 +02:00
Nicolas Grekas
428f12e13b [Process] Turn getIterator() args to flags & add ITER_SKIP_OUT/ERR modes 2016-04-12 21:11:33 +02:00
Nicolas Grekas
f1d12a1c07 bug #18485 [Cache] Workaround krakjoe/apcu#170 (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Workaround krakjoe/apcu#170

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

Commits
-------

98dce41 [Cache] Workaround krakjoe/apcu#170
2016-04-12 21:07:53 +02:00
Christian Flothmann
af9ec74edb Merge branch '3.0'
* 3.0: (24 commits)
  [Filesystem] Better error handling in remove()
  [DependencyInjection] Add coverage for invalid Expression in exportParameters
  [DependencyInjection] Add coverage for all invalid arguments in exportParameters
  anonymous services are always private
  [Form] FormValidator removed code related to removed  option
  [Console] Correct time formatting.
  [WebProfilerBundle] Fixed error from unset twig variable
  Force profiler toolbar svg display
  [DependencyInjection] Resolve aliases before removing abstract services + add tests
  Fix Dom Crawler select option with empty value
  Remove unnecessary option assignment
  fix tests (use non-deprecated options)
  remove unused variable
  mock the proper method
  [PropertyAccess] Fix regression
  [HttpFoundation] Improve phpdoc
  [Logging] Add support for firefox in ChromePhpHandler
  Windows 10 version check in just one line
  Detect CLI color support for Windows 10 build 10586
  [Security] Fixed SwitchUserListener when exiting an impersonication with AnonymousToken
  ...
2016-04-12 20:27:47 +02:00
Christian Flothmann
e72d509012 Merge branch '2.8' into 3.0
* 2.8: (23 commits)
  [Filesystem] Better error handling in remove()
  [DependencyInjection] Add coverage for invalid Expression in exportParameters
  [DependencyInjection] Add coverage for all invalid arguments in exportParameters
  anonymous services are always private
  [Console] Correct time formatting.
  [WebProfilerBundle] Fixed error from unset twig variable
  Force profiler toolbar svg display
  [DependencyInjection] Resolve aliases before removing abstract services + add tests
  Fix Dom Crawler select option with empty value
  Remove unnecessary option assignment
  fix tests (use non-deprecated options)
  remove unused variable
  mock the proper method
  [PropertyAccess] Fix regression
  [HttpFoundation] Improve phpdoc
  [Logging] Add support for firefox in ChromePhpHandler
  Windows 10 version check in just one line
  Detect CLI color support for Windows 10 build 10586
  [Security] Fixed SwitchUserListener when exiting an impersonication with AnonymousToken
  [EventDispatcher] Try first if the event is Stopped
  ...
2016-04-12 20:09:53 +02:00
Christian Flothmann
ed9c94c719 Merge branch '2.7' into 2.8
* 2.7:
  [Filesystem] Better error handling in remove()
  [DependencyInjection] Add coverage for invalid Expression in exportParameters
  [DependencyInjection] Add coverage for all invalid arguments in exportParameters
  anonymous services are always private
  [Console] Correct time formatting.
  [DependencyInjection] Resolve aliases before removing abstract services + add tests
  Fix Dom Crawler select option with empty value
  Remove unnecessary option assignment
  remove unused variable
  mock the proper method
  [PropertyAccess] Fix regression
2016-04-12 20:01:21 +02:00
Nicolas Grekas
689f27b397 bug #18491 [DependencyInjection] anonymous services are always private (xabbuh)
This PR was merged into the 2.7 branch.

Discussion
----------

[DependencyInjection] anonymous services are always private

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

0a469a4 anonymous services are always private
2016-04-12 17:22:47 +02:00
Nicolas Grekas
fd693e6997 Merge branch '2.3' into 2.7
* 2.3:
  [Filesystem] Better error handling in remove()
2016-04-12 17:21:00 +02:00
Nicolas Grekas
b848ddb7f0 [Filesystem] Better error handling in remove() 2016-04-12 17:20:10 +02:00
Nicolas Grekas
98dce411e8 [Cache] Workaround krakjoe/apcu#170 2016-04-12 08:30:53 +02:00
Fabien Potencier
8bf49692b6 minor #18499 [DependencyInjection] Add coverage for invalid Expression in exportParameters (JhonnyL)
This PR was merged into the 2.7 branch.

Discussion
----------

[DependencyInjection] Add coverage for invalid Expression in exportParameters

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

Commits
-------

1931b14 [DependencyInjection] Add coverage for invalid Expression in exportParameters
2016-04-11 05:50:45 -07:00
Fabien Potencier
3cd380da42 Merge branch '2.3' into 2.7
* 2.3:
  [DependencyInjection] Add coverage for all invalid arguments in exportParameters
2016-04-11 05:48:18 -07:00
Fabien Potencier
302e1928b8 minor #18500 [DependencyInjection] Add coverage for all invalid arguments in exportParameters (JhonnyL)
This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] Add coverage for all invalid arguments in exportParameters

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

Commits
-------

87c4f23 [DependencyInjection] Add coverage for all invalid arguments in exportParameters
2016-04-11 05:47:06 -07:00
JhonnyL
1931b14a60 [DependencyInjection] Add coverage for invalid Expression in exportParameters 2016-04-11 10:53:08 +02:00
Christian Flothmann
351977095f some tweaks to the controller argument resolver
* update some docblocks

* remove the `LegacyArgumentResolver` class

* simplify the `TraceableControllerResolver`
2016-04-11 10:32:34 +02:00
JhonnyL
87c4f23764 [DependencyInjection] Add coverage for all invalid arguments in exportParameters 2016-04-10 20:31:05 +02:00
Christian Flothmann
0a469a418f anonymous services are always private 2016-04-09 16:46:37 +02:00
Christian Flothmann
064aedf9e3 Merge branch '2.3' into 2.7
* 2.3:
  [DependencyInjection] Resolve aliases before removing abstract services + add tests
  Fix Dom Crawler select option with empty value
  Remove unnecessary option assignment
  remove unused variable
  [PropertyAccess] Fix regression
2016-04-09 12:56:56 +02:00
Peter Rehm
05fe6f9b07 [Form] FormValidator removed code related to removed option 2016-04-07 17:44:59 +02:00
Fabien Potencier
0b67fa3dd1 feature #18371 [FrameworkBundle] integrate the Cache component (xabbuh, nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[FrameworkBundle] integrate the Cache component

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

Last commit is the diff with #17868.

Commits
-------

4152634 [FrameworkBundle] Add default pool & system adapter
714b916 [FrameworkBundle] Add & use Psr6CacheClearer
4740c5c [FrameworkBundle] use abstract cache.pool decoration and aliases
92b1a20 [FrameworkBundle] Fix and add tests for cache pool wiring
e44bfdc [FrameworkBundle] Add cache-pool tag and wiring
281eafa [FrameworkBundle] Integrate the Cache component
bc51fde [Cache] Normalize constructor arguments order
2016-04-07 17:36:32 +02:00
Fabien Potencier
eb40f161d7 feature #18440 Add the kernel.controller_arguments event (stof)
This PR was merged into the 3.1-dev branch.

Discussion
----------

Add the kernel.controller_arguments event

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

I'm not sure this can be integrated in 3.1 due to the feature freeze, but it would be great if it is, as it is a must-have to be able to make the ``@Security`` annotation compatible with the new argument resolver system (as we need to be able to run the security assertion after the resolving).

I made the arguments mutable here for consistency with ``kernel.controller`` (and @fabpot replied LGTM in the RFC when I suggested it).

Commits
-------

af02e2a Add the kernel.controller_arguments event
2016-04-07 17:31:25 +02:00
Fabien Potencier
416f7d751f bug #18449 [PropertyAccess] Fix regression (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[PropertyAccess] Fix regression

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

All credits go to @MisatoTremor

I don't measure any perf impact.

Commits
-------

2b30d48 [PropertyAccess] Fix regression
2016-04-07 17:14:27 +02:00
Fabien Potencier
283875b325 bug #18429 [Console] Correct time formatting. (camporter)
This PR was squashed before being merged into the 2.7 branch (closes #18429).

Discussion
----------

[Console] Correct time formatting.

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

The previous behavior caused dramatic jumps in the reported time instead of smoothly transitioning between time ranges.
Added tests around the new behavior and the transitions between seconds, minutes, and days.

Commits
-------

b264b66 [Console] Correct time formatting.
2016-04-07 17:12:31 +02:00
Cameron Porter
b264b66a90 [Console] Correct time formatting. 2016-04-07 17:12:27 +02:00
Fabien Potencier
004a6678d2 bug #18467 [DependencyInjection] Resolve aliases before removing abstract services + add tests (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[DependencyInjection] Resolve aliases before removing abstract services + add tests

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

Commits
-------

9802a41 [DependencyInjection] Resolve aliases before removing abstract services + add tests
2016-04-07 17:04:06 +02:00
Christophe Coevoet
af02e2abe1 Add the kernel.controller_arguments event 2016-04-07 16:51:22 +02:00
Nicolas Grekas
41526342ea [FrameworkBundle] Add default pool & system adapter 2016-04-07 14:29:40 +02:00
Christophe Coevoet
abf4f67605 bug #18460 [DomCrawler] Fix select option with empty value (Matt Wells)
This PR was merged into the 2.3 branch.

Discussion
----------

[DomCrawler] Fix select option with empty value

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

While using the Laravel's testing suite which makes use of the Symfony DOM Crawler (v3.0.2). I have been populating a form with a select which has a value which can be an empty value.

For example, with this select you can choose your gender or leave it empty if you don't want to specify:

```html
<select name="gender">
  <option selected></option>
  <option>Female</option>
  <option>Male</option>
</select>
```

When the `DomCrawler\Field::getValue()` is called I was expect to get the value `''` however I was actually getting `'on'`. This is caused by the [DomCrawler\Field::buildOptionValue()](https://github.com/symfony/symfony/blob/master/src/Symfony/Component/DomCrawler/Field/ChoiceFormField.php#L262-L271) sets the default value to 'on' when there is no value which makes sense for ratios and checkboxes but not for select.

I have tracked this bug back to v2.3 but it is still present in v3, however, the default value was changed from '1' to 'on' in v2.5 which means that this patch will conflict when merging up the maintained versions.

Commits
-------

58276a2 Fix Dom Crawler select option with empty value
2016-04-07 10:21:15 +02:00
Jules Pietri
724fd3b477 updated changelogs after #17589 2016-04-06 20:10:02 +02:00
Nicolas Grekas
9802a41b3c [DependencyInjection] Resolve aliases before removing abstract services + add tests 2016-04-06 19:38:23 +02:00
Matt Wells
58276a274e Fix Dom Crawler select option with empty value 2016-04-06 14:13:46 +01:00