美文网首页
PHP使用protobuf协议

PHP使用protobuf协议

作者: JimmyGan | 来源:发表于2017-05-16 09:43 被阅读0次

    介于Windows下面protobuf的PHP扩展很难搞定,本文是基于centos6.5_x64

    1. 安装

    可以使用源码安装https://github.com/google/protobuf/, 也可以使用直接下载二进制文件复制到系统path里面

    安装完成后 在命令行执行 protoc -h

    ps: protoc 默认支持 --go_out golang版本

    2. PHP安装扩展(2017.08.07 如果在项目中引用 https://github.com/google/protobuf/php 则不需要进行安装)

    源码目录中 xxxxxx/php/ext/google/protobuf

    phpize 

    ./configure

    make 

    make install 

    在/etc/php.d/中新建  protobuf.ini,并加入以下内容开启扩展

    echo extension=protobuf.so > /etc/php.d/protobuf.ini

    extension=protobuf.so

    3. 根据协议生成php文件

    protoc --php_out=out_dir test.proto

    4. 使用

    将https://github.com/google/protobuf/php下的src引入到工程中,或者使用composer进行管理 

    ps: 由于我是手动添加到工程目录, 将descriptor.php文件中的类按namespace的格式分别复制到对应的类中

    message.proto

    syntax = "proto3";

    package protocols.protobuf;

    // import "any.proto";

    //请求

    message Request {

    int32    id      = 1; //消息类型ID

    int32    code    = 2;

    }

    $request=new\Protocols\Protobuf\Request();

    $request->mergeFromString($data);

    var_dump($request->getId());

    相关文章

      网友评论

          本文标题:PHP使用protobuf协议

          本文链接:https://www.haomeiwen.com/subject/iixkxxtx.html