|
所需安装文件链接地址:
pecl protocolbuffers扩展:https://pecl.php.net/package/protocolbuffers
protoc-gen-php:https://github.com/chobie/protoc-gen-php
protobuf:https://github.com/google/protobuf
composer:https://getcomposer.org/
环境部署假设如下:
php.exe安装位置:F:\xampps\php
composer安装位置:F:\xampps\composer
protoc-gen-php项目位置:F:\xampps\htdocs\protoc_gen_php
protoc.exe安装位置:F:\xampps\htdocs\pwrd\protoc_gen_php
addressbook.proto文件位置:F:\xampps\htdocs\pwrd\protoc_gen_php
生成步骤:
1. 打开cmd 命令行提示符;
2. 切换到 protoc-gen-php 项目所在的目录,即 F:\xampps\htdocs\protoc_gen_php ;
3. 创建 composer.json 文件,内容为:
- {
- "require": {
- "protocolbuffers/protoc-gen-php": "dev-master"
- }
- }
复制代码
鉴于 composer 国外仓库比较慢,可以修改为国内镜像仓库,见文章最后附文;
4. 通过 composer 下载 protoc-gen-php 的源代码以及依赖库
- F:\xampps\php\php.exe F:\xampps\composer\composer.phar install
复制代码 等待完成安装过程,更新将 install 替换成 update 即可
5. 执行生成
- protoc.exe --plugin=protoc-gen-php="F:\xampps\htdocs\protoc_gen_php\vendor\bin\protoc-gen-php.bat" --php_out=genclass -I. addressbook.proto
复制代码 在生成的过程中,会报 No such or directory 的错误,是因为 proto 文件结构需要,如设置了 package, message 内部嵌套等需要创建目录级别而导致的
但是脚本无法自行创建目录(算是一个功能缺失,此时需要手动创建目录结构或者对php脚本做出修补)
6. 生成完毕后,genclass的结构大概如下:
P.S.
修改 composer 仓库为国内镜像仓库:
通过命令行:
- F:\xampps\php\php.exe F:\xampps\composer\composer.phar config --list
复制代码
查看当前配置详情中的 [home] 选项;
进入到 [home] 目录下,并打开 config.json 文件
增加或修改代码仓库如下:
- "repositories": [
- {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},
- {"packagist": false}
- ]
复制代码
本人的完整内容为:
- {
- "config": {},
- "repositories": [
- {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},
- {"packagist": false}
- ]
- }
复制代码
你可以根据实际情况做出调整。
|
|