aboutsummaryrefslogtreecommitdiff
path: root/src/google/protobuf/compiler/php
diff options
context:
space:
mode:
authorPaul Yang <TeBoring@users.noreply.github.com>2016-11-16 11:07:43 -0800
committerGitHub <noreply@github.com>2016-11-16 11:07:43 -0800
commit99564c3347223b92e49bd40f37b8c0d6fc6a3971 (patch)
tree4f5de7e413798a02a9a66847560de13c973090d1 /src/google/protobuf/compiler/php
parentfc27ead10719f768eb990accac434f48efe10d16 (diff)
downloadprotobuf-99564c3347223b92e49bd40f37b8c0d6fc6a3971.tar.gz
protobuf-99564c3347223b92e49bd40f37b8c0d6fc6a3971.tar.bz2
protobuf-99564c3347223b92e49bd40f37b8c0d6fc6a3971.zip
Rename Empty to GPBEmpty in php generated file.
In php, class name cannot be "Empty". Modified code generator to (#2375) generate GPBEmpty instead (for google.protobuf.Empty only). Also change runtime code to work with the new generated code accordingly.
Diffstat (limited to 'src/google/protobuf/compiler/php')
-rw-r--r--src/google/protobuf/compiler/php/php_generator.cc18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc
index 75ddb405..83e629b9 100644
--- a/src/google/protobuf/compiler/php/php_generator.cc
+++ b/src/google/protobuf/compiler/php/php_generator.cc
@@ -70,6 +70,16 @@ void GenerateEnum(const google::protobuf::EnumDescriptor* en,
void Indent(google::protobuf::io::Printer* printer);
void Outdent(google::protobuf::io::Printer* printer);
+std::string MessagePrefix(const google::protobuf::Descriptor* message) {
+ // Empty cannot be php class name.
+ if (message->name() == "Empty" &&
+ message->file()->package() == "google.protobuf") {
+ return "GPB";
+ } else {
+ return "";
+ }
+}
+
std::string MessageName(const google::protobuf::Descriptor* message,
bool is_descriptor) {
string message_name = message->name();
@@ -78,6 +88,8 @@ std::string MessageName(const google::protobuf::Descriptor* message,
message_name = descriptor->name() + '_' + message_name;
descriptor = descriptor->containing_type();
}
+ message_name = MessagePrefix(message) + message_name;
+
return PhpName(message->file()->package(), is_descriptor) + '\\' +
message_name;
}
@@ -483,8 +495,10 @@ void GenerateMessage(const string& name_prefix,
return;
}
- string message_name = name_prefix.empty()?
- message->name() : name_prefix + "_" + message->name();
+ string message_name =
+ name_prefix.empty()
+ ? message->name()
+ : name_prefix + "_" + MessagePrefix(message) + message->name();
printer->Print(
"class @name@ extends \\Google\\Protobuf\\Internal\\Message\n"