diff --git a/src/Swagger/SwaggerComponents.php b/src/Swagger/SwaggerComponents.php index f48a35e..0413b6c 100644 --- a/src/Swagger/SwaggerComponents.php +++ b/src/Swagger/SwaggerComponents.php @@ -26,7 +26,7 @@ class SwaggerComponents public function __construct( protected SwaggerCommon $common, protected PropertyManager $propertyManager, - protected GenerateProxyClass $generateProxyClass, + protected ?GenerateProxyClass $generateProxyClass, ) { } @@ -57,7 +57,7 @@ public function getProperties(string $className): array $propertyManager = $this->propertyManager->getProperty($className, $fieldName); // 适配ApiVariable注解 - $sourceClassName = $this->generateProxyClass->getSourceClassname($className) ?? $className; + $sourceClassName = $this->generateProxyClass?->getSourceClassname($className) ?? $className; $apiModelProperty = ApiAnnotation::getProperty($sourceClassName, $fieldName, ApiModelProperty::class) ?: new ApiModelProperty(); /** @var In $inAnnotation */ diff --git a/tests/SwaggerSchemasTest.php b/tests/SwaggerSchemasTest.php index ec21f63..e71333e 100644 --- a/tests/SwaggerSchemasTest.php +++ b/tests/SwaggerSchemasTest.php @@ -9,10 +9,8 @@ use Hyperf\Di\Annotation\AnnotationCollector; use Hyperf\Di\MethodDefinitionCollector; use Hyperf\Di\MethodDefinitionCollectorInterface; -use Hyperf\DTO\DtoCommon; use Hyperf\DTO\Scan\PropertyEnum; use Hyperf\DTO\Scan\PropertyManager; -use Hyperf\DTO\Scan\Scan; use HyperfTest\ApiDocs\Request\Address; use HyperfTest\ApiDocs\Request\DemoBodyRequest; use Mockery as m; @@ -39,7 +37,7 @@ public function testSchemas() // dto $container->shouldReceive('get')->with(MethodDefinitionCollectorInterface::class)->andReturn(new MethodDefinitionCollector()); $swaggerCommon = new SwaggerCommon(); - $swaggerComponents = new SwaggerComponents($swaggerCommon,new PropertyManager($swaggerCommon,new PropertyEnum())); + $swaggerComponents = new SwaggerComponents($swaggerCommon, new PropertyManager($swaggerCommon, new PropertyEnum()), null); $schemas = $swaggerComponents->generateSchemas($classname); $properties = $schemas->properties; $this->assertEquals($properties[0]->property, 'int');