hannesvdvreken / msgpack
此包已被放弃,不再维护。未建议替代包。
PHP的Msgpack实现。它类似于JSON。但更快速、更小巧。
dev-master
2015-01-16 10:11 UTC
Requires
- php: ~5.3
Requires (Dev)
- ext-msgpack: 0.5.*
- phpunit/phpunit: ~4.4
This package is auto-updated.
Last update: 2020-07-18 00:55:17 UTC
README
什么是Msgpack?
如果您曾希望使用JSON的便利性(例如存储带有元数据的图像),但由于技术原因(编码、大小、速度等)而无法使用,MessagePack是完美的替代品。
MessagePack是一种高效的二进制序列化格式。它允许您像JSON一样在多种语言之间交换数据。但它更快、更小。小整数编码为单个字节,典型的短字符串只需要额外的单个字节,加上字符串本身。
有关Msgpack的更多信息:msgpack.org
使用方法
有2个主要类,每个类都有一个方法可以用来使用
$encoder = new Msgpack\Encoder(); $string = $encoder->encode($data); $decoder = new Msgpack\Decoder(); $data = $decoder->decode($string);
或者,如果您喜欢,您也可以使用相同的接口调用静态方法
$string = Msgpack\Encoder::encode($data); $decoder = Msgpack\Decoder::decode($string);
这样做是为了让您能够将编码器和解码器注入到您的类中,以便您可以模拟它们。
某些消息或编码的字符串会抛出异常,因为Msgpack有其限制
try { $string = $encoder->encode($data); } catch (Msgpack\UnencodeableException $unencex) { // }
try { $string = $decoder->decode($string); } catch (Msgpack\UndecodeableException $undecex) { // }
测试
使用composer test
运行测试。
其他包
这不是第一个关于msgpack的Packagist包,但它是最先不是Msgpack cli工具的RPC客户端的包。此包不需要安装任何外部非PHP库。默认的Msgpack库是一个PECL库,因此安装起来不太有趣。