我正在尝试在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框中运行。
我不知道该怎么办。我错过了依赖吗?我错过了安装的东西吗?
答案 0 :(得分:1)
我已经解决了这个问题,但我不确定以下哪个步骤是解决方案。
我尝试的事情:
sudo pecl install 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"
}
],
composer self-update
我添加了这个作为答案。请告知它是否更适合作为开场问题的编辑或作为评论。
此外,了解解决方案的内容会很有趣。
答案 1 :(得分:1)
我遇到了同样的问题,但是上述解决方案对我来说不起作用。我的问题是在composer中的grpc\grpc
PHP软件包和grpc.so库不是同一版本。我有1.15的PHP软件包和1.16的库。
您可以使用以下命令安装该库的特定版本:
sudo pecl install grpc-1.15.0
答案 2 :(得分:0)
试试这个
如果没有帮助,请在此处阅读 https://github.com/grpc/grpc/tree/release-0_14/examples/php
如果这没有帮助。请在评论中写。让我们尝试别的东西