Я пытаюсь использовать grpc в проекте Laravel.
Это часть моего файла composer.json:
"require": {
...
"datto/protobuf-php": "dev-master",
"google/auth": "^0.7.0",
"grpc/grpc": "dev-release-0_13",
...
}
Я сгенерировал 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.
Я не знаю, как поступить. Я скучаю по зависимости? Я что-то пропустил, чтобы установить что-то?
Я решил проблему, но я не уверен, какой из следующих шагов был решением.
Вещи, которые я пытался:
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
Я добавил это как ответ. Посоветуйте, пожалуйста, лучше ли это подходит для редактирования вступительного вопроса или комментария.
Также было бы интересно узнать, каково было решение.
Попробуй это
Если не поможет, прочитайте здесь
https://github.com/grpc/grpc/tree/release-0_14/examples/php
Если это не поможет. Напишите в комментариях. Давайте попробуем что-то еще
У меня была та же самая проблема, но вышеупомянутое решение не работало для меня. Моя проблема заключалась в том, что grpc\grpc
Пакет PHP в composer и библиотека grpc.so были не одной и той же версии. У меня было 1.15 пакета PHP и 1.16 библиотеки.
Вы можете установить определенные версии библиотеки с помощью следующей команды:
sudo pecl install grpc-1.15.0