Commit Graph

25 Commits

Author SHA1 Message Date
Fabien Potencier
d051ef42b3 Merge branch '2.8' into 3.2
* 2.8:
  Misspelled word
  Display a better error design when the toolbar cannot be displayed
  do not validate empty values
  [Console] fix description of INF default values
  [PropertyAccess] Fix TypeError discard
  [Validator] Throw exception on Comparison constraints null options
  Identify tty tests in Component/Process
  [Security] Fix annotation
2017-07-03 11:06:20 +03:00
Kévin Dunglas
e0c5040398
[PropertyAccess] Fix TypeError discard 2017-06-30 11:24:55 +02:00
tsufeki
45b961de2e [PropertyAccess] Do not silence TypeErrors from client code. 2017-06-07 23:00:20 +02:00
Fabien Potencier
e8895ad102 Merge branch '2.8' into 3.1
* 2.8:
  always check for all fields to be mapped
  clarify exception when no args are configured
  [PropertyAccess] Handle interfaces in the invalid argument exception
  [DI] Fix defaults overriding empty strings in AutowirePass
  [Debug] Workaround "null" $context
  [Debug] Remove $context arg from handleError(), preparing for PHP 7.2
  [Routing] Fix BC break in AnnotationClassLoader defaults attributes handling
  Fix tests with ICU 57.1
  Fix the condition checking the minimum ICU version
2017-01-27 16:04:57 -08:00
Thomas Calvet
be52b39031 [PropertyAccess] Handle interfaces in the invalid argument exception 2017-01-25 07:13:54 -08:00
Nicolas Grekas
d53874b747 Merge branch '3.0'
* 3.0: (22 commits)
  Fix backport
  [travis] Upgrade phpunit wrapper & hirak/prestissimo
  [Bridge\PhpUnit] Workaround old phpunit bug, no colors in weak mode, add tests
  [PropertyAccess] Fix isPropertyWritable not using the reflection cache
  [PropertyAccess] Backport fixes from 2.7
  [FrameworkBundle][2.8] Add tests for the Controller class
  [DependencyInjection] Update changelog
  Added WebProfiler toolbar ajax panel table layout css.
  [Validator] use correct term for a property in docblock (not "option")
  [Routing] small refactoring for scheme requirement
  [PropertyAccess] Remove most ref mismatches to improve perf
  [PropertyInfo] Support Doctrine custom mapping type in DoctrineExtractor
  [Validator] EmailValidator cannot extract hostname if email contains multiple @ symbols
  [NumberFormatter] Fix invalid numeric literal on PHP 7
  [Process] fix docblock syntax
  use the clock mock for progress indicator tests
  Use XML_ELEMENT_NODE in nodeType check
  [PropertyAccess] Reduce overhead of UnexpectedTypeException tracking
  [PropertyAccess] Throw an UnexpectedTypeException when the type do not match
  [FrameworkBundle] Add tests for the Controller class
  ...

Conflicts:
	src/Symfony/Bridge/PhpUnit/SymfonyTestsListener.php
	src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTest.php
	src/Symfony/Bundle/FrameworkBundle/composer.json
	src/Symfony/Component/PropertyAccess/PropertyAccessor.php
	src/Symfony/Component/PropertyAccess/PropertyAccessorInterface.php
	src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
2016-03-23 14:33:04 +01:00
Nicolas Grekas
86c0a17721 Merge branch '2.3' into 2.7
* 2.3:
  [Validator] use correct term for a property in docblock (not "option")
  [PropertyAccess] Remove most ref mismatches to improve perf
  [Validator] EmailValidator cannot extract hostname if email contains multiple @ symbols
  [NumberFormatter] Fix invalid numeric literal on PHP 7
  Use XML_ELEMENT_NODE in nodeType check
  [PropertyAccess] Reduce overhead of UnexpectedTypeException tracking
  [PropertyAccess] Throw an UnexpectedTypeException when the type do not match
  [FrameworkBundle] Add tests for the Controller class

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Tests/Controller/ControllerTest.php
	src/Symfony/Component/Intl/NumberFormatter/NumberFormatter.php
	src/Symfony/Component/PropertyAccess/PropertyAccessor.php
	src/Symfony/Component/PropertyAccess/PropertyAccessorInterface.php
	src/Symfony/Component/PropertyAccess/PropertyPath.php
	src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
	src/Symfony/Component/Validator/Constraints/EmailValidator.php
2016-03-22 09:55:46 +01:00
Kévin Dunglas
10c8d5eadb [PropertyAccess] Throw an UnexpectedTypeException when the type do not match 2016-03-17 09:11:03 +01:00
Kévin Dunglas
e70fdbc8cb [PropertyAccess] Throw an InvalidArgumentException when the type do not match 2016-02-26 07:20:38 +01:00
Fabien Potencier
c0e4495b66 fixes CS 2015-08-24 09:13:45 +02:00
Nicolas Macherey
1dcca1a8df [PropertyAccess] setValue & isWritable loops must only stops on reference and object. References can also be arrays and if the loop stops the value is never set in the object. (Breaks since 2.6.5 commit e3e4695)
| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets |
| License       | MIT
| Doc PR        |

This merge request fixes the following cases taht was working with version previous to 2.6.5:

A class with a property myArray which can be a multi dimensional array can now be accesed using myArray[foo][bar][baz]
Previously only myArray[foo] was working. The break is since commit e3e4695

This commit adds additionnal testing, and is rebased from 2.6 upstream
2015-07-10 06:45:33 +02:00
Jérôme Vieilledent
8b8feff246 [PropertyAccess] Fix setting public property on a class having a magic getter
| 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

When using PropertyAccessor with an object having both a public property
and a magic getter, and one wants to update this property,
PropertyAccessor may lose the property reference.
This occurs when the public property value is a hash:

```php
class Foo
{
    /**
     * Example: $this->someProperty['foo']['bar'] = 'baz'
     * @var array
     */
    public $someProperty;

    public function __get($name)
    {
        // ...
    }
}

$obj = new Foo();
$obj->someProperty = ['foo' => ['bar' => 'some_value']];

$propertyAccessor->setValue($obj, 'someProperty[foo][bar]', 'another_value');

echo $obj->someProperty['foo']['bar'];
// Before this patch: 'some_value' => fail
// After this patch: 'another_value' => correct
```

Furthermore, public properties are always used before `__get()` by PHP.

This bug is visible since v2.6.5 as d733a887 changed the way
`setValue()` works.
2015-05-11 17:09:39 +02:00
Philip Frank
d733a887df [PropertyAccess] stop overwriting once a reference is reached (3rd) 2015-03-03 20:22:08 +01:00
Fabien Potencier
51aa13ad6d Merge branch '2.3' into 2.5
* 2.3:
  [Config] adds missing « use » statement for InvalidTypeException type hint in documentation.
  [Config] fixes broken unit test on ArrayNode class.
  fixed CS
  [Security] Delete old session on auth strategy migrate
  update required minimum TwigBridge version
  Very minor grammar fix in error message
  [Tests] Silenced all deprecations in tests for 2.3
  BinaryFileResponse - add missing newline
  fixed CS
  add a limit and a test to FlattenExceptionTest.
  CS: There should be no empty lines following phpdocs
  [FrameworkBundle] fix cache:clear command
  [2.3] Docblocks should not be followed by a blank line
  Fix return phpdoc
  [PropertyAccess] Added test to verify #5775 is fixed

Conflicts:
	src/Symfony/Bundle/TwigBundle/composer.json
	src/Symfony/Component/PropertyAccess/Tests/PropertyAccessorTest.php
	src/Symfony/Component/Security/Core/Tests/Validator/Constraints/UserPasswordValidatorTest.php
2014-12-20 17:01:23 +01:00
Arnout Boks
45651c6e54 [PropertyAccess] Added test to verify #5775 is fixed 2014-12-12 23:14:04 +01:00
Bernhard Schussek
b712ac1174 [PropertyAccess] Simplified code 2014-10-22 19:15:20 +02:00
Bernhard Schussek
fef698e22f [PropertyAccess] Fixed getValue() when accessing non-existing indices of ArrayAccess implementations 2014-05-21 15:18:38 +02:00
umpirsky
0cc9746f87 Fix issue #10867 2014-05-09 17:32:36 +02:00
Fabien Potencier
8ef8a1d289 unified return null usages 2014-04-18 22:40:52 +02:00
Eduardo García Sanz
6157be0a1d Wrong number of parameters
Wrong number of parameters

Wrong number of parameters

Wrong number of parameters
2014-04-01 14:30:09 +02:00
Bernhard Schussek
0488389d95 [PropertyAccess] Refactored PropertyAccessorTest 2014-03-28 15:56:23 +01:00
Fabien Potencier
4c0bfd3313 fixed CS 2013-07-01 14:24:43 +02:00
jaugustin
a785baaa64 [PropertyAccess] add support for magic call, related to #4683
add a new propertyAccessorBuilder to enable / disable the use of __call by
the PropertyAccessor
2013-04-21 19:34:36 +02:00
Oleg Zinchenko
663c796458 Property accessor custom array object fix 2013-03-11 18:33:57 +01:00
Bernhard Schussek
1bae7b242c [PropertyAccess] Extracted PropertyAccess component out of Form 2013-01-10 09:49:37 +01:00