eggbe / compact
通用对象打包和解包工具
Requires
- php: >=7.2.0
- able/helpers: dev-master
- able/prototypes: dev-master
- able/statics: dev-master
- eggbe/utilities: dev-master
This package is auto-updated.
Last update: 2021-09-06 00:02:23 UTC
README
这是一个轻量级、高性能的库,它以简单的方式在两个应用程序之间传输任何对象或数组。
要求
- PHP >= 7.2.0
- Eggbe/Utilities
- Able/Helpers
- Able/Prototype
安装
以下是使用 composer 安装 Eggbe/Compact 包的简单方法
composer require eggbe/compact
使用
现在我们可以在代码的任何地方使用库的功能
$SerializedDataArray = Compactor::compact($OriginalDataArray, $FlagsCombination);
二进制标志组合定义了库在争议情况下的行为。目前只支持两个标志:Compactor::CO_STRICT 和 Compactor::CO_ALLOW_ARRAYABLE。默认情况下始终设置 Compactor::CO_STRICT 标志。
在严格模式下,库要求所有对象实现 Able/Prototypes 包中定义的 \Able\Prototypes\IPresentable 接口。此接口提供了一种通用方式,通过简单实现 IPresentable::present() 方法将对象表示为数组。
在另一种情况下,如果提供了 Compactor::CO_ALLOW_ARRAYABLE 标志,并且对象没有实现 \Able\Prototypes\IPresentable 接口,则库会尝试通过 toArray() 方法将此对象转换为数组。如果此方法不存在,将抛出异常。
以下代码从序列化表示返回数据
$OriginalDataArray = Compactor::decompact($SerializedDataArray, $Aliaser);
库要求所有可恢复的对象实现 Able/Prototypes 包中定义的 \Able\Prototypes\IRestorable 接口。此接口提供了一种通用方式,通过简单实现 IRestorable 构造函数创建对象并填充其数据。
有时在反序列化过程中进行类重载是很重要的。请参阅 Aliaser 组件文档以获取更多信息。
许可证
此软件包在 MIT 许可证 下发布。