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

Commit 1ef2927

Browse files
Merge pull request #35 from mcfedr/serializer
Add support for recursive types to Serializer
2 parents c5f7d3d + 3d64f75 commit 1ef2927

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

‎src/Type/Symfony/SerializerInterfaceDynamicReturnTypeExtension.php‎

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,14 @@ public function getTypeFromMethodCall(MethodReflection $methodReflection, Method
3434

3535
$objectName = $argType->getValue();
3636

37+
return $this->getType($objectName);
38+
}
39+
40+
private function getType(string $objectName): Type
41+
{
3742
if (substr($objectName, -2) === '[]') {
3843
// The key type is determined by the data
39-
return new ArrayType(new MixedType(false), newObjectType(substr($objectName, 0, -2)));
44+
return new ArrayType(new MixedType(false), $this->getType(substr($objectName, 0, -2)));
4045
}
4146

4247
return new ObjectType($objectName);

‎tests/Type/Symfony/SerializerInterfaceDynamicReturnTypeExtensionTest.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public function getContentProvider(): Iterator
2424
{
2525
yield ['$first', 'Bar'];
2626
yield ['$second', 'array<Bar>'];
27+
yield ['$third', 'array<array<Bar>>'];
2728
}
2829

2930
}

‎tests/Type/Symfony/serializer.php‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44

55
$first = $serializer->deserialize('bar', 'Bar', 'format');
66
$second = $serializer->deserialize('bar', 'Bar[]', 'format');
7+
$third = $serializer->deserialize('bar', 'Bar[][]', 'format');
78

89
die;

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /