php - 在 DA Ledger API proto 文件上运行 grpc php 插件
问题描述
我正在用 PHP 构建我的分类帐应用程序的客户端。我已经编写了 DAML 代码,完成了grpc 快速入门教程,然后运行了命令
da add ledger-api-protos
现在看来下一步是运行 grpc_php_plugin 将 .proto 文件转换为 php 类和函数。在快速入门教程中,命令如下:
protoc --proto_path=examples/protos \
--php_out=examples/php \
--grpc_out=examples/php \
--plugin=protoc-gen-grpc=bins/opt/grpc_php_plugin \
./examples/protos/helloworld.proto
只有一个 .proto 文件。但是,我的项目文件夹具有 .proto 文件的整个目录结构!'protoc' 命令应该如何查找我的项目?
我看到有三个不同的主目录:com、google、grpc。我是否需要包含所有三个中的 .proto 文件?我看到许多 .proto 文件是相互依赖的。是否需要一两个主要的 .proto 文件,并且会导致所有其他文件都被拉入?
解决方案
protoc --proto_path=proto_dir \
--php_out=xxxxx \
--grpc_out=xxxxx \
--plugin=protoc-gen-grpc=bins/opt/grpc_php_plugin \
a.proto b.proto c.proto ...
或者参考这个脚本是怎么做的: https ://github.com/googleapis/googleapis/blob/master/Makefile#L39
推荐阅读
- php - 旧主题上的 PHP 7 错误 - Prestashop 1.6 / Thirtybees:'不能将字符串偏移量用作数组'
- swift - 自定义集合视图单元格大小
- spartacus-storefront - 如何在 spartacus 中自定义/扩展 ootb 组件
- ada - 如何在 Ada 中使用错误代码退出主程序?
- python - 屏蔽和修改来自 FPGA 串行通信的 8 字节信号
- node.js - 您能否定义“page_objects_path”目录,该目录将从所有子文件夹中读取而无需明确指定它们?
- python - 当我将单个记录删除到模板中时,所有记录都被删除
- docker - “ERRO [0002] 错误等待容器:上下文已取消” sshfs 插件问题
- python - 管道后将pymongo查询从字符串转换为双精度
- android - Android Studio Recyclerview (horizontal) - 离开视图时移除动画