typiqally/binary

PHP 二进制序列化器

1.0-alpha1 2020-12-14 09:07 UTC

This package is auto-updated.

Last update: 2024-09-17 17:10:52 UTC


README

此软件包旨在帮助创建二进制数据的结构化模型。例如,这可以用来提供结构化方式序列化和反序列化传入和传出的TCP数据或其他二进制相关用例。

注意

此项目目前处于开发阶段,仍处于alpha版本。

安装

可以通过执行以下命令来安装此软件包

composer require typiqally/binary

模型

结构化二进制模型创建如下

use Typiqally\Binary\BinaryModel;

class Packet extends BinaryModel
{
    public array $fields = [
        //Name => [Type, Expected length],
        'magic' => ['raw', 4],
        'protocol' => ['numeric', 1],
        'length' => ['numeric', 2],
    ];
}

用法

当模型创建时,序列化非常简单。构造函数将自动创建,如果需要,可以继承。只需像这样构建您的模型

$model = new Packet("\x12\x34\x56\x78", 10, 1337);

序列化

要序列化您的模型到二进制,只需调用以下函数

$value = BinarySerializer::serialize($model);
//Output (converted to hex using bin2hex): 123456780a0539

反序列化

要将二进制反序列化为模型,您可以调用以下函数

$model = BinarySerializer::deserialize(Packet::class, $value);
//Output (by using the internal __toString function): magic=%124Vx, protocol=10, length=1337

许可

此项目采用GPL-3.0许可。有关完整的许可文本,请参阅LICENSE.md