krvt/yii2-jms-serializer

JMS Serializer 扩展,适用于 Yii 框架

安装次数9,711

依赖者: 0

建议者: 0

安全性: 0

星级: 8

关注者: 2

分支: 2

类型:yii2-extension

2.0.1 2017-09-04 15:25 UTC

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

Build Status

安装

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