diff options
Diffstat (limited to 'src/compiler/php_generator.cc')
-rw-r--r-- | src/compiler/php_generator.cc | 32 |
1 files changed, 23 insertions, 9 deletions
diff --git a/src/compiler/php_generator.cc b/src/compiler/php_generator.cc index 67967d0bd7..6d9ff3a29c 100644 --- a/src/compiler/php_generator.cc +++ b/src/compiler/php_generator.cc @@ -33,7 +33,7 @@ using std::map; namespace grpc_php_generator { namespace { -grpc::string MessageIdentifierName(const grpc::string &name) { +grpc::string ConvertToPhpNamespace(const grpc::string &name) { std::vector<grpc::string> tokens = grpc_generator::tokenize(name, "."); std::ostringstream oss; for (unsigned int i = 0; i < tokens.size(); i++) { @@ -43,14 +43,33 @@ grpc::string MessageIdentifierName(const grpc::string &name) { return oss.str(); } +grpc::string PackageName(const FileDescriptor *file) { + if (file->options().has_php_namespace()) { + return file->options().php_namespace(); + } else { + return ConvertToPhpNamespace(file->package()); + } +} + +grpc::string MessageIdentifierName(const grpc::string &name, + const FileDescriptor *file) { + std::vector<grpc::string> tokens = grpc_generator::tokenize(name, "."); + std::ostringstream oss; + oss << PackageName(file) << "\\" + << grpc_generator::CapitalizeFirstLetter(tokens[tokens.size() - 1]); + return oss.str(); +} + void PrintMethod(const MethodDescriptor *method, Printer *out) { const Descriptor *input_type = method->input_type(); const Descriptor *output_type = method->output_type(); map<grpc::string, grpc::string> vars; vars["service_name"] = method->service()->full_name(); vars["name"] = method->name(); - vars["input_type_id"] = MessageIdentifierName(input_type->full_name()); - vars["output_type_id"] = MessageIdentifierName(output_type->full_name()); + vars["input_type_id"] = + MessageIdentifierName(input_type->full_name(), input_type->file()); + vars["output_type_id"] = + MessageIdentifierName(output_type->full_name(), output_type->file()); out->Print("/**\n"); out->Print(GetPHPComments(method, " *").c_str()); @@ -149,12 +168,7 @@ grpc::string GenerateFile(const FileDescriptor *file, } map<grpc::string, grpc::string> vars; - grpc::string php_namespace; - if (file->options().has_php_namespace()) { - php_namespace = file->options().php_namespace(); - } else { - php_namespace = MessageIdentifierName(file->package()); - } + grpc::string php_namespace = PackageName(file); vars["package"] = php_namespace; out.Print(vars, "namespace $package$;\n\n"); |