[PHP] Remove model prefix/suffix from inline enum var names (#4489)

* [PHP] Remove model prefix/suffix from inline enum var names

This resolves issue #4403.

On a model `Foo` with an inline enum `Bar` which has a possible string
value `baz`. we should generate a `FooDTO::BAR_BAZ` constant, not
`FooDTO::BAR_DTO_BAZ`.

* Empty commit for another CI run
This commit is contained in:
Hinrik Örn Sigurðsson 2020-02-21 08:37:17 +01:00 committed by GitHub
parent 78cc5dae6c
commit 972ba18e6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -397,8 +397,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
return toVarName(name);
}
@Override
public String toModelName(String name) {
private String toGenericName(String name) {
// remove [
name = name.replaceAll("\\]", "");
@ -420,6 +419,13 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
name = "model_" + name; // e.g. 200Response => Model200Response (after camelize)
}
return name;
}
@Override
public String toModelName(String name) {
name = toGenericName(name);
// add prefix and/or suffic only if name does not start wth \ (e.g. \DateTime)
if (!name.matches("^\\\\.*")) {
if (!StringUtils.isEmpty(modelNamePrefix)) {
@ -647,7 +653,7 @@ public abstract class AbstractPhpCodegen extends DefaultCodegen implements Codeg
@Override
public String toEnumName(CodegenProperty property) {
String enumName = underscore(toModelName(property.name)).toUpperCase(Locale.ROOT);
String enumName = underscore(toGenericName(property.name)).toUpperCase(Locale.ROOT);
// remove [] for array or map of enum
enumName = enumName.replace("[]", "");