summaryrefslogtreecommitdiff
path: root/plugins/grpc/protoc_plugins/protoc-gen-php-grpc/php/template.go
diff options
context:
space:
mode:
authorValery Piashchynski <[email protected]>2021-09-16 21:46:50 +0300
committerGitHub <[email protected]>2021-09-16 21:46:50 +0300
commit3581b45f237a3f7aa29591ceb2bf6f4a4642a2f5 (patch)
treee723b19ec1ac16b7ccc7b3c2da69d4a416d63d81 /plugins/grpc/protoc_plugins/protoc-gen-php-grpc/php/template.go
parent337d292dd2d6ff0a555098b1970d8194d8df8bc2 (diff)
parent823d831b57b75f70c7c3bbbee355f2016633bb3b (diff)
[#803]: feat(plugins): move plugins to a separate repositoryv2.5.0-alpha.2
[#803]: feat(plugins): move plugins to a separate repository
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.go103
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()
-}