rafrsr/lib-array2object
最新稳定版本:v2.0.0
Composer 安装命令:
composer require rafrsr/lib-array2object
包简介
Array to object conversion library
README 文档
README
Array to object conversion library. Convert a array to a object using simple and common property annotations
Installation
- Install composer
- Execute:
composer require rafrsr/lib-array2object
Usage
Only need the class with common annotations
<?php class Player { /** @var string */ protected $name; /** @var integer */ protected $number; //setters and getters here }
To use:
$phpArray = ['name' => 'David', 'number' => '1']; $object = Array2ObjectBuilder::create()->build()->createObject(Player::class, $phpArray); echo $object->getName();//David echo $object->getNumber();//1 $array = Object2ArrayBuilder::create()->build()->createArray($object); echo $array['name'];//David echo $array['number'];//1
Serialization
This library can be used to serialize/deserialize objects without a complex configuration.
Json
//deserialize $json = '{"name":"David","number"=>"1"}'; $object = Array2ObjectBuilder::create()->build()->createObject(Team::class, json_decode($json, true)); echo $object->getName()//David //serialize $array = Object2ArrayBuilder::create()->build()->createArray($object); echo json_encode($array); // {"name":"David","number"=>"1"}
Xml
Using the library rafrsr/lib-array2xml is very handy convert from/to xml
//deserialize $xml = '<Player><name>Player 1</name><number>1</number></Player>'; $object = Array2ObjectBuilder::create()->build()->create(Team::class, XML2Array::createArray($xml)); echo $object->getName()//David //serialize $array = Object2ArrayBuilder::create()->build()->createArray($object); echo Array2XML::createXml('Player', $array); // '<Player><name>Player 1</name><number>1</number></Player>'
This library its handy to use and has some advanced configuration, but in some cases (need groups, versions and other stuffs) is required use advanced libraries like jms/serializer
Documentation
Full documentation are available on the wiki page
Copyright
This project is licensed under the MIT license.
统计信息
- 总下载量: 18.03k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 0
- 依赖项目数: 4
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-06-22