Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9660e6b

Browse files
committed
bug#37392 [Validator] fix handling typed properties as constraint options (xabbuh)
This PR was merged into the 3.4 branch.Discussion----------[Validator] fix handling typed properties as constraint options| Q | A| ------------- | ---| Branch? | 3.4| Bug fix? | yes| New feature? | no| Deprecations? | no| Tickets |Fix#37387| License | MIT| Doc PR |Commits-------4a66a60 fix handling typed properties as constraint options
2 parents40152c3 +4a66a60 commit9660e6b

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed

‎src/Symfony/Component/Validator/Constraint.php‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ public function __construct($options = null)
108108
$defaultOption =$this->getDefaultOption();
109109
$invalidOptions = [];
110110
$missingOptions =array_flip((array)$this->getRequiredOptions());
111-
$knownOptions =get_object_vars($this);
111+
$knownOptions =get_class_vars(static::class);
112112

113113
// The "groups" option is added to the object lazily
114114
$knownOptions['groups'] =true;

‎src/Symfony/Component/Validator/Tests/ConstraintTest.php‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,13 @@
1313

1414
usePHPUnit\Framework\TestCase;
1515
useSymfony\Component\Validator\Constraint;
16+
useSymfony\Component\Validator\Exception\InvalidOptionsException;
1617
useSymfony\Component\Validator\Tests\Fixtures\ClassConstraint;
1718
useSymfony\Component\Validator\Tests\Fixtures\ConstraintA;
1819
useSymfony\Component\Validator\Tests\Fixtures\ConstraintB;
1920
useSymfony\Component\Validator\Tests\Fixtures\ConstraintC;
21+
useSymfony\Component\Validator\Tests\Fixtures\ConstraintWithStaticProperty;
22+
useSymfony\Component\Validator\Tests\Fixtures\ConstraintWithTypedProperty;
2023
useSymfony\Component\Validator\Tests\Fixtures\ConstraintWithValue;
2124
useSymfony\Component\Validator\Tests\Fixtures\ConstraintWithValueAsDefault;
2225

@@ -245,4 +248,25 @@ public function testAnnotationSetUndefinedDefaultOption()
245248
$this->expectExceptionMessage('No default option is configured for constraint "Symfony\Component\Validator\Tests\Fixtures\ConstraintB".');
246249
newConstraintB(['value' =>1]);
247250
}
251+
252+
publicfunctiontestStaticPropertiesAreNoOptions()
253+
{
254+
$this->expectException(InvalidOptionsException::class);
255+
256+
newConstraintWithStaticProperty([
257+
'foo' =>'bar',
258+
]);
259+
}
260+
261+
/**
262+
* @requires PHP 7.4
263+
*/
264+
publicfunctiontestSetTypedProperty()
265+
{
266+
$constraint =newConstraintWithTypedProperty([
267+
'foo' =>'bar',
268+
]);
269+
270+
$this->assertSame('bar',$constraint->foo);
271+
}
248272
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespaceSymfony\Component\Validator\Tests\Fixtures;
4+
5+
useSymfony\Component\Validator\Constraint;
6+
7+
class ConstraintWithStaticPropertyextends Constraint
8+
{
9+
publicstatic$foo;
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
namespaceSymfony\Component\Validator\Tests\Fixtures;
4+
5+
useSymfony\Component\Validator\Constraint;
6+
7+
class ConstraintWithTypedPropertyextends Constraint
8+
{
9+
publicstring$foo;
10+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp