From 9cbf2d370762fc69ce434c916e8dfa200b94e2e2 Mon Sep 17 00:00:00 2001 From: xhh Date: Tue, 22 Sep 2015 11:32:25 +0800 Subject: [PATCH 1/2] Fix #1145: sanitize model name in PHP client --- .../java/io/swagger/codegen/languages/PhpClientCodegen.java | 2 ++ 1 file changed, 2 insertions(+) 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 ac2cddfefa9..3a43e91c777 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 @@ -330,6 +330,8 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public String toModelName(String name) { + name = sanitizeName(name); + // model name cannot use reserved keyword if (reservedWords.contains(name)) { escapeReservedWord(name); // e.g. return => _return From 09add2d87183a86486c6203ad1bf2f5e46c7eba1 Mon Sep 17 00:00:00 2001 From: xhh Date: Tue, 22 Sep 2015 14:03:27 +0800 Subject: [PATCH 2/2] Fix test failure by allowing backslash in model name --- .../java/io/swagger/codegen/languages/PhpClientCodegen.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 3a43e91c777..538a5c494a6 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 @@ -330,7 +330,8 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public String toModelName(String name) { - name = sanitizeName(name); + // Note: backslash ("\\") is allowed for e.g. "\\DateTime" + name = name.replaceAll("[^\\w\\\\]+", "_"); // model name cannot use reserved keyword if (reservedWords.contains(name)) {