rafrsr / lib-array2object
数组转对象转换库
v1.0.9
2021-01-31 18:58 UTC
Requires
- php: >=5.4
- doctrine/common: ^2.6|^3.0
- doctrine/inflector: ^1.0|^2.0
- symfony/property-access: ^2.8|^3.4|^4.0|^5.0
Requires (Dev)
- phpunit/phpunit: ^5.7.27
- satooshi/php-coveralls: ^1.1
README
数组转对象转换库。使用简单通用的属性注释将数组转换为对象
安装
- 安装composer
- 执行:
composer require rafrsr/lib-array2object
使用方法
只需要带有常用注释的类
<?php class Player { /** @var string */ protected $name; /** @var integer */ protected $number; //setters and getters here }
使用方法
$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
序列化
此库可用于在不进行复杂配置的情况下序列化和反序列化对象。
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
使用rafrsr/lib-array2xml库来转换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>'
此库易于使用且具有一些高级配置,但在某些情况下(需要分组、版本和其他内容)则需要使用类似jms/serializer的高级库
文档
完整文档可在wiki页面上找到
版权
此项目采用MIT许可协议。