Skip to content

Commit ea97dd5

Browse files
authored
Merge pull request #895 from dunglas/metadata_factory
Inject serializer's class metadata factory
2 parents 4e6d782 + d999f7b commit ea97dd5

File tree

5 files changed

+8
-3
lines changed

5 files changed

+8
-3
lines changed

src/Bridge/Symfony/Bundle/Resources/config/api.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@
6565
<argument type="service" id="api_platform.resource_class_resolver" />
6666
<argument type="service" id="api_platform.property_accessor" />
6767
<argument type="service" id="api_platform.name_converter" on-invalid="ignore" />
68+
<argument type="service" id="serializer.mapping.class_metadata_factory" on-invalid="ignore" />
6869

6970
<tag name="serializer.normalizer" />
7071
</service>

src/Bridge/Symfony/Bundle/Resources/config/hal.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<argument type="service" id="api_platform.resource_class_resolver" />
3434
<argument type="service" id="api_platform.property_accessor" />
3535
<argument type="service" id="api_platform.name_converter" on-invalid="ignore" />
36+
<argument type="service" id="serializer.mapping.class_metadata_factory" on-invalid="ignore" />
3637

3738
<tag name="serializer.normalizer" priority="8" />
3839
</service>

src/Bridge/Symfony/Bundle/Resources/config/jsonld.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<argument type="service" id="api_platform.jsonld.context_builder" />
2525
<argument type="service" id="api_platform.property_accessor" />
2626
<argument type="service" id="api_platform.name_converter" on-invalid="ignore" />
27+
<argument type="service" id="serializer.mapping.class_metadata_factory" on-invalid="ignore" />
2728

2829
<tag name="serializer.normalizer" priority="8" />
2930
</service>

src/JsonLd/Serializer/ItemNormalizer.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use ApiPlatform\Core\Serializer\AbstractItemNormalizer;
2222
use ApiPlatform\Core\Serializer\ContextTrait;
2323
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
24+
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
2425
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
2526

2627
/**
@@ -38,7 +39,7 @@ final class ItemNormalizer extends AbstractItemNormalizer
3839
private $resourceMetadataFactory;
3940
private $contextBuilder;
4041

41-
public function __construct(ResourceMetadataFactoryInterface $resourceMetadataFactory, PropertyNameCollectionFactoryInterface $propertyNameCollectionFactory, PropertyMetadataFactoryInterface $propertyMetadataFactory, IriConverterInterface $iriConverter, ResourceClassResolverInterface $resourceClassResolver, ContextBuilderInterface $contextBuilder, PropertyAccessorInterface $propertyAccessor = null, NameConverterInterface $nameConverter = null)
42+
public function __construct(ResourceMetadataFactoryInterface $resourceMetadataFactory, PropertyNameCollectionFactoryInterface $propertyNameCollectionFactory, PropertyMetadataFactoryInterface $propertyMetadataFactory, IriConverterInterface $iriConverter, ResourceClassResolverInterface $resourceClassResolver, ContextBuilderInterface $contextBuilder, PropertyAccessorInterface $propertyAccessor = null, NameConverterInterface $nameConverter = null, ClassMetadataFactoryInterface $classMetadataFactory = null)
4243
{
4344
parent::__construct($propertyNameCollectionFactory, $propertyMetadataFactory, $iriConverter, $resourceClassResolver, $propertyAccessor, $nameConverter);
4445

src/Serializer/AbstractItemNormalizer.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
use Symfony\Component\PropertyAccess\PropertyAccess;
2222
use Symfony\Component\PropertyAccess\PropertyAccessorInterface;
2323
use Symfony\Component\PropertyInfo\Type;
24+
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface;
2425
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
2526
use Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer;
2627

@@ -39,9 +40,9 @@ abstract class AbstractItemNormalizer extends AbstractObjectNormalizer
3940
protected $resourceClassResolver;
4041
protected $propertyAccessor;
4142

42-
public function __construct(PropertyNameCollectionFactoryInterface $propertyNameCollectionFactory, PropertyMetadataFactoryInterface $propertyMetadataFactory, IriConverterInterface $iriConverter, ResourceClassResolverInterface $resourceClassResolver, PropertyAccessorInterface $propertyAccessor = null, NameConverterInterface $nameConverter = null)
43+
public function __construct(PropertyNameCollectionFactoryInterface $propertyNameCollectionFactory, PropertyMetadataFactoryInterface $propertyMetadataFactory, IriConverterInterface $iriConverter, ResourceClassResolverInterface $resourceClassResolver, PropertyAccessorInterface $propertyAccessor = null, NameConverterInterface $nameConverter = null, ClassMetadataFactoryInterface $classMetadataFactory = null)
4344
{
44-
parent::__construct(null, $nameConverter);
45+
parent::__construct($classMetadataFactory, $nameConverter);
4546

4647
$this->propertyNameCollectionFactory = $propertyNameCollectionFactory;
4748
$this->propertyMetadataFactory = $propertyMetadataFactory;

0 commit comments

Comments
 (0)