gpt4 book ai didi

php - 在 Symfony 4.1 中使用 grpc,找不到 “Class ' Grpc\ChannelCredentials'。”

转载 作者:行者123 更新时间:2023-12-03 11:23:04 25 4
gpt4 key购买 nike

根据 php“https://grpc.io/docs/quickstart/php.html”的 grpc 文档将所有内容设置为使用 grpc 后,我尝试从使用 proto 编译器编译一些 proto 文件所获得的类构建一个客户端对象。

$rezept_nameservice_client = new Rezept_NameserviceClient('localhost:8082',
[ 'credentials' => Grpc\ChannelCredentials::createInsecure()]);

当我尝试运行我的代码时,出现以下异常:

Attempted to load class "ChannelCredentials" from namespace "App\Controller\Grpc". Did you forget a "use" statement for another namespace?



工作环境:
  • Ubuntu 18.04
  • phpstorm
  • Symfony 4.1
  • Nginx 1.14.0
  • grpc v1.15.0
  • protobuf v3.6.1

  • 我已经尝试了不同的方法来解决我在这里发现的问题:

    This Problem is the closest to the problem I have

    最佳答案

    Official documentation on installation for php

    您需要安装 grpc.soprotobuf.so php.ini 中的扩展。我的问题是我安装在 fpm php.ini,但忘记了 cli php.ini 这就是我遇到问题的原因。

    这个特定的类( Grpc\ChannelCredentials )在任何 PHP 文件中都不存在。它来自 C 扩展。要安装这些扩展,请运行:

    sudo pecl install grpc
    sudo pecl install protobuf

    并将其添加到您的 php.ini
    extension=grpc.so
    extension=protobuf.so

    您可以通过执行以下操作找到 php.ini 位置:
    php -i | grep php.ini

    请注意,如果您使用的是 php-fpm :

    使用 php -i | grep php.ini将向您展示 php.ini对于命令行 php命令。服务页面的“php”有自己的 php.ini通常在靠近 cli 的某个地方。例如:
    /etc/php/7.2/cli/php.ini
    /etc/php/7.2/fpm/php.ini

    关于php - 在 Symfony 4.1 中使用 grpc,找不到 “Class ' Grpc\ChannelCredentials'。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53503524/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com