diff options
Diffstat (limited to 'plugins/grpc/protoc_plugins/protoc-gen-php-grpc/php/template.go')
-rw-r--r-- | plugins/grpc/protoc_plugins/protoc-gen-php-grpc/php/template.go | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/plugins/grpc/protoc_plugins/protoc-gen-php-grpc/php/template.go b/plugins/grpc/protoc_plugins/protoc-gen-php-grpc/php/template.go deleted file mode 100644 index e00c6fdd..00000000 --- a/plugins/grpc/protoc_plugins/protoc-gen-php-grpc/php/template.go +++ /dev/null @@ -1,103 +0,0 @@ -// MIT License -// -// Copyright (c) 2018 SpiralScout -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -package php - -import ( - "bytes" - "fmt" - "strings" - "text/template" - - desc "google.golang.org/protobuf/types/descriptorpb" - plugin "google.golang.org/protobuf/types/pluginpb" -) - -const phpBody = `<?php -# Generated by the protocol buffer compiler (spiral/php-grpc). DO NOT EDIT! -# source: {{ .File.Name }} -{{ $ns := .Namespace -}} -{{if $ns.Namespace}} -namespace {{ $ns.Namespace }}; -{{end}} -use Spiral\GRPC; -{{- range $n := $ns.Import}} -use {{ $n }}; -{{- end}} - -interface {{ .Service.Name | interface }} extends GRPC\ServiceInterface -{ - // GRPC specific service name. - public const NAME = "{{ .File.Package }}.{{ .Service.Name }}";{{ "\n" }} -{{- range $m := .Service.Method}} - /** - * @param GRPC\ContextInterface $ctx - * @param {{ name $ns $m.InputType }} $in - * @return {{ name $ns $m.OutputType }} - * - * @throws GRPC\Exception\InvokeException - */ - public function {{ $m.Name }}(GRPC\ContextInterface $ctx, {{ name $ns $m.InputType }} $in): {{ name $ns $m.OutputType }}; -{{end -}} -} -` - -// generate php filename -func filename(file *desc.FileDescriptorProto, name *string) string { - ns := namespace(file.Package, "/") - if file.Options != nil && file.Options.PhpNamespace != nil { - ns = strings.ReplaceAll(*file.Options.PhpNamespace, `\`, `/`) - } - - return fmt.Sprintf("%s/%s.php", ns, identifier(*name, "interface")) -} - -// generate php file body -func body(req *plugin.CodeGeneratorRequest, file *desc.FileDescriptorProto, service *desc.ServiceDescriptorProto) string { - out := bytes.NewBuffer(nil) - - data := struct { - Namespace *ns - File *desc.FileDescriptorProto - Service *desc.ServiceDescriptorProto - }{ - Namespace: newNamespace(req, file, service), - File: file, - Service: service, - } - - tpl := template.Must(template.New("phpBody").Funcs(template.FuncMap{ - "interface": func(name *string) string { - return identifier(*name, "interface") - }, - "name": func(ns *ns, name *string) string { - return ns.resolve(name) - }, - }).Parse(phpBody)) - - err := tpl.Execute(out, data) - if err != nil { - panic(err) - } - - return out.String() -} |