Commit Graph

91 Commits

Author SHA1 Message Date
Javier Eguiluz
f5daa0dea9 Added more exceptions to singularify method 2016-02-09 22:08:46 +01:00
Konstantin.Myakshin
8db691ab94 Static code analysis 2016-01-25 19:00:36 +02:00
Vladimir Reznichenko
81f81812a5 [2.3] Static Code Analysis for Components 2016-01-12 12:31:34 +01:00
Diego Saint Esteben
ce067e6460 Update copyright year 2016-01-01 23:53:47 -03:00
Alessandro Chitolina
d0c0294a7b [PropertyAccess] Reorder elements array after PropertyPathBuilder::replace
| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #17102
| License       | MIT
| Doc PR        |
2015-12-22 18:06:45 +01:00
Kévin Dunglas
6c9bb86b47 [PropertyAccess] minor: constants as internal and removed unused var 2015-12-15 02:21:26 +01:00
Nicolas Grekas
d4880c4785 Add missing exclusions from phpunit.xml.dist 2015-11-18 09:19:46 +01:00
Kévin Dunglas
916f9e0671 [PropertyAccess] Test access to dynamic properties 2015-11-04 20:02:36 +01:00
Kévin Dunglas
352dfb9890 [PropertyAccess] Fix dynamic property accessing. 2015-11-04 16:07:49 +01: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
Anne-Sophie Bachelard
65bef75bef added the new Composer exclude-from-classmap option 2015-10-30 12:48:51 -07:00
Christophe Coevoet
ad4d0eb79a Remove dead code in the PropertyPath constructor
Custom singulars have been removed from the component before merging it
in Symfony, but the code parsing them was only removed partially.
2015-10-22 09:58:49 +02:00
Nicolas Grekas
d1d0e041c2 [ci] SymfonyTestsListener is now auto-registered 2015-10-11 11:37:49 +02:00
Nicolas Grekas
4032c88a21 [ci] Enable collecting and replaying skipped tests 2015-10-10 10:46:02 +02:00
Pierre du Plessis
f24c678027 Fix PropertyAccessor modifying array in object when array key does not exist 2015-10-03 22:00:22 +02:00
Gábor Egyed
b03bcb34ec Fix license headers 2015-09-26 13:59:49 +02:00
Christian Flothmann
bf8a1ce2a2 link to https://symfony.com where possible 2015-05-01 16:06:45 +02:00
Per Modin
7c2b8755e8 [StringUtil] Fixed singularification of 'selfies' 2015-04-23 05:20:57 +02:00
Fabien Potencier
c74cd4adbb minor #14206 [2.3] SCA for Components - reference mismatches (kalessil)
This PR was squashed before being merged into the 2.3 branch (closes #14206).

Discussion
----------

[2.3] SCA for Components - reference mismatches

| 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

Static Code Analysis with Php Inspections (EA Extended), no functional changes:
- worked out some of reference mismatches

Commits
-------

f732659 [2.3] SCA for Components - reference mismatches
2015-04-15 17:09:40 +02:00
Vladimir Reznichenko
f732659219 [2.3] SCA for Components - reference mismatches 2015-04-15 17:09:34 +02:00
Nicolas Grekas
89f6e1e115 minor #14123 CS: Use "self" keyword instead of class name if possible (gharlan)
This PR was merged into the 2.3 branch.

Discussion
----------

CS: Use "self" keyword instead of class name if possible

| 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

Fixes provided by new fixer: https://github.com/FriendsOfPHP/PHP-CS-Fixer/pull/1116

If this pr is merged I would change the level of the fixer to `symfony`.

Commits
-------

e72128f CS: Use "self" keyword instead of class name if possible
2015-04-05 18:28:06 +02:00
Gerben Wijnja
6f5e95b762 [StringUtil] Fixed singularification of 'movies'
The word 'movies' was singularified to 'movy'. There seem to be only two
words ending in 'ovies', which are 'movies' and 'anchovies'. The singular
of the latter is 'anchovy'. All other words ending in 'vies' singularify to
'vy', so the word 'movies' is an exception to the general rule.
2015-04-03 01:10:26 +02:00
Gregor Harlan
e72128fa86 CS: Use "self" keyword instead of class name if possible 2015-04-01 21:28:50 +02:00
Dariusz Ruminski
2367f4a5a2 CS: Unary operators should be placed adjacent to their operands 2015-03-27 23:12:40 +01:00
Vladimir Reznichenko
f13b5f7583 [2.3] [Config] [Console] [DependencyInjection] [DomCrawler] [Form] [HttpKernel] [PropertyAccess] [Security] [Translation] [Yaml] static code analysis, code cleanup 2015-03-07 08:38:01 +01:00
Nicolas Grekas
8b02796e9e [2.3] require-dev PHPUnit bridge 2015-02-24 11:24:26 +01:00
Tobias Schultze
9cacecbf79 [PropertyAccess] the property path constructor already implements the type check 2015-02-19 13:40:39 +01:00
Tobias Schultze
4e11c0710b [PropertyAccess] refactor type checks to remove duplicate logic
and thus improve performance
2015-02-19 13:30:42 +01:00
Fabien Potencier
ee47901456 bug #13618 [PropertyAccess] Fixed invalid feedback -> foodback singularization (WouterJ)
This PR was merged into the 2.3 branch.

Discussion
----------

[PropertyAccess] Fixed invalid feedback -> foodback singularization

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

Commits
-------

bc50125 Fixed invalid feedback -> foodback singularization
2015-02-16 10:25:34 +01:00
Fabien Potencier
0fe4913079 renamed composer.phar to composer to be consistent with the Symfony docs 2015-02-08 08:41:14 +01:00
WouterJ
bc501259d1 Fixed invalid feedback -> foodback singularization 2015-02-07 11:37:57 +01:00
sarah khalil
50973bace1 Removed dead code and various cleaning 2015-01-21 21:14:55 +01:00
Warnar Boekkooi
9706b090c0 [PropertyAccessor] Added test to allow null value for a array 2015-01-09 15:57:01 +01:00
Nicolas Grekas
1d68ad3265 [2.3] Cleanup deprecations 2015-01-03 10:22:29 +01:00
Saro0h
5a121df42b Updated copyright to 2015 2015-01-01 13:56:52 +01:00
Graham Campbell
83c15db887 [2.3] CS And DocBlock Fixes 2014-12-22 16:58:09 +01:00
Fabien Potencier
405b881d86 minor #12964 [PropertyAccess] Added test to verify #5775 is fixed (aboks)
This PR was merged into the 2.3 branch.

Discussion
----------

[PropertyAccess] Added test to verify #5775 is fixed

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

Added regression test to verify #5775 has been fixed some time ago, so that it can be closed.

Commits
-------

45651c6 [PropertyAccess] Added test to verify #5775 is fixed
2014-12-20 16:49:05 +01:00
sarah khalil
ef4ae63e8a [Tests] Silenced all deprecations in tests for 2.3 2014-12-18 20:00:19 +01:00
Arnout Boks
45651c6e54 [PropertyAccess] Added test to verify #5775 is fixed 2014-12-12 23:14:04 +01:00
Jeroen Thora
9a0d5c3e2e Minor phpcs fixes 2014-12-07 18:50:06 +01:00
Graham Campbell
443307edc1 Docblock fixes 2014-11-30 13:33:44 +00:00
Fabien Potencier
369aebf431 fixed CS 2014-09-22 10:32:35 +02:00
Seb Koelen
9b550d6324 Plural fix 2014-08-05 09:05:24 +02:00
Fabien Potencier
99ee01d482 removed some .gitattributes that should have been removed a lot time ago 2014-08-04 12:32:26 +02:00
Christian Flothmann
9cd059ee1f remove unused imports 2014-07-26 20:24:56 +02:00
Christian Raue
afc4930900 removed defaults from PHPUnit configuration 2014-07-07 12:13:42 +02:00
Christian Raue
84b5581521 added XSD to PHPUnit configuration 2014-07-07 11:57:21 +02:00
Charles Sarrazin
c7a77c55b7 Fixed incorrect regular plural for -ves words
Fixes singularization for words like caves (cave), staves (staff).
2014-05-16 11:27:00 +02:00
Fabien Potencier
5b72e5ab04 minor #10717 unified return null usages (fabpot)
This PR was merged into the 2.3 branch.

Discussion
----------

unified return null usages

| Q             | A
| ------------- | ---
| License       | MIT

This PR unifies the way we return `null` from a function or method:

 * always use `return;` instead of `return null;` (the current code base uses both);
 * never use `return;` at the end of a function/method.

Commits
-------

d1d569b unified return null usages
2014-04-18 22:35:25 +02:00