Commit Graph

18179 Commits

Author SHA1 Message Date
Nicolas Grekas
4ccfe49f4a Merge branch '2.3' into 2.7
* 2.3:
  [travis] session.gc_probability=0 to fix transient tests on hhvm

Conflicts:
	.travis.yml
	src/Symfony/Component/HttpKernel/Tests/Fragment/FragmentHandlerTest.php
2015-11-04 09:13:32 +01:00
Michal Piotrowski
5a6c1f2626 asset test coverage 2015-11-04 01:23:35 +01:00
Nicolas Grekas
b4dd254774 [travis] session.gc_probability=0 to fix transient tests on hhvm 2015-11-03 16:54:52 +01:00
Nicolas Grekas
399b1d5cb0 minor #16441 [Security][2.7] Clean deps (nicolas-grekas)
This PR was merged into the 2.7 branch.

Discussion
----------

[Security][2.7] Clean deps

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

Commits
-------

d51ab88 [Security][2.7] Clean deps
2015-11-03 15:25:10 +01:00
Nicolas Grekas
5d8ce715f1 Merge branch '2.3' into 2.7
* 2.3:
  [HttpKernel] Fix time-sensitive test case
  [travis] Fail early when an invalid composer.json is found
2015-11-03 15:24:30 +01:00
Nicolas Grekas
d51ab88541 [Security][2.7] Clean deps 2015-11-03 15:07:35 +01:00
Nicolas Grekas
c188b35b18 [HttpKernel] Fix time-sensitive test case 2015-11-03 14:01:13 +01:00
Nicolas Grekas
39420e1eb9 [Security] Fix composer.json 2015-11-03 12:34:55 +01:00
Fabien Potencier
d3008b420a removed @covers annotations in tests 2015-11-02 21:25:31 +01:00
Fabien Potencier
db54164a87 Merge branch '2.3' into 2.7
* 2.3:
  removed all @covers annotations
  [PropertyAccess] Major performance improvement
2015-11-02 21:20:53 +01:00
Fabien Potencier
30bd397366 minor #16414 removed all @covers annotations (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

removed all @covers annotations

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

Some unit tests have a `@covers` PHPUnit annotations. Most of them were added a very long time ago, but since then, we did not use them anymore and the existing ones are not maintained (see #16413). So, I propose to remove them all.

Commits
-------

1e0af36 removed all @covers annotations
2015-11-02 19:22:02 +01:00
Fabien Potencier
1e0af36c7d removed all @covers annotations 2015-11-01 14:17:24 -08:00
Fabien Potencier
3b2d0100ac bug #16294 [PropertyAccess] Major performance improvement (dunglas)
This PR was squashed before being merged into the 2.3 branch (closes #16294).

Discussion
----------

[PropertyAccess] Major performance improvement

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

This PR improves performance of the PropertyAccess component of ~70%.

The two main changes are:

* caching the `PropertyPath` initialization
* caching the guessed access strategy

This is especially important for the `ObjectNormalizer` (Symfony Serializer) and the JSON-LD normalizer ([API Platform](https://api-platform.com)) because they use the `PropertyAccessor` class in large loops (ex: normalization of a list of entities).

Here is the Blackfire comparison: https://blackfire.io/profiles/compare/c42fd275-2b0c-4ce5-8bf3-84762054d31e/graph

The code of the benchmark I've used (with Symfony 2.3 as dependency):

```php
<?php

require 'vendor/autoload.php';

class Foo
{
    private $baz;
    public $bar;

    public function getBaz()
    {
        return $this->baz;
    }

    public function setBaz($baz)
    {
        $this->baz = $baz;
    }
}

use Symfony\Component\PropertyAccess\PropertyAccess;

$accessor = PropertyAccess::createPropertyAccessor();

$start = microtime(true);

for ($i = 0; $i < 10000; ++$i) {
    $foo = new Foo();
    $accessor->setValue($foo, 'bar', 'Lorem');
    $accessor->setValue($foo, 'baz', 'Ipsum');
    $accessor->getValue($foo, 'bar');
    $accessor->getValue($foo, 'baz');
}

echo 'Time: '.(microtime(true) - $start).PHP_EOL;
```

This PR also adds an optional support for Doctrine cache to keep access information across requests and improve the overall application performance (even outside of loops).

Commits
-------

284dc75 [PropertyAccess] Major performance improvement
2015-10-30 15:37:44 -07:00
Kévin Dunglas
284dc75796 [PropertyAccess] Major performance improvement 2015-10-30 15:36:27 -07:00
Fabien Potencier
6d0e05cd1d added the new Composer exclude-from-classmap option 2015-10-30 13:13:17 -07:00
Fabien Potencier
05c2ecc124 Merge branch '2.3' into 2.7
* 2.3:
  added the new Composer exclude-from-classmap option
  fix expected argument type docblock
  Set back libxml settings after testings.
  fixed Twig deprecation notices
2015-10-30 13:10:21 -07:00
Fabien Potencier
ebd55fcb38 minor #16397 added the new Composer exclude-from-classmap option (annesosensio)
This PR was merged into the 2.3 branch.

Discussion
----------

added the new Composer exclude-from-classmap option

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

65bef75 added the new Composer exclude-from-classmap option
2015-10-30 13:03:18 -07:00
Anne-Sophie Bachelard
65bef75bef added the new Composer exclude-from-classmap option 2015-10-30 12:48:51 -07:00
Fabien Potencier
cd6351f2cd bug #16331 fixed Twig deprecation notices (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

fixed Twig deprecation notices

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

To avoid deprecation notices when upgrading to Twig 1.23.

Commits
-------

1bdd127 fixed Twig deprecation notices
2015-10-30 10:50:46 -07:00
Fabien Potencier
f59286bbc1 minor #16373 [HttpFoundation] fix expected argument type docblock (xabbuh)
This PR was merged into the 2.3 branch.

Discussion
----------

[HttpFoundation] fix expected argument type docblock

| Q             | A
| ------------- | ---
| Fixed tickets |
| License       | MIT

Commits
-------

1c01ebc fix expected argument type docblock
2015-10-29 15:36:51 -07:00
Christian Flothmann
1c01ebc48d fix expected argument type docblock 2015-10-29 19:47:17 +01:00
Tobias Schultze
7f62133939 fix php requirement in 2.7 2015-10-29 15:10:52 +01:00
Tobias Schultze
9ea4bce052 Merge branch '2.3' into 2.7 2015-10-29 11:45:39 +01:00
Possum
29d696944c Set back libxml settings after testings. 2015-10-29 11:26:44 +01:00
Christian Flothmann
6541b8b726 don't call constructors on Mongo mock objects
Calling the parent constructor of the mocked `Mongo` class tries to
connect to a local MongoDB server which fails in case no local server
was configured.

Similarly, when the parent constructor of the mocked `MongoCollection`
class is called it performs checks on the passed arguments which fails
again when a connection was not established successfully before.
2015-10-28 22:19:48 +01:00
Fabien Potencier
713adb3938 added missing quotes in YAML files 2015-10-27 21:31:00 -07:00
Fabien Potencier
5f707a64d0 Merge branch '2.3' into 2.7
* 2.3:
  added missing quotes in YAML files
  [HttpKernel] Add `@group time-sensitive` on some transient tests
  [DoctrineBridge] Fix issue which prevent the profiler to explain a query
  Use mb_detect_encoding with $strict = true
  don't allow to install the split Security packages
  bumped Symfony version to 2.3.35
  updated VERSION for 2.3.34
  update CONTRIBUTORS for 2.3.34
  updated CHANGELOG for 2.3.34
2015-10-27 21:15:55 -07:00
Fabien Potencier
87c08d5fe5 added missing quotes in YAML files 2015-10-27 21:13:05 -07:00
Nicolas Grekas
6a7d270820 [HttpKernel] Add @group time-sensitive on some transient tests 2015-10-28 04:01:13 +01:00
Fabien Potencier
92b6d955ef added missing quotes in YAML files 2015-10-27 19:40:10 -07:00
Baachi
3490e98226 [DoctrineBridge] Fix issue which prevent the profiler to explain a query 2015-10-27 19:18:52 -07:00
Fabien Potencier
c7e772c8d8 bug #16359 Use mb_detect_encoding with $strict = true (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

Use mb_detect_encoding with $strict = true

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

Otherwise, UTF-8 can be returned for non-UTF8 strings...
See e.g. https://3v4l.org/oMMnX

Commits
-------

e6c89f1 Use mb_detect_encoding with $strict = true
2015-10-27 19:13:23 -07:00
Fabien Potencier
dd9de5be75 bug #16144 [Security] don't allow to install the split Security packages (xabbuh)
This PR was merged into the 2.3 branch.

Discussion
----------

[Security] don't allow to install the split Security packages

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

Currently, you would be able to install the Security component fromm
Symfony 2.3 together with one of the split packages from a higher
Symfony vesion like this:

```json
{
    "require": {
        "symfony/symfony": "2.3.*",
        "symfony/security-core": "~2.7"
    }
}
```

However, you will end up with classes being present twice.

This must be reverted after merging up in the `2.7` branch.

Commits
-------

0d14064 don't allow to install the split Security packages
2015-10-27 18:53:37 -07:00
Nicolas Grekas
e6c89f15e4 Use mb_detect_encoding with $strict = true 2015-10-28 00:14:24 +01:00
Christian Flothmann
0d140642e0 don't allow to install the split Security packages
Currently, you would be able to install the Security component fromm
Symfony 2.3 together with one of the split packages from a higher
Symfony vesion like this:

```json
{
    "require": {
        "symfony/symfony": "2.3.*",
        "symfony/security-core": "~2.7"
    }
}
```

However, you will end up with classes being present twice.

This must be reverted after merging up in the `2.7` branch.
2015-10-27 21:57:16 +01:00
Fabien Potencier
07439f41c7 bumped Symfony version to 2.7.7 2015-10-27 13:02:17 -07:00
Fabien Potencier
88db7c059e updated VERSION for 2.7.6 2015-10-27 12:07:21 -07:00
Fabien Potencier
acf9d7e65c bumped Symfony version to 2.3.35 2015-10-27 11:54:58 -07:00
Fabien Potencier
3a8e49d840 updated VERSION for 2.3.34 2015-10-27 09:29:44 -07:00
Fabien Potencier
ced865deb1 Merge branch '2.3' into 2.7
* 2.3:
  fixed YAML files missing quotes when a string starts with @
  [Routing] mark internal classes
  [Translation][Csv file] remove unnecessary statements, for better readability.
  [Form] remove validation of FormRegistry::getType as FormRegistry::hasType does not validate either
2015-10-27 08:38:06 -07:00
Fabien Potencier
95ff0bc5fd minor #16353 fixed YAML files missing quotes when a string starts with @ (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

fixed YAML files missing quotes when a string starts with @

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

e36fea8 fixed YAML files missing quotes when a string starts with @
2015-10-27 08:33:53 -07:00
Fabien Potencier
e8ba93b0d2 minor #16320 [Translation][Csv loader] remove unnecessary statements, for better readability. (aitboudad)
This PR was merged into the 2.3 branch.

Discussion
----------

[Translation][Csv loader] remove unnecessary statements, for better readability.

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

Commits
-------

47b8c3e [Translation][Csv file] remove unnecessary statements, for better readability.
2015-10-27 08:09:41 -07:00
Fabien Potencier
e36fea8a63 fixed YAML files missing quotes when a string starts with @ 2015-10-26 13:58:42 +01:00
Nicolas Grekas
65da4d5104 [VarDumper] Fix anonymous class dumping 2015-10-25 18:17:38 +01:00
Fabien Potencier
2d588710ff minor #16309 [Form] remove type check in FormRegistry::getType (Tobion)
This PR was merged into the 2.3 branch.

Discussion
----------

[Form] remove type check in FormRegistry::getType

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

remove validation of `FormRegistry::getType` as `FormRegistry::hasType` does not validate either. So `hasType` currently triggers a PHP warning with a wrong argument.
also developers do not work with the registry directly anyway but through the factory. and the factory already validates the value. So this validation is useless in reality.

Commits
-------

d37b9e6 [Form] remove validation of FormRegistry::getType as FormRegistry::hasType does not validate either
2015-10-25 17:34:32 +01:00
Fabien Potencier
1bdd127938 fixed Twig deprecation notices 2015-10-24 22:26:02 +02:00
Tobias Schultze
f1d3e87a12 [Routing] mark internal classes 2015-10-24 14:07:54 +02:00
Nicolas Grekas
86b99ab64a Merge branch '2.3' into 2.7
* 2.3:
  [DoctrineBridge] Fix required guess of boolean fields
  [DI] don't use array_map to resolve services
  Remove dead code in the PropertyPath constructor
  [Process] Inherit env vars by default in PhpProcess
  [HttpFoundation] Fixes /0 subnet handling in IpUtils
  [Form] Simplify DateTimeToStringTransformer Avoid unneeded catch and re-throw of the same exception.
  [HttpKernel] Remove a duplicate test for the EsiFragmentRenderer

Conflicts:
	src/Symfony/Component/Process/Process.php
	src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorCollectionTest.php
	src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
2015-10-23 16:47:27 +02:00
Tobias Schultze
297a017f2e bug #16288 [Process] Inherit env vars by default in PhpProcess (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[Process] Inherit env vars by default in PhpProcess

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

This is the cause of our failures on Windows, where the SYSTEMROOT env var is mandatory for mcrypt_create_iv to work.
I don't know why the browserkit client is run with no env inheritance and this looks like a bug.
Same for PhpProcess emptying the env by default, this looks like a bug, esp. since the parent `Process` class defaults to inheriting the env.
Tests are not broken by this change.

Commits
-------

ab8cc29 [Process] Inherit env vars by default in PhpProcess
2015-10-23 14:28:10 +02:00
Abdellatif Ait boudad
47b8c3ef3e [Translation][Csv file] remove unnecessary statements, for better readability. 2015-10-23 09:44:09 +00:00