ruoge3s/protobuf-message-helper 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ruoge3s/protobuf-message-helper

最新稳定版本:0.5

Composer 安装命令:

composer require ruoge3s/protobuf-message-helper

包简介

ide helper for google protobuf message

README 文档

README

相关PHP扩展

allegro/php-protobuf

安装使用(仅在开发环境中使用即可)

composer require ruoge3s/protobuf-message-helper --dev

消息转换

const PROTOBUF_TYPES = [1, 2, 3, 4, 5, 6, 7, 8];

/**
 * 把protobuf消息对象转换为数组进行存储
 * @param ProtobufMessage $message
 * @return array
 */
function message2array(\ProtobufMessage $message)
{
    $data = [];
    foreach ($message->fields() as $f) {
        $name   = preg_replace_callback('/([-_]+([a-z]{1}))/i', function($matches){
            return strtoupper($matches[2]);
        },'get_' . $f['name']);
        $value  = $message->$name();
        if (in_array($f['type'], PROTOBUF_TYPES)) {
            $data[$f['name']] = $value;
        } else {
            if (is_array($value)) {
                foreach ($value as $son) {
                    $data[$f['name']][] = $this->message2array($son);
                }
            } else {
                $data[$f['name']] = $value ? $this->message2array($value) : null;
            }

        }
    }
    return $data;
}

证书

MIT

统计信息

  • 总下载量: 3.26k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2018-11-26