PHPackages                             mix/grpc-skeleton - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. mix/grpc-skeleton

ActiveProject[Utility &amp; Helpers](/categories/utility)

mix/grpc-skeleton
=================

gRPC development skeleton

v3.0.34(3y ago)1811Apache-2.0PHP

Since Jul 15Pushed 3y ago1 watchersCompare

[ Source](https://github.com/mix-php/grpc-skeleton)[ Packagist](https://packagist.org/packages/mix/grpc-skeleton)[ Docs](https://openmix.org/mix-php)[ RSS](/packages/mix-grpc-skeleton/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (10)Versions (26)Used By (0)

gRPC development skeleton
=========================

[](#grpc-development-skeleton)

帮助你快速搭建 gRPC 项目骨架，并指导你如何使用该骨架的细节，骨架默认开启了 SQL、Redis 日志，压测前请先关闭 `.env` 的 `APP_DEBUG`

安装
--

[](#安装)

> 需要先安装 [Swoole](https://wiki.swoole.com/#/environment)

- Swoole &gt;= 4.4.4:
- 需要开启 `--enable-http2`

```
composer create-project --prefer-dist mix/grpc-skeleton grpc

```

快速开始
----

[](#快速开始)

启动 Swoole 多进程服务

```
composer run-script --timeout=0 swoole:start

```

启动 Swoole 协程服务

```
composer run-script --timeout=0 swooleco:start

```

执行脚本
----

[](#执行脚本)

- `composer run-script` 命令中的 `--timeout=0` 参数是防止 composer [执行超时](https://getcomposer.org/doc/06-config.md#process-timeout)
- `composer.json` 定义了命令执行脚本，对应上面的执行命令

```
"scripts": {
    "swoole:start": "php bin/swoole.php",
    "swooleco:start": "php bin/swooleco.php",
    "cli:clearcache": "php bin/cli.php clearcache"
}
```

当然也可以直接下面这样启动，效果是一样的，但是 `scripts` 能帮你记录到底有哪些可用的命令，同时在IDE中调试更加方便。

```
php bin/swoole.php start

```

编写一个 gRPC 接口
------------

[](#编写一个-grpc-接口)

首先修改根目录 `.env` 文件的数据库信息

然后在 `proto` 目录创建 `greeter.proto` 文件，并根据 [使用说明](https://github.com/mix-php/grpc#%E9%80%9A%E8%BF%87-proto-%E7%94%9F%E6%88%90-php-%E4%BB%A3%E7%A0%81) 将 .proto 文件生成为 PHP 代码

```
protoc --php_out=. --mix_out=. greeter.proto

```

然后创建一个新的服务 `src/Service/Say.php`

- `Say` 类实现了代码生成器生成的 `Php\Micro\Grpc\Greeter\SayInterface` 接口

```
