php 使用grpc

当前环境版本:
ubuntu24 php8.2 laravel12 grpc1.57.0 protobuf 3.21.12
一、要求所有工具,软件,扩展,版本要兼容:
1protoc 工具版本 == protobuf 版本 如:3.21.12 对应的grpc版本1.57.0
2grpc 版本 1.57.0
3protobuf 3.21.12
composer require "grpc/grpc:1.57.0" "google/protobuf:v3.21.12"
安装相应的grpc_php_plugin :

git clone -b v1.57.0 https://github.com/grpc/grpc --recurse-submodules
cd grpc
mkdir -p cmake/build
cd cmake/build
cmake -DgRPC_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release ../..
make grpc_php_plugin -j$(nproc)
sudo cp grpc_php_plugin /usr/local/bin/
sudo chmod +x /usr/local/bin/grpc_php_plugin

二、php 扩展 直接指定版本安装:

sudo pecl install grpc-1.57.0
sudo pecl install protobuf-3.21.12

三、使用命令生成proto的代码
protoc --php_out=./app/Grpc --grpc_out=./app/Grpc --plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin --proto_path=./proto ./proto/host.proto
四、composer.json文件添加两行代码,Service和GPBMetadata 命名空间

"autoload": {
    "psr-4": {
        "Service\\": "app/Grpc/Service/",
        "GPBMetadata\\": "app/Grpc/GPBMetadata/",
    }
},

注意: 可能需要php 删除几个禁用函数(解禁)

posted @ 2025-05-08 14:36  sg8255  阅读(89)  评论(0)    收藏  举报