mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-10 11:39:25 +03:00
Fix some bugs and confings
This commit is contained in:
parent
f9eacee3fd
commit
2de03859c0
@ -37,11 +37,11 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar
|
|||||||
public function __construct(
|
public function __construct(
|
||||||
PropertyInfoExtractorInterface $propertyInfo,
|
PropertyInfoExtractorInterface $propertyInfo,
|
||||||
Reader $reader,
|
Reader $reader,
|
||||||
array $propertyDescribers
|
$propertyDescribers
|
||||||
) {
|
) {
|
||||||
$this->propertyInfo = $propertyInfo;
|
$this->propertyInfo = $propertyInfo;
|
||||||
$this->propertyDescribers = $propertyDescribers;
|
|
||||||
$this->doctrineReader = $reader;
|
$this->doctrineReader = $reader;
|
||||||
|
$this->propertyDescribers = $propertyDescribers;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function describe(Model $model, Schema $schema)
|
public function describe(Model $model, Schema $schema)
|
||||||
@ -93,6 +93,12 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar
|
|||||||
}
|
}
|
||||||
|
|
||||||
$type = $types[0];
|
$type = $types[0];
|
||||||
|
$this->describeProperty($type, $model, $property);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function describeProperty(Type $type, Model $model, Schema $property)
|
||||||
|
{
|
||||||
foreach ($this->propertyDescribers as $propertyDescriber) {
|
foreach ($this->propertyDescribers as $propertyDescriber) {
|
||||||
if ($propertyDescriber instanceof ModelRegistryAwareInterface) {
|
if ($propertyDescriber instanceof ModelRegistryAwareInterface) {
|
||||||
$propertyDescriber->setModelRegistry($this->modelRegistry);
|
$propertyDescriber->setModelRegistry($this->modelRegistry);
|
||||||
@ -100,13 +106,14 @@ class ObjectModelDescriber implements ModelDescriberInterface, ModelRegistryAwar
|
|||||||
if ($propertyDescriber->supports($type)) {
|
if ($propertyDescriber->supports($type)) {
|
||||||
$propertyDescriber->describe($type, $property, $model->getGroups());
|
$propertyDescriber->describe($type, $property, $model->getGroups());
|
||||||
|
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new \Exception(sprintf('Type "%s" is not supported in %s::$%s. You may use the `@SWG\Property(type="")` annotation to specify it manually.', $type->getBuiltinType(), $class, $propertyName));
|
throw new \Exception(sprintf('Type "%s" is not supported in %s::$%s. You may use the `@SWG\Property(type="")` annotation to specify it manually.', $type->getBuiltinType(), $class, $propertyName));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public function supports(Model $model): bool
|
public function supports(Model $model): bool
|
||||||
{
|
{
|
||||||
|
@ -23,7 +23,7 @@ class ArrayPropertyDescriber implements PropertyDescriberInterface, ModelRegistr
|
|||||||
/** @var PropertyDescriberInterface[] */
|
/** @var PropertyDescriberInterface[] */
|
||||||
private $propertyDescribers;
|
private $propertyDescribers;
|
||||||
|
|
||||||
public function __construct(array $propertyDescribers)
|
public function __construct($propertyDescribers = [])
|
||||||
{
|
{
|
||||||
$this->propertyDescribers = $propertyDescribers;
|
$this->propertyDescribers = $propertyDescribers;
|
||||||
}
|
}
|
||||||
|
@ -12,11 +12,12 @@
|
|||||||
namespace Nelmio\ApiDocBundle\PropertyDescriber;
|
namespace Nelmio\ApiDocBundle\PropertyDescriber;
|
||||||
|
|
||||||
use EXSyst\Component\Swagger\Schema;
|
use EXSyst\Component\Swagger\Schema;
|
||||||
|
use Nelmio\ApiDocBundle\Describer\ModelRegistryAwareInterface;
|
||||||
use Nelmio\ApiDocBundle\Describer\ModelRegistryAwareTrait;
|
use Nelmio\ApiDocBundle\Describer\ModelRegistryAwareTrait;
|
||||||
use Nelmio\ApiDocBundle\Model\Model;
|
use Nelmio\ApiDocBundle\Model\Model;
|
||||||
use Symfony\Component\PropertyInfo\Type;
|
use Symfony\Component\PropertyInfo\Type;
|
||||||
|
|
||||||
class ObjectPropertyDescriber implements PropertyDescriberInterface
|
class ObjectPropertyDescriber implements PropertyDescriberInterface, ModelRegistryAwareInterface
|
||||||
{
|
{
|
||||||
use ModelRegistryAwareTrait;
|
use ModelRegistryAwareTrait;
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
<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="annotation_reader" />
|
<argument type="service" id="annotation_reader" />
|
||||||
<argument type="tagged_iterator" id="nelmio_api_doc.property_describer" />
|
<argument type="tagged_iterator" tag="nelmio_api_doc.property_describer" />
|
||||||
|
|
||||||
<tag name="nelmio_api_doc.model_describer" />
|
<tag name="nelmio_api_doc.model_describer" />
|
||||||
</service>
|
</service>
|
||||||
@ -51,31 +51,33 @@
|
|||||||
</service>
|
</service>
|
||||||
|
|
||||||
<!-- Property Describers -->
|
<!-- Property Describers -->
|
||||||
<service id="nelmio_api_doc.property_describers.array" class="Nelmio\ApiDocBundle\ModelDescriber\ArrayPropertyDescriber" public="false">
|
<service id="nelmio_api_doc.property_describers.array" class="Nelmio\ApiDocBundle\PropertyDescriber\ArrayPropertyDescriber" public="false">
|
||||||
|
<argument type="tagged_iterator" tag="nelmio_api_doc.property_describer" />
|
||||||
|
|
||||||
<tag name="nelmio_api_doc.property_describer" />
|
<tag name="nelmio_api_doc.property_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="nelmio_api_doc.property_describers.boolean" class="Nelmio\ApiDocBundle\ModelDescriber\BooleanPropertyDescriber" public="false">
|
<service id="nelmio_api_doc.property_describers.boolean" class="Nelmio\ApiDocBundle\PropertyDescriber\BooleanPropertyDescriber" public="false">
|
||||||
<tag name="nelmio_api_doc.property_describer" />
|
<tag name="nelmio_api_doc.property_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="nelmio_api_doc.property_describers.float" class="Nelmio\ApiDocBundle\ModelDescriber\FloatPropertyDescriber" public="false">
|
<service id="nelmio_api_doc.property_describers.float" class="Nelmio\ApiDocBundle\PropertyDescriber\FloatPropertyDescriber" public="false">
|
||||||
<tag name="nelmio_api_doc.property_describer" />
|
<tag name="nelmio_api_doc.property_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="nelmio_api_doc.property_describers.integer" class="Nelmio\ApiDocBundle\ModelDescriber\IntegerPropertyDescriber" public="false">
|
<service id="nelmio_api_doc.property_describers.integer" class="Nelmio\ApiDocBundle\PropertyDescriber\IntegerPropertyDescriber" public="false">
|
||||||
<tag name="nelmio_api_doc.property_describer" />
|
<tag name="nelmio_api_doc.property_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="nelmio_api_doc.property_describers.string" class="Nelmio\ApiDocBundle\ModelDescriber\StringPropertyDescriber" public="false">
|
<service id="nelmio_api_doc.property_describers.string" class="Nelmio\ApiDocBundle\PropertyDescriber\StringPropertyDescriber" public="false">
|
||||||
<tag name="nelmio_api_doc.property_describer" />
|
<tag name="nelmio_api_doc.property_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="nelmio_api_doc.property_describers.date_time" class="Nelmio\ApiDocBundle\ModelDescriber\DateTimePropertyDescriber" public="false">
|
<service id="nelmio_api_doc.property_describers.date_time" class="Nelmio\ApiDocBundle\PropertyDescriber\DateTimePropertyDescriber" public="false">
|
||||||
<tag name="nelmio_api_doc.property_describer" />
|
<tag name="nelmio_api_doc.property_describer" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service id="nelmio_api_doc.property_describers.object" class="Nelmio\ApiDocBundle\ModelDescriber\ObjectPropertyDescriber" public="false">
|
<service id="nelmio_api_doc.property_describers.object" class="Nelmio\ApiDocBundle\PropertyDescriber\ObjectPropertyDescriber" public="false">
|
||||||
<tag name="nelmio_api_doc.property_describer" priority="-1000" />
|
<tag name="nelmio_api_doc.property_describer" priority="-1000" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user