PHP协议缓冲区

时间:2011-06-03 08:12:10

标签: php protocol-buffers

在PHP中使用protobuf的可用库有哪些?

3 个答案:

答案 0 :(得分:14)

Protocol_Buffer_for_PHP

最后更新于2009年5月

为PHP实现Google“协议缓冲区”,包括解析...

问题列表:http://code.google.com/p/pb4php/issues/list

Protobuf-PHP

最后更新于2011年4月

Protobuf for PHP是针对PHP语言的Google协议缓冲区的实现,支持其二进制数据序列化,并包括一个protoc插件,用于从.proto文件生成PHP类。

已经付出了巨大的努力来生成包含所有类型提示的PHP文件,以便通过自动完成来帮助IDE。因此,它不仅可以用于与协议缓冲区服务进行通信,还可以用作数据对象的生成工具,无论最终的序列化是什么。

示例:

$person = new Tutorial\Person();
$person->name = 'DrSlump';
$person->setId(12);

$book = new Tutorial\AddressBook();
$book->addPerson($person);

// Use default codec
$data = $book->serialize();

// Use custom codec
$codec = new \DrSlump\Protobuf\Codec\Binary();
$data = $codec->encode($book);
// ... or ...
$data = $book->serialize($codec);

protoc-gen-php

上次更新时间为2010年12月5日

这是一个用于protoc的PHP Google协议缓冲区生成器插件。它从.proto文件生成PHP代码。

答案 1 :(得分:8)

还有https://github.com/drslump/Protobuf-PHP

上次更新于2013年12月。

要求(来自Github页面):

  • PHP 5.3
  • Pear的Console_CommandLine(用于protoc包装工具)
  • Google的protoc编译器2.3或更高版本
  • GMP或BC数学扩展¹

    ¹仅适用于int32,int64或fixed64类型中的负值。 请参阅已知问题部分。

答案 2 :(得分:6)

如果您关注性能,可以尝试PHP Protobuf

它是作为C语言中的扩展编写的PHP协议缓冲区实现。尽管它是C代码没有外部依赖,包括原始Google的实现。

PHP Protobuf附带了相当完整的文档。