OpenAPI PHP客户端在使用anyOf时出现致命错误

OpenAPI PHP客户端在使用anyOf时出现致命错误,php,polymorphism,swagger,openapi,openapi-generator,Php,Polymorphism,Swagger,Openapi,Openapi Generator,我正在尝试使用anyOf和allOf属性创建一个OpenAPI自动生成的PHP客户端 目标是能够返回具有多态性的数组:不同类型的对象。 这些对象也有一个公共的基础对象 在我的示例模式中,Items是一个数组,其中的项可以是ItemOne或ItemTwo 这两种类型的项都有自己的属性(itemOneProperty和itemtowproperty),以及一个公共属性baseItemProperty(使用allOf关键字继承自BaseItem) 这里有API规范yaml: openapi:3.0.0

我正在尝试使用
anyOf
allOf
属性创建一个OpenAPI自动生成的PHP客户端

目标是能够返回具有多态性的数组:不同类型的对象。
这些对象也有一个公共的基础对象

在我的示例模式中,
Items
是一个数组,其中的项可以是
ItemOne
ItemTwo

这两种类型的项都有自己的属性(
itemOneProperty
itemtowproperty
),以及一个公共属性
baseItemProperty
(使用
allOf
关键字继承自
BaseItem

这里有API规范yaml:

openapi:3.0.0
信息:
标题:测试API
版本:1.0.0
服务器:
-网址:https://api.myjson.com/bins
路径:
/roxgd:
获取:
操作ID:getItems
响应:
'200':
描述:成功
内容:
应用程序/json:
模式:
$ref:“#/components/schema/Items”
组件:
模式:
项目:
类型:数组
项目:
任何一项:
-$ref:“#/components/schemas/ItemOne”
-$ref:“#/components/schemas/ItemTwo”
基本项目:
类型:对象
特性:
baseItemProperty:
类型:字符串
项目一:
所有:
-$ref:“#/components/schemas/BaseItem”
-类型:对象
特性:
itemOneProperty:
类型:字符串
项目二:
所有:
-$ref:“#/components/schemas/BaseItem”
-类型:对象
特性:
itemTwoProperty:
类型:字符串
这是我正在发送请求的端点:

它返回这个json示例:

[
{
键入:“ItemOne”,
baseItemProperty:“foo1”,
itemOneProperty:“bar1”
},
{
输入:“项目二”,
baseItemProperty:“foo2”,
itemTwoProperty:“bar2”
}
]
PHP客户端生成时没有任何错误,但是当它调用
getItems
方法时,我得到了这个致命错误:

PHP致命错误:未捕获错误:在/home/user/projects/openapi test/lib/ObjectSerializer.PHP:309中找不到类'AnyOfItemOneItemTwo'
堆栈跟踪:
#0/home/user/projects/openapi test/lib/ObjectSerializer.php(261):MyRepo\OpenApiTest\ObjectSerializer::反序列化(对象(stdClass),'anyofitemonite…',NULL)
#1/home/user/projects/openapi test/lib/Api/DefaultApi.php(182):MyRepo\OpenApiTest\ObjectSerializer::反序列化(数组'anyofitemonite…',数组)
#2/home/user/projects/openapi test/lib/Api/DefaultApi.php(128):MyRepo\OpenApiTest\Api\DefaultApi->getItemsWithHttpInfo()
#3/home/user/projects/tests for openapi test/test.php(10):MyRepo\OpenApiTest\Api\DefaultApi->getItems()
#4{main}
在第309行的/home/user/projects/openapi test/lib/ObjectSerializer.php中抛出
如果我使用
oneOf
属性,也会发生同样的情况,但我得到的错误是:
Uncaught error:Class'OneOfItemOneItemTwo'未找到…


当我使用任何其他有效的yaml(没有多态性)时,我的设置工作正常

另外,我已经检查过了,但这是关于UI的,我根本没有使用它

你知道哪里会出错吗?我的yaml文件有错吗?PHP客户端生成器中的错误


编辑:我使用的是openapi generator v4.0.3(目前的最新版本)。

经过进一步研究,我发现从4.0.0版开始,openapi generator中的继承存在一个公开问题


共享生成的代码是否可行?您还可以验证openapi生成器的版本以及使用的任何标志或其他配置吗?您是否验证生成的文件中是否存在php类?如果该类存在,则可能是PHP版本问题,您运行文件的PHP版本是什么?如果没有,则可能是生成器有问题。@ficuscr无需再共享代码。我使用的是4.0.3版,继承目前已被破坏。谢谢您的帮助。@DempseyvanWissen缺少的类在项目中甚至不存在。这与我在答案中发布的问题有关。谢谢你的帮助。