tecnoready / yii2-jms-serializer
JMS Serializer 扩展程序,适用于 Yii 框架
2.0.0
2015-10-05 13:09 UTC
Requires
- php: >=5.5
- jms/serializer: ~1.0.0|~0.16.0
- yiisoft/yii2: *
Requires (Dev)
- phpunit/phpunit: ~4.0
README
此扩展程序提供了一个 Serializer
组件,允许您使用 JMS Serializer 库与 Yii 框架 2.0 一起使用。
JMSSerializer 允许您对任何复杂性的数据进行(反)序列化。目前,此扩展程序支持 JSON 和 XML。
它还为您提供了丰富的工具集,以适应您的特定需求。
内置功能包括
- (反)序列化任何复杂性的数据;循环引用被优雅地处理。
- 支持许多内置的 PHP 类型(如日期)
- 支持版本控制,例如用于 API
- 可通过 PHP、XML 和 YAML 进行配置
有关许可证信息,请参阅 LICENSE 文件。
文档位于 docs/guide/README.md。
安装
安装此扩展程序的首选方法是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist krtv/yii2-jms-serializer
或
"krtv/yii2-jms-serializer": "~2.0.0"
将其添加到 composer.json 的 require 部分中。
用法
要使用此扩展程序,只需在您的应用程序配置中添加以下代码
return [ // ... 'components' => [ 'serializer' => [ 'class' => 'krtv\yii2\serializer\Serializer', 'formats' => [ 'json', // XML is also available to use. // 'xml', ], // Uncomment if you would like to use handlers: http://jmsyst.com/libs/serializer/master/handlers // // 'handlers' => [ // 'datetime' => [ // 'defaultFormat' => 'c', // ISO8601 // ], // 'my_handler' => [ // 'class' => 'app\\serializer\\handler\\MyHandler', // ], // // ... // ], // Uncomment if you would like to use different naming strategy for properties. // "camel_case" is a default one. Available strategies are: "camel_case", "identical" and "custom". // // 'namingStrategy' => [ // 'name' => 'camel_case', // 'options' => [ // 'separator' => '_', // 'lowerCase' => true, // ], // ], // Uncomment if you would like to configure class-metadata or enable cache. // // 'metadata' => [ // 'cache' => true, // 'directories' => [ // [ // 'namespace' => 'Foo\\Bar', // 'alias' => '@app/config/serializer/foo/bar', // ], // // ... // ] // ], ], // ... ], // ... ];
现在您可以通过 \Yii::$app->serializer
或 \Yii::$container->get('serializer')
访问 krtv\yii2\serializer\Serializer
实例。
数据序列化
echo $serializer->serialize(['foo' => 'bar'], 'json'); // {"foo": "bar"}