From 397ddf9e5c7876e907ffd42256cb469f340268ef Mon Sep 17 00:00:00 2001 From: Paul Yang Date: Fri, 25 May 2018 15:24:42 -0700 Subject: Add back GeneratedClassName to public (#4686) These methods are used by grpc --- src/google/protobuf/compiler/php/php_generator.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/google/protobuf/compiler/php/php_generator.h b/src/google/protobuf/compiler/php/php_generator.h index 1e011511..82109ec4 100644 --- a/src/google/protobuf/compiler/php/php_generator.h +++ b/src/google/protobuf/compiler/php/php_generator.h @@ -49,6 +49,16 @@ class LIBPROTOC_EXPORT Generator GeneratorContext* generator_context, string* error) const; + // To skip reserved keywords in php, some generated classname are prefixed. + // Other code generators may need following API to figure out the actual + // classname. + LIBPROTOC_EXPORT std::string GeneratedClassName( + const google::protobuf::Descriptor* desc); + LIBPROTOC_EXPORT std::string GeneratedClassName( + const google::protobuf::EnumDescriptor* desc); + LIBPROTOC_EXPORT std::string GeneratedClassName( + const google::protobuf::ServiceDescriptor* desc); + }; } // namespace php -- cgit v1.2.3 From 4f5eb100bb2086622b1f3aaec472d83768b68b32 Mon Sep 17 00:00:00 2001 From: Paul Yang Date: Tue, 29 May 2018 21:51:54 -0700 Subject: Move methods out of class (#4697) --- src/google/protobuf/compiler/php/php_generator.cc | 20 ++++++++++++++++---- src/google/protobuf/compiler/php/php_generator.h | 21 ++++++++++----------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc index cdb2f509..a58e1754 100644 --- a/src/google/protobuf/compiler/php/php_generator.cc +++ b/src/google/protobuf/compiler/php/php_generator.cc @@ -157,7 +157,7 @@ std::string ClassNamePrefix(const string& classname, } template -std::string GeneratedClassName(const DescriptorType* desc) { +std::string GeneratedClassNameImpl(const DescriptorType* desc) { std::string classname = ClassNamePrefix(desc->name(), desc) + desc->name(); const Descriptor* containing = desc->containing_type(); while (containing != NULL) { @@ -168,11 +168,23 @@ std::string GeneratedClassName(const DescriptorType* desc) { return classname; } -std::string GeneratedClassName(const ServiceDescriptor* desc) { +std::string GeneratedClassNameImpl(const ServiceDescriptor* desc) { std::string classname = desc->name(); return ClassNamePrefix(classname, desc) + classname; } +std::string GeneratedClassName(const Descriptor* desc) { + return GeneratedClassNameImpl(desc); +} + +std::string GeneratedClassName(const EnumDescriptor* desc) { + return GeneratedClassNameImpl(desc); +} + +std::string GeneratedClassName(const ServiceDescriptor* desc) { + return GeneratedClassNameImpl(desc); +} + template std::string LegacyGeneratedClassName(const DescriptorType* desc) { std::string classname = desc->name(); @@ -242,7 +254,7 @@ std::string RootPhpNamespace(const DescriptorType* desc, bool is_descriptor) { template std::string FullClassName(const DescriptorType* desc, bool is_descriptor) { - string classname = GeneratedClassName(desc); + string classname = GeneratedClassNameImpl(desc); string php_namespace = RootPhpNamespace(desc, is_descriptor); if (php_namespace != "") { return php_namespace + "\\" + classname; @@ -1074,7 +1086,7 @@ void LegacyGenerateClassFile(const FileDescriptor* file, const DescriptorType* d Outdent(&printer); printer.Print("}\n"); printer.Print("class_exists(^new^::class);\n", - "new", GeneratedClassName(desc)); + "new", GeneratedClassNameImpl(desc)); printer.Print("@trigger_error('^old^ is deprecated and will be removed in " "the next major release. Use ^fullname^ instead', E_USER_DEPRECATED);\n\n", "old", LegacyFullClassName(desc, is_descriptor), diff --git a/src/google/protobuf/compiler/php/php_generator.h b/src/google/protobuf/compiler/php/php_generator.h index 82109ec4..b851d9b4 100644 --- a/src/google/protobuf/compiler/php/php_generator.h +++ b/src/google/protobuf/compiler/php/php_generator.h @@ -48,19 +48,18 @@ class LIBPROTOC_EXPORT Generator const string& parameter, GeneratorContext* generator_context, string* error) const; - - // To skip reserved keywords in php, some generated classname are prefixed. - // Other code generators may need following API to figure out the actual - // classname. - LIBPROTOC_EXPORT std::string GeneratedClassName( - const google::protobuf::Descriptor* desc); - LIBPROTOC_EXPORT std::string GeneratedClassName( - const google::protobuf::EnumDescriptor* desc); - LIBPROTOC_EXPORT std::string GeneratedClassName( - const google::protobuf::ServiceDescriptor* desc); - }; +// To skip reserved keywords in php, some generated classname are prefixed. +// Other code generators may need following API to figure out the actual +// classname. +LIBPROTOC_EXPORT std::string GeneratedClassName( + const google::protobuf::Descriptor* desc); +LIBPROTOC_EXPORT std::string GeneratedClassName( + const google::protobuf::EnumDescriptor* desc); +LIBPROTOC_EXPORT std::string GeneratedClassName( + const google::protobuf::ServiceDescriptor* desc); + } // namespace php } // namespace compiler } // namespace protobuf -- cgit v1.2.3