diff --git a/src/compiler/php_generator.cc b/src/compiler/php_generator.cc index 78d9541971228..47207c8317340 100644 --- a/src/compiler/php_generator.cc +++ b/src/compiler/php_generator.cc @@ -275,10 +275,36 @@ void PrintService(const ServiceDescriptor* service, out->Print(GetPHPComments(service, " *").c_str()); out->Print(" */\n"); vars["name"] = GetPHPServiceClassname(service, class_suffix, is_server); - vars["extends"] = is_server ? "" : "extends \\Grpc\\BaseStub "; + vars["extends"] = is_server ? "" : "extends BaseStub "; out->Print(vars, "class $name$ $extends${\n\n"); out->Indent(); out->Indent(); + + out->Print("public function getExpectedResponseMessages() {\n"); + out->Indent(); + out->Print("return [\n"); + out->Indent(); + map response_vars; + for (int i = 0; i < service->method_count(); i++) { + const Descriptor* output_type = service->method(i)->output_type(); + response_vars["method_name"] = grpc_generator::LowercaseFirstLetter(service->method(i)->name()); + response_vars["output_type_id"] = MessageIdentifierName(GeneratedClassName(output_type), output_type->file()); + out->Print(response_vars, "'$method_name$' => '\\$output_type_id$',\n"); + } + out->Outdent(); + out->Print("];\n"); + out->Outdent(); + out->Print("}\n\n"); + + // getServiceName() -> string - The name of the gRPC service + map service_vars; + service_vars["service_name"] = service->full_name(); + out->Print("public function getServiceName() {\n"); + out->Indent(); + out->Print(service_vars, "return '$service_name$';\n"); + out->Outdent(); + out->Print("}\n\n"); + if (!is_server) { out->Print( "/**\n * @param string $$hostname hostname\n" @@ -332,6 +358,8 @@ std::string GenerateFile(const FileDescriptor* file, vars["package"] = php_namespace; out.Print(vars, "namespace $package$;\n\n"); + out.Print("use \\Grpc\\BaseStub;\n\n"); + PrintService(service, class_suffix, is_server, &out); } return output; diff --git a/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template b/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template index 11ba1c89ac788..955cf04fea313 100644 --- a/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template +++ b/templates/tools/dockerfile/interoptest/grpc_interop_go/Dockerfile.template @@ -14,7 +14,7 @@ # See the License for the specific language governing permissions and # limitations under the License. - FROM golang:1.16 + FROM golang:1.20rc3 <%include file="../../go_path.include"/> <%include file="../../run_tests_python_deps.include"/>