dounai7148
dounai7148
2016-07-04 13:00

在Laravel中使用grpc,找不到“Class'Grpc \ ChannelCredentials'。”

已采纳

I am trying to use grpc in a Laravel project.

This is a part of my composer.json file:

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

I have generated a php file from my proto file. It is placed in app/services/ and included in the composer.json autoload.files section. I have run composer install without issues.

I have created a route for testing. It has the following code:

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

But I receive the response Class 'Grpc\ChannelCredentials' not found. when I visit the route.

The Laravel app is running in a Homestead vagrant box.

I don't know how to proceed. Am I missing a dependency? Did I miss to install something?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • dtg7662 dtg7662 5年前

    I have solved the problem, but I am not sure which of the below steps was the solution.

    Things I tried:

    • I installed grpc-beta in the Homestead box (sudo pecl install grpc-beta).
    • I updated from "grpc/grpc": "dev-release-0_13" to "grpc/grpc": "^0.15.0".
    • I added a repository to composer.json:

      "repositories": [
          {
              "type": "vcs",
              "url": "https://github.com/stanley-cheung/Protobuf-PHP"
          }
      ],
      
    • I restarted NGINX inside the Homestead box
    • I updated composer with composer self-update

    I added this as an answer. Please advise if it would be better suited as an edit to the opening question or as a comment.

    Also, it would be interesting to learn what the solution was.

    点赞 评论 复制链接分享
  • duanjiao6730 duanjiao6730 3年前

    I had the same issue but the above solution didn't work for me. My problem was that the grpc\grpc PHP package in composer and the grpc.so library were not the same version. I had 1.15 of the PHP package and 1.16 of the library.

    You can install specific versions of the library with the following command:

    sudo pecl install grpc-1.15.0
    
    点赞 1 评论 复制链接分享
  • douyan4470 douyan4470 5年前

    Try this

    • composer update
    • Replace vat_service\VatServiceClient to \vat_service\VatServiceClient

    If not help, read here https://github.com/grpc/grpc/tree/release-0_14/examples/php

    If this does not help.Write in the comments.Let us try to something else

    点赞 评论 复制链接分享

相关推荐