在PHP中使用protobuf的可用库有哪些?
答案 0 :(得分:14)
最后更新于2009年5月
为PHP实现Google“协议缓冲区”,包括解析...
问题列表:http://code.google.com/p/pb4php/issues/list
最后更新于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);
上次更新时间为2010年12月5日
这是一个用于protoc的PHP Google协议缓冲区生成器插件。它从.proto文件生成PHP代码。
答案 1 :(得分:8)
还有https://github.com/drslump/Protobuf-PHP
上次更新于2013年12月。
要求(来自Github页面):
GMP或BC数学扩展¹
¹仅适用于int32,int64或fixed64类型中的负值。 请参阅已知问题部分。
答案 2 :(得分:6)
如果您关注性能,可以尝试PHP Protobuf。
它是作为C语言中的扩展编写的PHP协议缓冲区实现。尽管它是C代码没有外部依赖,包括原始Google的实现。
PHP Protobuf附带了相当完整的文档。