mihai-stancu / serializer
自定义规范化器和一系列编码器。
v1.0.4
2017-05-23 13:08 UTC
Requires
- php: >=5.4
- symfony/config: ^2|^3
- symfony/dependency-injection: ^2|^3
- symfony/http-kernel: ^2|^3
- symfony/property-info: ^2.8|^3
- symfony/serializer: ^2|^3|^3@dev
Requires (Dev)
- php: >=5.5
- 2tvenom/cborencode: dev-master@dev
- dizews/php-ubjson: dev-master@dev
- doctrine/orm: ^2|^3
- fzaninotto/faker: ^1
- kunststube/rison: dev-master@dev
- mihai-stancu/sereal: dev-master@dev
- phpunit/phpunit: ^5
- phuedx/tnetstring: dev-master@dev
- rych/bencode: dev-master@dev
- symfony/yaml: ^2|^3
- zendframework/zend-config: ^2
Suggests
- ext-igbinary: ^1.2
- ext-mongo: ^1.6
- ext-msgpack: ^0.5
- ext-yaml: ^1.2
- 2tvenom/cborencode: dev-master
- dizews/php-ubjson: dev-master
- doctrine/orm: ^2|^3
- kunststube/rison: dev-master
- mihai-stancu/sereal: dev-master
- phuedx/tnetstring: dev-master
- rych/bencode: dev-master
- symfony/yaml: ^2|^3
- zendframework/zend-config: ^2
This package is not auto-updated.
Last update: 2024-09-14 18:04:18 UTC
README
内容
一个递归规范化器,使用 symfony/property-info 推断对象图元素的数据类型。
一个类型提示规范化器,保留正在规范化的对象图中的类型信息。
以下格式的(symfony 兼容)编码器集合
- Bencode - 由 rych/bencode 提供的纯 PHP 实现。
- BSON - 由
mongo扩展提供的 PHP 扩展。 - CBOR - 由 2tvenom/cborencode 提供的纯 PHP 实现。
- 导出 - 作为 PHP 核心功能。
- 表单 - 作为 PHP 核心功能。
- IGBinary - 由
igbinary扩展提供的 PHP 扩展 -- 作为PHP Serialize的替代品。 - Ini - 由 zendframework/zend-config 提供的 PHP 实现。
- MsgPack - 由
msgpack扩展提供的 PHP 扩展。 - Rison - 由 deceze/Kunststube-Rison 提供的纯 PHP 实现。
//Sereal- 由 tobyink/sereal 提供的纯 PHP 实现。- 序列化 - 作为 PHP 核心功能。
//Smile- 由libsmile扩展提供的 PHP 扩展。- Tnetstring - 由 phuedx/tnetstring 提供的纯 PHP 实现。
- UBJSON - 由 dizews/php-ubjson 提供的纯 PHP 实现。
- YAML - 由
yaml扩展提供的 PHP 扩展,或由 symfony/yaml 提供的纯 PHP 实现。
安装
从 composer.json 中的建议中选择一个或多个编码格式。如果所选格式在以下内容中描述为 PHP 扩展,则必须安装该扩展。如果是纯 PHP 实现,则可以通过 composer 需求它。
composer require mihai-stancu/serializer composer require your-chosen/encoder-package
// in AppKernel::registerBundles() $bundles = array( // ... new MS\SerializerBundle\MSSerializerBundle(), // ... );
使用
在安装了包以及至少一种建议的编码格式之后,该编码格式将被注册为 symfony/serializer 的序列化格式。
$encoderName = array_rand( array( 'bencode', 'bson', 'cbor', 'export', 'form', 'igbinary', 'ini', 'msgpack', 'rison', //'sereal', 'serial', //'smile', 'tnetstring', 'ubjson', 'yaml', ) ); $serializer = $container->get('serializer'); $string = $serializer->serialize($data, $encoderName); $data = $serializer->unserialize($data, $class, $encoderName);