PHPackages                             zhonghaibin/grpc-service - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. zhonghaibin/grpc-service

ActiveLibrary[API Development](/categories/api)

zhonghaibin/grpc-service
========================

Base Service Grpc Server

v1.0.0(3y ago)29[1 issues](https://github.com/zhonghaibin/php-grpc-serve/issues)MITPHPPHP ^8.1

Since Apr 24Pushed 3y ago1 watchersCompare

[ Source](https://github.com/zhonghaibin/php-grpc-serve)[ Packagist](https://packagist.org/packages/zhonghaibin/grpc-service)[ RSS](/packages/zhonghaibin-grpc-service/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (2)Used By (0)

通过php实现grpc服务端
--------------

[](#通过php实现grpc服务端)

php版本： php &gt;= 8.1

安装
--

[](#安装)

创建项目

```
composer create-project zhonghaibin/grpc-service

```

在安装依赖包的时候，因为有墙等特殊网络原因（懂得都懂），有可能在获取rr二进制可执行文件会超时失败,重新手动获取 rr 可执行文件,在项目根目录打开命令行执行如下命令，我当初就是一直下载不了，导致我构建了个docker镜像。实在是下载不下来rr可执行文件。建议使用下面的Docker 安装和部署，简单又高效。

```
./vendor/bin/rr get-binary

```

启动服务(win10)

```
./rr.exe serve

```

Docker 安装和部署
------------

[](#docker-安装和部署)

个人比较推荐使用Dockerfile构建容器进行部署.

创建项目

```
composer require zhonghaibin/grpc-service

```

进入目录

```
cd grpc-service

```

构建镜像

```
sudo  docker build -t php-grpc-service:latest .

```

创建容器

```
 sudo  docker run -d --name=grpc-serve -p 8000:8000 php-grpc-service:latest

```

创建一次性容器

```
 sudo  docker run  --rm  -it --name=grpc-serve -p 8000:8000 php-grpc-service:latest sh

```

进入容器

```
 sudo  docker exec -it grpc-serve  sh

```

启动容器

```
sudo  docker start grpc-serve

```

停止容器

```
sudo  docker stop grpc-serve

```

删除容器

```
sudo  docker rm grpc-serve

```

删除镜像

```
sudo  docker rmi php-grpc-service:latest

```

docker-compose 部署
-----------------

[](#docker-compose-部署)

构建服务

```
docker-compose up

```

停止

```
docker-compose stop

```

启动

```
docker-compose start

```

其他命令 自行研究

客户端
---

[](#客户端)

我这里用的是ApiPost 支持grpc测试

```
打开apipost客户端，新建grpc,选择导入proto
选择项目目录的 grpc/protos/base/hello-world.proto 文件

```

参考文档：
-----

[](#参考文档)

1 根据自己的需求创建 hello-world.proto 文件

2 通过 hello-world.proto 生成 php 类文件

```
    这里需要用到下载两个可执行文件编译，我这里用的是win10：
    protoc.exe 和 protoc-gen-php-grpc.exe
    下载地址：https://github.com/roadrunner-server/roadrunner/releases
    命令行执行如下命令：
    ./protoc.exe --plugin=protoc-gen-php-grpc.exe --php_out=./ --php-grpc_out=./ hello-world.proto
    会在当前目录下生成两个文件夹：GPBMetadata 和 Services
    把生成好的文件夹复制到 项目目录 grpc/generated 下

```

### 目录结构

[](#目录结构)

```
root
├─app
│  ├─console
│  ├─services
│  │   ├─Task        //异步任务
│  │   └─HelloService.php   //写自己的业务
│  └─support
├─config
├─grpc
│ ├─generated         //使用protoc自动构建的类均存在这
│ │  ├─Services       //服务统一命名空间
│ │  └─GPBMetadata    //GRPC生成的元数据
├ └─protos            //所有proto存在这里

```

### roadrunner-docker 参考文档

[](#roadrunner-docker-参考文档)

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1112d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2c2c26be84a6bd5cd43c0a32f60494d5e975bf142f91c7af4949e93ae7ec7060?d=identicon)[zhonghaibin](/maintainers/zhonghaibin)

---

Top Contributors

[![zhonghaibin](https://avatars.githubusercontent.com/u/22255693?v=4)](https://github.com/zhonghaibin "zhonghaibin (13 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/zhonghaibin-grpc-service/health.svg)

```
[![Health](https://phpackages.com/badges/zhonghaibin-grpc-service/health.svg)](https://phpackages.com/packages/zhonghaibin-grpc-service)
```

###  Alternatives

[google/gax

Google API Core for PHP

263103.1M452](/packages/google-gax)[google/grpc-gcp

gRPC GCP library for channel management

18497.8M3](/packages/google-grpc-gcp)[googleads/google-ads-php

Google Ads API client for PHP

3497.6M9](/packages/googleads-google-ads-php)[temporal/sdk

Temporal SDK

4002.2M18](/packages/temporal-sdk)[spiral/grpc-client

gRPC client

41140.3k2](/packages/spiral-grpc-client)[clarifai/clarifai-php

Clarifai PHP Client

21133.0k](/packages/clarifai-clarifai-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
