Commit Graph

26292 Commits

Author SHA1 Message Date
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
JhonnyL
5885cbc1a2 [FrameworkBundle] Remove duplicated code in ContainerDebugCommand 2016-04-21 09:55:15 +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
2a47edc144 bug #18556 [FrameworkBundle] Better output for user in ContainerDebugCommand (JhonnyL)
This PR was merged into the 3.0 branch.

Discussion
----------

[FrameworkBundle] Better output for user in ContainerDebugCommand

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

Right now, the message `To search for a specific service, re-run this command with a search term. (e.g. debug:container log)` is displayed to the user whenever the command is being run. (Except when the search term is given).

But if a user runs e.g. `debug:container --parameters`. This message is out of scope since the user is looking for information about parameters, not services.

This PR will update the command to give better output to the user.

`debug:container`
Will keep current behaviour
`debug:container --parameters`
Will hint how to search for specific parameter
`debug:container --tags`
Will hint how to search for specific tag

Commits
-------

313d8b1 [FrameworkBundle] Better output for user in ContainerDebugCommand
2016-04-20 20:38:58 +02:00
Nicolas Grekas
c1cb357d3a bug #18603 [PropertyAccess] ->getValue() should be read-only (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[PropertyAccess] ->getValue() should be read-only

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

Commits
-------

fa68529 [PropertyAccess] ->getValue() should be read-only
2016-04-20 20:37:31 +02:00
Nicolas Grekas
c4acbb47ba minor #18604 [Cache] Test & tweak CacheItem::validateKey() (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Test & tweak CacheItem::validateKey()

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

Ping @javiereguiluz @stof

Commits
-------

4256add [Cache] Test & tweak CacheItem::validateKey()
2016-04-20 20:33:45 +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
Nicolas Grekas
51d075a51b feature #18561 [FrameworkBundle] Fallback to default cache system in production for serializer (tgalopin)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[FrameworkBundle] Fallback to default cache system in production for serializer

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

In the same idea as https://github.com/symfony/symfony/pull/18544, this PR proposes a default fallback to filesystem cache for the serializer if the APC cache is not enabled in production. In other words, if the following part of `config_prod.yml` file is not uncommented, the filesystem will be used:

``` yaml
#framework:
#    serializer:
#        cache: serializer.mapping.cache.doctrine.apc
```

Commits
-------

4f0b8be [FrameworkBundle] Fallback to default cache system in production for serializer
2016-04-19 16:23:32 +02:00
Nicolas Grekas
44e3664ac9 minor #18585 [PropertyInfo] Remove useless return statement (dunglas)
This PR was merged into the 2.8 branch.

Discussion
----------

[PropertyInfo] Remove useless return statement

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

9093bd5 [PropertyInfo] Remove useless return statement
2016-04-19 16:06:07 +02:00
Nicolas Grekas
852592d030 minor #18588 [Serializer] Add deprecation notices (theofidry)
This PR was squashed before being merged into the 3.1-dev branch (closes #18588).

Discussion
----------

[Serializer] Add deprecation notices

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

As discussed in #18583, add deprecation notices to `master` instead.

Commits
-------

d3063ed [Serializer] Add deprecation notices
2016-04-19 16:04:41 +02:00
Théo FIDRY
d3063ed288 [Serializer] Add deprecation notices 2016-04-19 16:04:22 +02:00
Nicolas Grekas
2729c88e7e minor #18590 [FrameworkBundle] update argument value resolver pass tests (xabbuh)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[FrameworkBundle] update argument value resolver pass tests

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

Make sure to have at least one assertion per test.

Commits
-------

b8afa30 update argument value resolver pass tests
2016-04-19 16:02:12 +02:00
Nicolas Grekas
d74a4dbdaa feature #18567 [FrameworkBundle][Serializer] Fix APC cache service name (tgalopin)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[FrameworkBundle][Serializer] Fix APC cache service name

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

In the commit 008055659c, we introduced in the standard edition the usage of `serializer.mapping.cache.doctrine.apc` instead of `serializer.mapping.cache.apc` in `config_prod.yml` comments.

Earlier, we introduced the validator equivalent modification (`validator.mapping.cache.doctrine.apc` instead of `validator.mapping.cache.apc`) but while we adapted the validator configuration in the FrameworkBundle in https://github.com/symfony/symfony/pull/16822, we did not adapt the FrameworkBundle configuration for the serializer.

I tested the current master of symfony-standard and it's indeed failing:

```
[Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException]
The service "serializer" has a dependency on a non-existent service "serializer.mapping.cache.doctrine.apc".
```

This PR renames the serializer APCu cache service name to fix this issue. However, I'm not sure when the validator cache service modification was merged and released so I'm not sure how this PR should handle this. Is this a bug? Or is this a new feature and we should trigger a depreciation but keep the service `serializer.mapping.cache.apc` usable?

Commits
-------

88ef89c [FrameworkBundle][Serializer] Fix APC cache service name and deprecate old name
2016-04-19 16:00:57 +02:00
Christophe Coevoet
40b4cb2c4a minor #18591 [Config] Fix XmlUtilsTest namespace (JhonnyL)
This PR was merged into the 2.3 branch.

Discussion
----------

[Config] Fix XmlUtilsTest namespace

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

Commits
-------

58425eb [Config] Fix XmlUtilsTest namespace
2016-04-19 15:42:43 +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
Christian Flothmann
b8afa30831 update argument value resolver pass tests
Make sure to have at least one assertion per test.
2016-04-19 12:57:28 +02:00
Fabien Potencier
c848f88c72 minor #18584 [Serializer] Remove dead code (theofidry)
This PR was merged into the 2.7 branch.

Discussion
----------

[Serializer] Remove dead code

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

The deleted lines are the exact equivalent of L249-251. It looks like this is due from a bad merged when the (de)normalization cache has been removed.

Commits
-------

31c530a Remove dead code
2016-04-19 10:49:24 +02:00
Titouan Galopin
88ef89c8dc [FrameworkBundle][Serializer] Fix APC cache service name and deprecate old name 2016-04-19 08:52:34 +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
Nicolas Grekas
8aec0bba0d minor #18576 [Cache] Fix test tearDown (nicolas-grekas)
This PR was merged into the 3.1-dev branch.

Discussion
----------

[Cache] Fix test tearDown

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

9ca22e9 [Cache] Fix test tearDown
2016-04-18 14:52:26 +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
Iltar van der Berg
e54c1a648c Fixed a redundant check in DefaultValueResolver 2016-04-18 09:44:09 +02:00