ag84ark / object-convertor
数组转对象转换
1.2.0
2022-08-25 10:15 UTC
Requires
- php: ^7.3
- ext-json: *
- illuminate/support: ^5.8|^6.0|^7.0|^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- orchestra/testbench: ~3|~4|~5|~6
- phpunit/phpunit: ~7|~8|~9
- sempro/phpunit-pretty-print: ^1.0
This package is auto-updated.
Last update: 2024-09-25 15:01:00 UTC
README
此包帮助轻松地将数组转换为具有设置器和获取器的预定义类
为了更好地了解此包的使用,请查看Usage
以及tests
文件夹中的示例,在那里您可以更好地了解如何使用此类。
我创建此包是因为它在我处理数据库中的JSON信息时非常有帮助,这些信息是按类和子类结构化的。
真心希望它也能对其他人有所帮助!
安装
您可以通过composer安装此包
composer require ag84ark/object-convertor
使用方法
当为Laravel应用程序创建类时,尽量扩展BaseModelApi
,因为它会帮助您处理很多事情。
示例类
use ag84ark\ObjectConvertor\BaseModelApi; use ag84ark\ObjectConvertor\ObjectConstructorTrait; class SomeClass extends BaseModelApi { use ObjectConstructorTrait; private $a; private $b; private $other = ''; private $BigVar = ''; private $camelVar = ''; private $snake_var = ''; public function getBigVar(): string { return $this->BigVar; } public function setBigVar(string $BigVar): void { $this->BigVar = $BigVar; } /** * @return mixed */ public function getA() { return $this->a; } /** * @param mixed $a */ public function setA($a): void { $this->a = $a; } /** * @return mixed */ public function getB() { return $this->b; } /** * @param mixed $b */ public function setB($b): void { $this->b = $b; } public function getOther(): string { return $this->other; } public function setOther(string $other): void { $this->other = $other; } public function getCamelVar(): string { return $this->camelVar; } public function setCamelVar(string $camelVar): void { $this->camelVar = $camelVar; } public function getSnakeVar(): string { return $this->snake_var; } public function setSnakeVar(string $snake_var): void { $this->snake_var = $snake_var; } // .... }
通过构造函数(需要ObjectConstructorTrait)
$array = ['a' => 'val_a', 'b' => 'val_b', 'other' => 'val_other']; $someClassObject = new SomeClass($array);
从数组(需要ObjectConstructorTrait)
$array = ['a' => 'val_a', 'b' => 'val_b', 'other' => 'val_other']; $someClassObject = SomeClass::fromArray($array);
通过ObjectConvertor到扩展BaseModelApi的类
$array = ['a' => 'val_a', 'b' => 'val_b', 'other' => 'val_other']; /** @var SomeClass $someClassObject */ $someClassObject = ObjectConvertor::toObjectBaseModelApi($array, new SomeClass());
通过ObjectConvertor到普通类
$array = ['a' => 'val_a', 'b' => 'val_b', 'other' => 'val_other']; /** @var SomeClass $someClassObject */ $someClassObject = ObjectConvertor::toObject($array, new SomeClass());
基本类示例
class BasicClass { private $var1; private $var2; /** * @return mixed */ public function getVar1() { return $this->var1; } /** * @param mixed $var1 */ public function setVar1($var1): void { $this->var1 = $var1; } /** * @return mixed */ public function getVar2() { return $this->var2; } /** * @param mixed $var2 */ public function setVar2($var2): void { $this->var2 = $var2; } } $array = ['var1' => 'val_a', 'var2' => 'val_b']; /** @var BasicClass $basicClassObject */ $basicClassObject = ObjectConvertor::toObject($array, new BasicClass());
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全
如果您发现任何安全相关的问题,请通过arkangel062003@gmail.com发送电子邮件,而不是使用问题跟踪器。
致谢
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。
Laravel包模板
此包是用Laravel包模板生成的。