From bb19ed75681f32b6c5a772e7496b477e2f118c12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Ben=C4=8Do?= Date: Tue, 18 Feb 2020 21:08:48 +0100 Subject: [PATCH] Revert ModelDescriberAwareInterface --- ModelDescriber/ObjectModelDescriber.php | 3 +++ PropertyDescriber/ArrayPropertyDescriber.php | 9 ++++++++- PropertyDescriber/ObjectPropertyDescriber.php | 15 ++++----------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/ModelDescriber/ObjectModelDescriber.php b/ModelDescriber/ObjectModelDescriber.php index 500ef8a..d5f293c 100644 --- a/ModelDescriber/ObjectModelDescriber.php +++ b/ModelDescriber/ObjectModelDescriber.php @@ -100,6 +100,9 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar private function describeProperty(Type $type, Model $model, Schema $property, string $propertyName) { foreach ($this->propertyDescribers as $propertyDescriber) { + if ($propertyDescriber instanceof ModelRegistryAwareInterface) { + $propertyDescriber->setModelRegistry($this->modelRegistry); + } if ($propertyDescriber->supports($type)) { $propertyDescriber->describe($type, $property, $model->getGroups()); diff --git a/PropertyDescriber/ArrayPropertyDescriber.php b/PropertyDescriber/ArrayPropertyDescriber.php index 0516f24..1882d7f 100644 --- a/PropertyDescriber/ArrayPropertyDescriber.php +++ b/PropertyDescriber/ArrayPropertyDescriber.php @@ -12,10 +12,14 @@ namespace Nelmio\ApiDocBundle\PropertyDescriber; use EXSyst\Component\Swagger\Schema; +use Nelmio\ApiDocBundle\Describer\ModelRegistryAwareInterface; +use Nelmio\ApiDocBundle\Describer\ModelRegistryAwareTrait; use Symfony\Component\PropertyInfo\Type; -class ArrayPropertyDescriber implements PropertyDescriberInterface +class ArrayPropertyDescriber implements PropertyDescriberInterface, ModelRegistryAwareInterface { + use ModelRegistryAwareTrait; + /** @var PropertyDescriberInterface[] */ private $propertyDescribers; @@ -35,6 +39,9 @@ class ArrayPropertyDescriber implements PropertyDescriberInterface $property = $property->getItems(); foreach ($this->propertyDescribers as $propertyDescriber) { + if ($propertyDescriber instanceof ModelRegistryAwareInterface) { + $propertyDescriber->setModelRegistry($this->modelRegistry); + } if ($propertyDescriber->supports($type)) { $propertyDescriber->describe($type, $property, $groups); diff --git a/PropertyDescriber/ObjectPropertyDescriber.php b/PropertyDescriber/ObjectPropertyDescriber.php index 4a95d9a..cc9619e 100644 --- a/PropertyDescriber/ObjectPropertyDescriber.php +++ b/PropertyDescriber/ObjectPropertyDescriber.php @@ -12,21 +12,14 @@ namespace Nelmio\ApiDocBundle\PropertyDescriber; use EXSyst\Component\Swagger\Schema; +use Nelmio\ApiDocBundle\Describer\ModelRegistryAwareInterface; +use Nelmio\ApiDocBundle\Describer\ModelRegistryAwareTrait; use Nelmio\ApiDocBundle\Model\Model; -use Nelmio\ApiDocBundle\Model\ModelRegistry; use Symfony\Component\PropertyInfo\Type; -class ObjectPropertyDescriber implements PropertyDescriberInterface +class ObjectPropertyDescriber implements PropertyDescriberInterface, ModelRegistryAwareInterface { - /** - * @var ModelRegistry - */ - private $modelRegistry; - - public function __construct(ModelRegistry $modelRegistry) - { - $this->modelRegistry = $modelRegistry; - } + use ModelRegistryAwareTrait; public function describe(Type $type, Schema $property, array $groups = null) {