From caa1b7f4111ea2bf4ffafdb5244bc364cece0442 Mon Sep 17 00:00:00 2001 From: nmonterroso Date: Fri, 19 Jun 2015 15:20:29 -0700 Subject: [PATCH] generate model imports for support files, and use them as imports --- .../codegen/languages/PhpClientCodegen.java | 27 +++++++++---------- .../src/main/resources/php/ApiClient.mustache | 5 +++- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java index 073c7ff1c96b..7fb23157b362 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/PhpClientCodegen.java @@ -248,14 +248,17 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public Map postProcessOperations(Map objs) { objs = addNamespaces(super.postProcessOperations(objs)); - objs = formatImports(objs); + objs = formatImports(objs, "imports", "import"); return objs; } @Override public Map postProcessSupportingFileData(Map objs) { - return addNamespaces(super.postProcessSupportingFileData(objs)); + objs = addNamespaces(super.postProcessSupportingFileData(objs)); + objs = formatImports(objs, "models", "importPath"); + + return objs; } protected Map addNamespaces(Map objs) { @@ -267,27 +270,23 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { return objs; } - protected Map formatImports(Map objs) { - if (objs.containsKey("imports")) { - List> imports = new ArrayList>(); - LinkedHashMap newImport; - String currentImport; + protected Map formatImports(Map objs, String objsKey, String importKey) { + if (objs.containsKey(objsKey)) { String modelName; + List> newImportList = new ArrayList>(); - for (Map importMap : (List>) objs.get("imports")) { - currentImport = importMap.get("import"); - modelName = currentImport.replace(modelPackage + ".", ""); + for (Map importMap : (List>) objs.get(objsKey)) { + modelName = ((String) importMap.get(importKey)).replace(modelPackage + ".", ""); if (reservedWords.contains(modelName)) { continue; } - newImport = new LinkedHashMap(); - newImport.put("import", modelNamespace + "\\" + modelName); - imports.add(newImport); + importMap.put(importKey, modelNamespace + "\\" + modelName); + newImportList.add(importMap); } - objs.put("imports", imports); + objs.put(objsKey, newImportList); } return objs; diff --git a/modules/swagger-codegen/src/main/resources/php/ApiClient.mustache b/modules/swagger-codegen/src/main/resources/php/ApiClient.mustache index 564bc1ddd66e..4a3e50dd50b6 100644 --- a/modules/swagger-codegen/src/main/resources/php/ApiClient.mustache +++ b/modules/swagger-codegen/src/main/resources/php/ApiClient.mustache @@ -17,6 +17,10 @@ namespace {{invokerNamespace}}; +{{#models}} +use {{importPath}}; +{{/models}} + class ApiClient { public static $PATCH = "PATCH"; @@ -399,7 +403,6 @@ class ApiClient { settype($data, $class); $deserialized = $data; } else { - $class = "{{invokerPackage}}\\models\\".$class; $instance = new $class(); foreach ($instance::$swaggerTypes as $property => $type) { $original_property_name = $instance::$attributeMap[$property];