Laravel 5.7 gRPC Integration

Yog*_*inh 3 php laravel-5 grpc

我已经在核心 PHP 中设置了 gRPC,它运行良好,但我想将它与 laravel 5.7 一起使用。我已经使用composer.json. 现在我不知道在其中使用 gRPC 需要做什么。

我在我的 composer.json 文件中添加了以下内容

"require": {
        "datto/protobuf-php": "dev-master",
        "grpc/grpc": "^1.15.0"
    },
"repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/stanley-cheung/Protobuf-PHP"
        }
    ]
Run Code Online (Sandbox Code Playgroud)

但是现在我不知道接下来应该做什么。所以有人知道请告诉我。我有我从这个 web url 设置的 gRPC(核心库示例)的核心 PHP 代码。PHP 中的 gRPC。所以我只想融入laravel。

小智 6

如何在 Laravel (5.7) 中使用 protoc 生成的文件

  • 像往常一样准备描述服务的 .proto 文件
  • 设置为包名 package app.grpc;
  • 运行生成命令: protoc --php_out=./ --grpc_out=./ --plugin=protoc-gen-grpc=/your/path/to/grpc_php_plugin yourfile.proto
  • 现在在 Laravel App 中复制 App/Grpc
  • 将 GPBMetadata 文件夹复制为 laravel 根目录中的新文件夹
  • 在自动加载类映射部分更改composer.json文件插入GPBMetadata位置(见下文
  • 运行命令 composer dump-autoload
  • 现在你可以在任何控制器中使用你生成的类,记得use App\Grpc\YourClassName在顶部添加。

如果有人对此有更好的解决方案,请告诉我

相关部分composer.json

...
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories",
            "GPBMetadata"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    }
...
Run Code Online (Sandbox Code Playgroud)


小智 0

你不再需要这些了

"datto/protobuf-php": "dev-master",

"repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/stanley-cheung/Protobuf-PHP"
        }
    ]
Run Code Online (Sandbox Code Playgroud)

相反,您应该添加"google/protobuf": "^3.6.1"到您的require.

以此为例:

https://github.com/grpc/grpc/blob/master/examples/php/composer.json

这些版本已经过时 - 只需使用最新版本。