暖冬的源码分享

 找回密码
 立即加入

QQ登录

只需一步,快速开始

搜索
热搜: 巧借
查看: 16246|回复: 0

Win下用protoc-gen-php生成PB的PHP代码

[复制链接]
发表于 2015-4-28 11:45:33 | 显示全部楼层 |阅读模式
所需安装文件链接地址:
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 文件,内容为:
  1. {
  2.         "require": {
  3.                 "protocolbuffers/protoc-gen-php": "dev-master"
  4.         }
  5. }
复制代码

鉴于 composer 国外仓库比较慢,可以修改为国内镜像仓库,见文章最后附文;

4. 通过 composer 下载 protoc-gen-php 的源代码以及依赖库
  1. F:\xampps\php\php.exe F:\xampps\composer\composer.phar install
复制代码
等待完成安装过程,更新将 install 替换成 update 即可

5.  执行生成
  1. 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的结构大概如下:
QQ截图20150428114114.png


P.S.

修改 composer 仓库为国内镜像仓库:
通过命令行:
  1. F:\xampps\php\php.exe F:\xampps\composer\composer.phar config --list
复制代码

查看当前配置详情中的 [home] 选项;
进入到 [home] 目录下,并打开 config.json 文件
增加或修改代码仓库如下:
  1. "repositories": [
  2.                 {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},
  3.                 {"packagist": false}
  4.         ]
复制代码

本人的完整内容为:
  1. {
  2.     "config": {},
  3.         "repositories": [
  4.                 {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},
  5.                 {"packagist": false}
  6.         ]
  7. }
复制代码

你可以根据实际情况做出调整。








addressbook.proto

370 Bytes, 下载次数: 5570

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

本版积分规则

手机版|小黑屋|享码网 ( 京ICP备12003721号 )

GMT+8, 2024-3-29 18:31

Powered by Discuz! X3.5

Copyright © 2001-2021 Tencent Cloud.

快速回复 返回顶部 返回列表