【问题标题】:Using grpc in Laravel, "Class 'Grpc\ChannelCredentials' not found."在 Laravel 中使用 grpc,“找不到类 'Grpc\ChannelCredentials'。”
【发布时间】:2016-11-06 05:27:09
【问题描述】:

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

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

"require": {
    ...
    "datto/protobuf-php": "dev-master",
    "google/auth": "^0.7.0",
    "grpc/grpc": "dev-release-0_13",
    ...
}

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

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

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

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

Laravel 应用在 Homestead vagrant box 中运行。

我不知道该怎么做。我是否缺少依赖项?我错过了安装什么吗?

【问题讨论】:

  • 你也试过\Grpc\ChannelCredentials吗?
  • 如果特定模块存在,还要检查您的供应商文件夹。
  • 我现在尝试了 \Grpc\ChannelCredentials Sugato,仍然遇到同样的错误。
  • vendor文件夹中有一个grpc文件夹。当我搜索“ChannelCredentials”时,除了我自己的代码行,我什么也没找到。
  • 嗯,这就是问题所在。如果您使用 netbeans,您可以执行“使用 \Grpc\”并按 ctrl + 空格键查看可用的类。

标签: php laravel grpc


【解决方案1】:

我已经解决了这个问题,但我不确定以下哪个步骤是解决方案。

我尝试过的事情:

  • 我在 Homestead box (sudo pecl install grpc-beta) 中安装了 grpc-beta。
  • 我从"grpc/grpc": "dev-release-0_13"更新到"grpc/grpc": "^0.15.0"
  • 我向composer.json添加了一个仓库:

    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/stanley-cheung/Protobuf-PHP"
        }
    ],
    
  • 我在 Homestead 盒子中重新启动了 NGINX
  • 我用composer self-update更新了作曲家

我添加了这个作为答案。请告知它是否更适合作为对开放问题的编辑或作为评论。

此外,了解解决方案是什么会很有趣。

【讨论】:

  • 今天早上我又遇到了这个问题。我的 Homestead 盒子被中止了,在启动时问题又回来了。这次我更快地解决了它。解决方案似乎是将extension=grpc.so 添加到php-fpm 的php.ini 文件中。然后我重新启动了 php-fpm 和瞧,问题解决了。
  • 有这方面的消息吗?在我的 ubuntu 更新了一些软件包后,我得到了同样的错误(但它曾经工作过)
【解决方案2】:

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

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

sudo pecl install grpc-1.15.0

【讨论】:

  • 非常感谢您。这是我处理 OP 问题的第 2 天,您是第一个提到版本不一致的人。
【解决方案3】:

试试这个

  • 作曲家更新
  • 将 vat_service\VatServiceClient 替换为 \vat_service\VatServiceClient

如果没有帮助,请阅读此处 https://github.com/grpc/grpc/tree/release-0_14/examples/php

如果这没有帮助。写在 cmets 中。让我们尝试其他的东西

【讨论】:

猜你喜欢
  • 2019-04-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-11
  • 2022-01-25
  • 1970-01-01
  • 1970-01-01
  • 2022-06-14
  • 1970-01-01
相关资源
最近更新 更多