Commit Graph

23096 Commits

Author SHA1 Message Date
Fabien Potencier 1e0af36c7d removed all @covers annotations 2015-11-01 14:17:24 -08:00
Kevin Bond be0a364c78 [Console] Add progress indicator helper 2015-11-01 12:44:27 +01:00
Fabien Potencier 64917c726d feature #16395 checkCredentials() force it to be an affirmative yes! (weaverryan)
This PR was squashed before being merged into the 2.8 branch (closes #16395).

Discussion
----------

checkCredentials() force it to be an affirmative yes!

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | no
| BC breaks?    | no (because 2.8 isn't released)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | n/a
| License       | MIT
| Doc PR        | n/a

This changes `GuardAuthenticatorInterface::checkCredentials()`: you now *must* return true in order for authentication to pass.

Before: You could do nothing (i.e. return null) and authentication would pass. You threw an AuthenticationException to cause a failure.

New: You *must* return `true` for authentication to pass. If you do nothing, we will throw a `BadCredentialsException` on your behalf. You can still throw your own exception.

This was a suggestion at symfony_live to make things more secure. I think it makes sense.

Commits
-------

14acadd checkCredentials() force it to be an affirmative yes!
2015-10-31 08:07:27 -07:00
Ryan Weaver 14acadda45 checkCredentials() force it to be an affirmative yes! 2015-10-31 08:07:17 -07: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 a15c9eb82d Merge branch '2.7' into 2.8
* 2.7:
  added the new Composer exclude-from-classmap option
  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:15:42 -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 dd9d076a0b JsonDescriptor - encode container params only once 2015-10-29 22:04:12 +01:00
Fabien Potencier e2022ce0f2 minor #16374 [Routing] fix docblock description for the build() method (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Routing] fix docblock description for the build() method

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

Commits
-------

ca32ed4 fix docblock description for the build() method
2015-10-29 11:52:05 -07:00
Christian Flothmann ca32ed4c02 fix docblock description for the build() method 2015-10-29 19:49:03 +01:00
Christian Flothmann 1c01ebc48d fix expected argument type docblock 2015-10-29 19:47:17 +01:00
Fabien Potencier eed6a68f91 minor #16380 Set back libxml settings after testings. (SpacePossum)
This PR was merged into the 2.3 branch.

Discussion
----------

Set back libxml settings after testings.

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

Tests that change the `libxml_use_internal_errors` should set back the flag to the previous setting when done testing.

Commits
-------

29d6969 Set back libxml settings after testings.
2015-10-29 11:36:05 -07:00
Tobias Schultze 5e666e60d9 Merge branch '2.7' into 2.8 2015-10-29 15:11:20 +01:00
Tobias Schultze 7f62133939 fix php requirement in 2.7 2015-10-29 15:10:52 +01:00
Tobias Schultze 62db290453 bug #16382 [Serializer] polyfill for json_last_error_msg is in php 5.5 (Tobion)
This PR was merged into the 2.8 branch.

Discussion
----------

[Serializer] polyfill for json_last_error_msg is in php 5.5

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

We need the polyfill for `json_last_error_msg` which is part of php 5.5, not 5.4.

Commits
-------

fb031f1 [Serializer] polyfill for json_last_error_msg is in php 5.5
2015-10-29 15:05:12 +01:00
Tobias Schultze fb031f1c9f [Serializer] polyfill for json_last_error_msg is in php 5.5 2015-10-29 13:47:37 +01:00
Tobias Schultze de71e26429 Merge branch '2.7' into 2.8 2015-10-29 11:46:19 +01:00
Tobias Schultze 9ea4bce052 Merge branch '2.3' into 2.7 2015-10-29 11:45:39 +01:00
Tobias Schultze 9bb0133f94 bug #16365 Add the PHP 7 polyfill for the random_bytes function (pierredup)
This PR was merged into the 2.8 branch.

Discussion
----------

Add the PHP 7 polyfill for the random_bytes function

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

Some classes (like the `SecureRandom` class) currently depends on the `random_bytes` function, which is only available in the PHP 7 polyfill

Commits
-------

8ab8ca0 Add the PHP 7 polyfill for the random_bytes function
2015-10-29 11:44:29 +01:00
Possum 29d696944c Set back libxml settings after testings. 2015-10-29 11:26:44 +01:00
Tobias Schultze 0c5141f683 minor #16371 [Yaml] escape backtick in markdown changelog (xabbuh)
This PR was merged into the 2.8 branch.

Discussion
----------

[Yaml] escape backtick in markdown changelog

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

Commits
-------

a613b0d [Yaml] escape backtick in markdown changelog
2015-10-28 22:57:49 +01:00
Tobias Schultze e62d98ef30 minor #16370 [HttpFoundation] don't call constructors on Mongo mock objects (xabbuh)
This PR was merged into the 2.3 branch.

Discussion
----------

[HttpFoundation] don't call constructors on Mongo mock objects

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

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.

Commits
-------

6541b8b don't call constructors on Mongo mock objects
2015-10-28 22:52:08 +01:00
Christian Flothmann a613b0d02e [Yaml] escape backtick in markdown changelog 2015-10-28 22:33:57 +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 1190fd07ea feature #16344 [WebProfilerBundle] Filter links in search results (Rvanlaak)
This PR was merged into the 2.8 branch.

Discussion
----------

[WebProfilerBundle] Filter links in search results

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

Quite often I find myself copy/pasting the results from the search results in the profiler search form. Adding links for this allows developers to narrow down to the proper profiler result fast.

Commits
-------

4bffacc [WebProfilerBundle] Filter links in search results
2015-10-28 08:50:50 -07:00
Richard 4bffacc942 [WebProfilerBundle] Filter links in search results 2015-10-28 16:47:07 +01:00
Pierre du Plessis 8ab8ca02eb Add the PHP 7 polyfill for the random_bytes function 2015-10-28 12:33:15 +02:00
Fabien Potencier 44b3f63f30 feature #16285 [Yaml] deprecated usage of @ and ` at the beginning of an unquoted string (fabpot)
This PR was merged into the 2.8 branch.

Discussion
----------

[Yaml] deprecated usage of @ and ` at the beginning of an unquoted string

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

Commits
-------

7fee29f [Yaml] deprecated usage of @ and ` at the beginning of an unquoted string
2015-10-27 22:26:40 -07:00
Fabien Potencier 7fee29fe6d [Yaml] deprecated usage of @ and ` at the beginning of an unquoted string 2015-10-27 21:32:32 -07:00
Fabien Potencier 2cdc025ca9 Merge branch '2.7' into 2.8
* 2.7:
  added missing quotes in YAML files
2015-10-27 21:31:18 -07:00
Fabien Potencier 713adb3938 added missing quotes in YAML files 2015-10-27 21:31:00 -07:00
Fabien Potencier dd61084ecb Merge branch '2.7' into 2.8
* 2.7:
  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:17:44 -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
Fabien Potencier 373dacda40 minor #16362 [HttpKernel] Add `@group time-sensitive` on some transient tests (nicolas-grekas)
This PR was merged into the 2.3 branch.

Discussion
----------

[HttpKernel] Add `@group time-sensitive` on some transient tests

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

Commits
-------

6a7d270 [HttpKernel] Add `@group time-sensitive` on some transient tests
2015-10-27 20:50:59 -07:00
Nicolas Grekas 6a7d270820 [HttpKernel] Add `@group time-sensitive` on some transient tests 2015-10-28 04:01:13 +01:00
Fabien Potencier dc13a99c7e Merge branch '2.7' into 2.8
* 2.7:
  added missing quotes in YAML files
  bumped Symfony version to 2.7.7
  updated VERSION for 2.7.6
  updated CHANGELOG for 2.7.6
2015-10-27 19:40:41 -07:00
Fabien Potencier 92b6d955ef added missing quotes in YAML files 2015-10-27 19:40:10 -07:00
Fabien Potencier 6557e85faf feature #16317 Rely on iconv and symfony/polyfill-* (nicolas-grekas)
This PR was merged into the 2.8 branch.

Discussion
----------

Rely on iconv and symfony/polyfill-*

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

Status: needs work
symfony/polyfill-* packages are not ready yet. Still, review welcomed.

Commits
-------

303f05b Rely on iconv and symfony/polyfill-*
2015-10-27 19:34:04 -07:00
Fabien Potencier bca80ae820 bug #16306 [DoctrineBridge] Fix issue which prevent the profiler to explain a query (Baachi)
This PR was submitted for the 2.8 branch but it was merged into the 2.3 branch instead (closes #16306).

Discussion
----------

[DoctrineBridge] Fix issue which prevent the profiler to explain a query

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

We currently develop a application which only use the doctrine/dbal and not the orm. And we run into a issue that the profiler can't explained any query.
This is because the `SQLLogger` will pass `null` instead of an empty array. And the `sanitizeQuery` method will currently transform this to `array(null)` which leads to an error.

I created an fork, so everyone can reproduce this.
https://github.com/Baachi/symfony-standard

Commits
-------

3490e98 [DoctrineBridge] Fix issue which prevent the profiler to explain a query
2015-10-27 19:18:52 -07:00
Baachi 3490e98226 [DoctrineBridge] Fix issue which prevent the profiler to explain a query 2015-10-27 19:18:52 -07:00
Nicolas Grekas 303f05baaf Rely on iconv and symfony/polyfill-* 2015-10-28 03:15:07 +01: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