定制 opensoft/simple-serializer 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

opensoft/simple-serializer

Composer 安装命令:

composer require opensoft/simple-serializer

包简介

Simple Serializer

README 文档

README

Build Status Total Downloads Latest Stable Version Scrutinizer Quality Score SensioLabsInsight

Introduction

Simple-Serializer allows you to serialize your objects into a requested output format such as JSON. The library is written to work with DTO objects in the REST services.

Built-in features include:

  • (de-)serialize object graphs
  • supports boolean, integer, double, DateTime<format>, array, T, array<T>, null types, where "T" - is some PHP object.
  • configurable via YAML
  • three unserialize mode (non-strict, medium strict, strict)

Unserialize mode: Non-Strict mode - serializer does not check incoming parameters Medium Strict - serializer extra check incoming parameters and if they exist throw InvalidArgumentException Strict - serializer extra check incoming parameters completely as expected if there are extra arguments or missing some, it throws an exception.

Some Restrictions:

  • object must have configuration for serialize/unserialize

Possible TODO list:

  • (de-)serialize object graphs of any complexity including circular references
  • configurable via PHP, XML, or annotations
  • custom integrates with Doctrine ORM, et. al.

It should be noted that Simple-Serializer is realy simple library with minimum configuration, but it provides wide opportunity for create REST API.

Build Status

Installation

To install Simple-Serializer with Composer just add the following to your composer.json file:

    // composer.json
    {
        // ...
        require: {
            // ...
            "opensoft/simple-serializer": "dev-master"
        }
    }

Then, you can install the new dependencies by running Composer's update command from the directory where your composer.json file is located:

$ php composer.phar update

Configuration

MyBundle\Resources\config\serializer\ClassName.yml
    Fully\Qualified\ClassName:
        properties:
            some-property:
                expose: true
                type: string
                serialized_name: foo
                since_version: 1.0
                until_version: 2.0
                groups: ['get','patch']
  • expose
  • true
  • false (default)
  • type
  • integer
  • boolean
  • double
  • string
  • array
  • T - fully qualified class name
  • array<T>
  • DateTime
  • DateTime<format>
  • format could be name of DateTime constant (COOKIE, ISO8601), string or empty (default format is ISO8601)
  • serialized_name
  • default value is equal name property
  • since_version
  • string
  • until_version
  • string
  • groups
  • array
  • null_skipped
  • true
  • false (default)

Serializing Objects

Most common usage is probably to serialize objects. This can be achieved very easily:

    <?php
    //get Serializer
    $serializer = $this->getSerializer();
    $string = $serializer->serialize($object);
    //Serialize array of the objects
    $string = $serializer->serialize(array($object));
    //Serialize specific groups
    $serializer->setGroups(array('get'));
    $string = $serializer->serialize($object);
    //Serialize specific version
    $serializer->setVersion('1.0');
    $string = $serializer->serialize($object);

Deserializing Objects

You can also unserialize objects from JSON representation. For example, when accepting data via an API.

    <?php
    //get Fully\Qualified\ClassName
    $object = $this->getClassName();
    //get Serializer
    $serializer = $this->getSerializer();
    $object = $serializer->unserialize($jsonData, $object);
    //Unserialize array of the objects
    $objects = $serializer->unserialize($jsonData, array($object));
    //Unserialize specific groups
    $serializer->setGroups(array('get'));
    $object = $serializer->unserialize($jsonData, $object);
    //Unserialize specific version
    $serializer->setVersion('1.0');
    $object = $serializer->unserialize($jsonData, $object);
    //Strict unserialize mode
    $serializer->setStrictUnserializeMode(2);
    $object = $serializer->unserialize($jsonData, $object);
    //Medium Strict unserialize mode
    $serializer->setStrictUnserializeMode(1);
    $object = $serializer->unserialize($jsonData, $object);
    //Non-Strict unserialize mode
    $serializer->setStrictUnserializeMode(0);
    $object = $serializer->unserialize($jsonData, $object);

统计信息

  • 总下载量: 14.2k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 19
  • 点击次数: 1
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 19
  • Watchers: 5
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2012-08-28

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固