wikibase / data-model-serialization
Wikibase数据模型序列化和反序列化工具
Requires
- php: >=5.5.9
- data-values/serialization: ~1.0
- serialization/serialization: ~4.0|~3.1
- wikibase/data-model: ~9.0|~8.0|~7.0|~6.0|~5.0|~4.2
Requires (Dev)
- data-values/geo: ~4.0|~3.0
- data-values/number: >=0.1 <0.11
- data-values/time: ~1.0|~0.2
- phpunit/phpunit: ^4.8.35
- wikibase/wikibase-codesniffer: ^0.4.1
Suggests
- data-values/geo: Needed for deserialization of geographical values
- data-values/number: Needed for deserialization of numerical values
- data-values/time: Needed for deserialization of time values
- dev-master / 2.9.x-dev
- 2.9.1
- 2.9.0
- 2.8.0
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.0
- 2.3.0
- 2.2.0
- 2.1.0
- 2.0.0
- 1.9.1
- 1.9.0
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.1
- 1.1.0
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0
- 0.1
- dev-legacy
- dev-Make_sure_all_Wikibase_codebases_run_PHPCS_during_composer_test
- dev-dm9x-1
- dev-removeOptions
- dev-micro-opti-entityid-stuffz
- dev-entity-setid-nonull
This package is auto-updated.
Last update: 2024-09-17 07:58:51 UTC
README
包含用于基本Wikibase数据模型实体类型及其组成组件的序列化和反序列化工具的库。支持的格式仅限于公共格式,即由Web API使用的格式。私有格式(如Wikibase Repo数据访问层使用的格式)的序列化代码属于其他组件。
最近更改可以在发布说明中找到。
安装
推荐使用Composer来使用此库。
Composer
要将此包添加为项目的本地依赖项,只需将wikibase/data-model-serialization
添加到项目的composer.json
文件中的依赖项即可。以下是一个定义此包2.0版本依赖项的composer.json
文件的示例
{ "require": { "wikibase/data-model-serialization": "~2.0" } }
手动
通过git或其他方式获取此包的代码,并获取所有依赖项。可以在composer.json
文件的"require"部分找到依赖项列表。然后,负责自动加载src目录中定义的类。
库使用
通过适当的工厂构造所需的具体反序列化器或序列化器实例。
use Wikibase\DataModel\DeserializerFactory; $deserializerFactory = new DeserializerFactory( /* ... */ ); $itemDeserializer = $deserializerFactory->newItemDeserializer();
然后使用deserialize
或serialize
方法。
$item = $itemDeserializer->deserialize( $myItemSerialization );
在反序列化情况下,防止失败是良好的实践。因此,通常更好的做法是使用稍微冗长的try-catch方法。
try { $item = $itemDeserializer->deserialize( $myItemSerialization ); } catch ( DeserializationException $ex ) { // Handling of the exception }
应通过SerializerFactory和DeserializerFactory访问此库提供的服务。其余的代码是实现细节,用户不应了解。
库结构
所有Wikibase数据模型对象都可以序列化为通用格式,该格式可以从其中稍后重建对象。这是通过实现一组Serializers\Serializer
对象的机制来完成的。这些对象将实例转换为仅包含原始类型和数组的结构。因此,该数据结构可以轻松地输入到json_encode
、serialize
或类似方法中。从此类序列化中重建对象的进程由实现Deserializers\Deserializer
接口的对象提供。
可以通过SerializerFactory
实例获取序列化器,可以通过DeserializerFactory
实例获取反序列化器。不允许直接构造这些序列化器和反序列化器,也不允许有任何关于它们的知识(即类型提示)。这些对象是此组件的内部对象,可能会随时更改名称或结构。在调用$serializerFactory->newItemDeserializer()
时,您只能知道您将获得一个Serializers\Serializer
实例。
运行测试
仅用于测试
composer test
仅用于风格检查
composer cs
用于完整的CI运行
composer ci
作者
Wikibase数据模型序列化由Thomas PT作为志愿者编写,并由Jeroen De Dauw作为Wikimedia Germany员工为Wikidata项目编写。
链接
- 在Packagist上的Wikibase数据模型序列化
- 在TravisCI上的Wikibase数据模型序列化
- 在 ScrutinizerCI 上的 Wikibase 数据模型序列化
- 在 OpenHub 上的 Wikibase 数据模型序列化
另请参阅
- Wikibase 数据模型
- Wikibase 内部序列化(针对“内部”序列化格式)