在 Laravel 中使用 grpc,“未找到‘Grpc\ChannelCredentials’类”。

Car*_*man 3 php laravel grpc

我正在尝试在 Laravel 项目中使用 grpc。

这是我的composer.json 文件的一部分:

"require": {
    ...
    "datto/protobuf-php": "dev-master",
    "google/auth": "^0.7.0",
    "grpc/grpc": "dev-release-0_13",
    ...
}
Run Code Online (Sandbox Code Playgroud)

我已经从我的 proto 文件生成了一个 php 文件。它位于 app/services/ 中并包含在composer.jsonautoload.files部分中。我运行composer install没有问题。

我已经创建了一条测试路线。它有以下代码:

$client = new vat_service\VatServiceClient('localhost:50051', [
    'credentials' => Grpc\ChannelCredentials::createInsecure()
]);
Run Code Online (Sandbox Code Playgroud)

Class 'Grpc\ChannelCredentials' not found.但当我访问路线时我收到了回复。

Laravel 应用程序在 Homestead vagrant box 中运行。

我不知道如何继续。我缺少依赖吗?我是否错过了安装某些东西?

Sim*_*mon 5

我遇到了同样的问题,但上述解决方案对我不起作用。我的问题是grpc\grpccomposer中的PHP包和grpc.so库不是同一版本。我有 1.15 的 PHP 包和 1.16 的库。

您可以使用以下命令安装特定版本的库:

sudo pecl install grpc-1.15.0
Run Code Online (Sandbox Code Playgroud)