typiqally / binary
PHP 二进制序列化器
1.0-alpha1
2020-12-14 09:07 UTC
Requires
- php: ^7.4 || ^8.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^9.4
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。