mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-09 02:59:27 +03:00
Merge pull request #2039 from nelmio/GuilhemN-patch-1
Make ClassMetadataFactory optional
This commit is contained in:
commit
b42ac43beb
@ -144,7 +144,7 @@ final class NelmioApiDocExtension extends Extension implements PrependExtensionI
|
|||||||
));
|
));
|
||||||
|
|
||||||
$container->getDefinition('nelmio_api_doc.model_describers.object')
|
$container->getDefinition('nelmio_api_doc.model_describers.object')
|
||||||
->setArgument(4, $config['media_types']);
|
->setArgument(3, $config['media_types']);
|
||||||
|
|
||||||
// Add autoconfiguration for model describer
|
// Add autoconfiguration for model describer
|
||||||
$container->registerForAutoconfiguration(ModelDescriberInterface::class)
|
$container->registerForAutoconfiguration(ModelDescriberInterface::class)
|
||||||
|
@ -33,7 +33,7 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar
|
|||||||
|
|
||||||
/** @var PropertyInfoExtractorInterface */
|
/** @var PropertyInfoExtractorInterface */
|
||||||
private $propertyInfo;
|
private $propertyInfo;
|
||||||
/** @var ClassMetadataFactoryInterface */
|
/** @var ClassMetadataFactoryInterface|null */
|
||||||
private $classMetadataFactory;
|
private $classMetadataFactory;
|
||||||
/** @var Reader */
|
/** @var Reader */
|
||||||
private $doctrineReader;
|
private $doctrineReader;
|
||||||
@ -41,27 +41,27 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar
|
|||||||
private $propertyDescribers;
|
private $propertyDescribers;
|
||||||
/** @var string[] */
|
/** @var string[] */
|
||||||
private $mediaTypes;
|
private $mediaTypes;
|
||||||
/** @var NameConverterInterface[] */
|
/** @var NameConverterInterface|null */
|
||||||
private $nameConverter;
|
private $nameConverter;
|
||||||
/** @var bool */
|
/** @var bool */
|
||||||
private $useValidationGroups;
|
private $useValidationGroups;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
PropertyInfoExtractorInterface $propertyInfo,
|
PropertyInfoExtractorInterface $propertyInfo,
|
||||||
ClassMetadataFactoryInterface $classMetadataFactory,
|
|
||||||
Reader $reader,
|
Reader $reader,
|
||||||
iterable $propertyDescribers,
|
iterable $propertyDescribers,
|
||||||
array $mediaTypes,
|
array $mediaTypes,
|
||||||
NameConverterInterface $nameConverter = null,
|
NameConverterInterface $nameConverter = null,
|
||||||
bool $useValidationGroups = false
|
bool $useValidationGroups = false,
|
||||||
|
ClassMetadataFactoryInterface $classMetadataFactory = null
|
||||||
) {
|
) {
|
||||||
$this->propertyInfo = $propertyInfo;
|
$this->propertyInfo = $propertyInfo;
|
||||||
$this->classMetadataFactory = $classMetadataFactory;
|
|
||||||
$this->doctrineReader = $reader;
|
$this->doctrineReader = $reader;
|
||||||
$this->propertyDescribers = $propertyDescribers;
|
$this->propertyDescribers = $propertyDescribers;
|
||||||
$this->mediaTypes = $mediaTypes;
|
$this->mediaTypes = $mediaTypes;
|
||||||
$this->nameConverter = $nameConverter;
|
$this->nameConverter = $nameConverter;
|
||||||
$this->useValidationGroups = $useValidationGroups;
|
$this->useValidationGroups = $useValidationGroups;
|
||||||
|
$this->classMetadataFactory = $classMetadataFactory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function describe(Model $model, OA\Schema $schema)
|
public function describe(Model $model, OA\Schema $schema)
|
||||||
@ -89,9 +89,12 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar
|
|||||||
|
|
||||||
$schema->type = 'object';
|
$schema->type = 'object';
|
||||||
|
|
||||||
$mapping = $this->classMetadataFactory
|
$mapping = false;
|
||||||
->getMetadataFor($class)
|
if (null !== $this->classMetadataFactory) {
|
||||||
->getClassDiscriminatorMapping();
|
$mapping = $this->classMetadataFactory
|
||||||
|
->getMetadataFor($class)
|
||||||
|
->getClassDiscriminatorMapping();
|
||||||
|
}
|
||||||
|
|
||||||
if ($mapping && Generator::UNDEFINED === $schema->discriminator) {
|
if ($mapping && Generator::UNDEFINED === $schema->discriminator) {
|
||||||
$this->applyOpenApiDiscriminator(
|
$this->applyOpenApiDiscriminator(
|
||||||
|
@ -71,12 +71,12 @@
|
|||||||
<!-- Model Describers -->
|
<!-- Model Describers -->
|
||||||
<service id="nelmio_api_doc.model_describers.object" class="Nelmio\ApiDocBundle\ModelDescriber\ObjectModelDescriber" public="false">
|
<service id="nelmio_api_doc.model_describers.object" class="Nelmio\ApiDocBundle\ModelDescriber\ObjectModelDescriber" public="false">
|
||||||
<argument type="service" id="property_info" />
|
<argument type="service" id="property_info" />
|
||||||
<argument type="service" id="serializer.mapping.class_metadata_factory" />
|
|
||||||
<argument type="service" id="annotations.reader" />
|
<argument type="service" id="annotations.reader" />
|
||||||
<argument type="tagged" tag="nelmio_api_doc.object_model.property_describer" />
|
<argument type="tagged" tag="nelmio_api_doc.object_model.property_describer" />
|
||||||
<argument />
|
<argument />
|
||||||
<argument type="service" id="serializer.name_converter.metadata_aware" on-invalid="ignore" />
|
<argument type="service" id="serializer.name_converter.metadata_aware" on-invalid="ignore" />
|
||||||
<argument>%nelmio_api_doc.use_validation_groups%</argument>
|
<argument>%nelmio_api_doc.use_validation_groups%</argument>
|
||||||
|
<argument type="service" id="serializer.mapping.class_metadata_factory" on-invalid="ignore" />
|
||||||
|
|
||||||
<tag name="nelmio_api_doc.model_describer" />
|
<tag name="nelmio_api_doc.model_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user