tecnoready/yii2-jms-serializer

JMS Serializer 扩展程序,适用于 Yii 框架

2.0.0 2015-10-05 13:09 UTC

This package is auto-updated.

Last update: 2024-08-29 04:05:18 UTC


README

此扩展程序提供了一个 Serializer 组件,允许您使用 JMS Serializer 库与 Yii 框架 2.0 一起使用。

JMSSerializer 允许您对任何复杂性的数据进行(反)序列化。目前,此扩展程序支持 JSON 和 XML。

它还为您提供了丰富的工具集,以适应您的特定需求。

内置功能包括

  • (反)序列化任何复杂性的数据;循环引用被优雅地处理。
  • 支持许多内置的 PHP 类型(如日期)
  • 支持版本控制,例如用于 API
  • 可通过 PHP、XML 和 YAML 进行配置

有关许可证信息,请参阅 LICENSE 文件。

文档位于 docs/guide/README.md

Build Status

安装

安装此扩展程序的首选方法是通过 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"}