brettminnie/breakfast-serializer

用于将任何复杂性的数据进行(反)序列化的库

0.1.0 2015-07-26 17:22 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:54:32 UTC


README

Build Status Scrutinizer Code Quality Dependency Status Coverage Status

作为其他知名序列化工具的替代品,最初我们目标是向后兼容,但开发一个轻量级的替代品似乎更合适。我们现在放弃了功能深度,以提供易于配置且无需配置即可良好工作的工具。

安装

$ composer require brettminnie/breakfast-serializer:0.1.*

任务完成,开始享受你的早晨序列化吧!

配置

默认情况下,它将执行深度/宽度优先递归并序列化为JSON格式,无需配置。它将始终使用名为className的变量附加到对象上。这是一个完整的命名空间,用于反序列化。如果您想要从缺少此变量的JSON数据中反序列化,则需要将其注入到对象中。

支持的序列化格式

  • JSON
  • XML
  • PHP对象表示法
  • YAML

功能

  • 简单的遍历深度限制
  • 将属性映射到备用名称,反之亦然
  • 从序列化中排除属性,并在反序列化时忽略它们
  • 简单的YAML配置格式( yay,没有慢速的php注释!)

快速示例

   
    // To retrieve the json representation json of an object
    $jsonData = BDBStudios\BreakfastSerializer\SerializerFactory::getSerializer()
        ->serialize($myClass);
   
   // To unserialize
   $myClass = BDBStudios\BreakfastSerializer\SerializerFactory::getSerializer()
        ->deserialize($jsonData);
   
   //To serialize an object with a limited depth recursion (aka only some of it)
   $jsonData = 
      BDBStudios\BreakfastSerializer\SerializerFactory::getSerializer(
         BDBStudios\BreakfastSerializer\IsSerializable::FORMAT_JSON,
         2
      )
      ->serialize($myClass);
    

更多示例在文档目录中。