Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.7 gRPC集成_Php_Laravel 5_Grpc - Fatal编程技术网

Php Laravel 5.7 gRPC集成

Php Laravel 5.7 gRPC集成,php,laravel-5,grpc,Php,Laravel 5,Grpc,我已经在核心PHP中安装了gRPC,它运行良好,但我想在Laravel5.7中使用它。我使用composer.json下载了gRPC。现在我不知道我该怎么做才能在其中使用gRPC 我在composer.json文件中添加了以下内容 "require": { "datto/protobuf-php": "dev-master", "grpc/grpc": "^1.15.0" }, "repositories": [ {

我已经在核心PHP中安装了gRPC,它运行良好,但我想在Laravel5.7中使用它。我使用
composer.json
下载了gRPC。现在我不知道我该怎么做才能在其中使用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"
        }
    ]

但现在我不知道下一步该做什么。如果有人知道,请告诉我。我有我的gRPC核心PHP代码(核心库示例),我是从这个web url设置的。所以我只想集成到laravel中。

您不再需要这些了

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

"repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/stanley-cheung/Protobuf-PHP"
        }
    ]
相反,您应该将
“google/protobuf”:“^3.6.1”
添加到您的
要求中

以此为例:


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

如何将protoc生成的文件与Laravel(5.7)一起使用。

  • 像平常一样准备描述服务的.proto文件
  • 设置为包名
    package app.grpc
  • 运行生成命令:
    protoc--php\u out=./--grpc\u out=./--plugin=protoc gen grpc=/your/path/to/grpc\u php\u plugin yourfile.proto
  • 现在在laravel应用程序内复制应用程序/Grpc
  • 将GPBMetadata文件夹复制为laravel根目录中的新文件夹
  • 更改自动加载类映射部分中的
    composer.json
    文件插入
    GPBMetadata
    位置(见下文)
  • 运行命令
    composer dump autoload
  • 现在,您可以在任何控制器中使用生成的类,请记住在顶部添加
    use App\Grpc\YourClassName
如果有人对此有更好的解决方案,请告诉我

composer.json的相关部分:

我已将
datto/protobuf php
替换为
google/protobuf:“^3.6.1
。但是我不知道我应该如何在laravel中配置gRPC。添加这行“google/protobuf”后:“^3.6.1”安装依赖项时出现任何错误?什么是“gRPC\u php\u插件”插件?我遵循了这里的说明:但它总是说:“protoc gen php:程序未找到或不可执行--php_out:protoc gen php:插件失败,状态代码为1。”@JohnMellor该插件是从proto文件生成php文件所必需的。它必须通过这里的步骤单独构建,为了构建插件,我必须安装以下依赖项(automake、libtool、autoconf、build-essential、shtool)。
...
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories",
            "GPBMetadata"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    }
...