From 93c7b0b176e009c41a12d12ff0ae693df610d62a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20=C4=8Cern=C3=BD?= Date: Mon, 26 Jan 2026 14:08:48 +0100 Subject: [PATCH] [php-nextgen] Discriminator class detection uses wrong namespace --- .../php-nextgen/ObjectSerializer.mustache | 2 +- .../infinite-recursion-issue/apis/TestApi.ts | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/php-nextgen/ObjectSerializer.mustache b/modules/openapi-generator/src/main/resources/php-nextgen/ObjectSerializer.mustache index 5f8627566409..aaafb8aefd87 100644 --- a/modules/openapi-generator/src/main/resources/php-nextgen/ObjectSerializer.mustache +++ b/modules/openapi-generator/src/main/resources/php-nextgen/ObjectSerializer.mustache @@ -497,7 +497,7 @@ class ObjectSerializer // If a discriminator is defined and points to a valid subclass, use it. $discriminator = $class::DISCRIMINATOR; if (!empty($discriminator) && isset($data->{$discriminator}) && is_string($data->{$discriminator})) { - $subclass = '\{{invokerPackage}}\Model\\' . $data->{$discriminator}; + $subclass = '\{{modelPackage}}\\' . $data->{$discriminator}; if (is_subclass_of($subclass, $class)) { $class = $subclass; } diff --git a/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts b/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts index ba47bcab5145..7b56e685fc57 100644 --- a/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts +++ b/samples/client/others/typescript-fetch/infinite-recursion-issue/apis/TestApi.ts @@ -28,8 +28,9 @@ import { export class TestApi extends runtime.BaseAPI { /** + * Creates request options for test without sending the request */ - async testRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + async testRequestOpts(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise { const queryParameters: any = {}; const headerParameters: runtime.HTTPHeaders = {}; @@ -37,12 +38,19 @@ export class TestApi extends runtime.BaseAPI { let urlPath = `/api/v1/test`; - const response = await this.request({ + return { path: urlPath, method: 'GET', headers: headerParameters, query: queryParameters, - }, initOverrides); + }; + } + + /** + */ + async testRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise>> { + const requestConfig = await this.testRequestConfig(initOverrides); + const response = await this.request(requestConfig, initOverrides); return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(TestBaseDtoFromJSON)); }