krvt/ yii2-jms-serializer
JMS Serializer 扩展,适用于 Yii 框架
2.0.1
2017-09-04 15:25 UTC
Requires
- php: >=5.5
- jms/serializer: ~1.0.0|~0.16.0
- yiisoft/yii2: *
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is not auto-updated.
Last update: 2024-09-24 19:24:13 UTC
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 文件的要求部分。
使用方法
要使用此扩展,请将以下代码添加到您的应用程序配置中
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"}