此包已被放弃,不再维护。未建议替代包。

PHP的Msgpack实现。它类似于JSON。但更快速、更小巧。

dev-master 2015-01-16 10:11 UTC

This package is auto-updated.

Last update: 2020-07-18 00:55:17 UTC


README

Build Status License

什么是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库,因此安装起来不太有趣。

许可证

MIT