nixihz / php-object
1.0.1
2021-10-29 04:06 UTC
Requires
- php: >=7.0
- ext-json: *
- nette/php-generator: ^3.6
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-29 05:50:05 UTC
README
允许从JSON生成类文件,包括多级和复杂对象,将JSON映射到PHP对象;
安装
您可以使用Composer将此库添加为项目依赖项,如下所示:Composer
composer require nixihz/php-object
如果您只需要在开发期间使用此库,例如运行项目的测试套件,那么您应该将其添加为开发时依赖项
composer require --dev nixihz/php-object
特性
- 从JSON生成PHP类文件
- 将JSON映射到对象
从JSON生成PHP类文件
执行composer require nixihz/php-object
后,您可以使用vendor/bin/php-object-gen
从JSON生成类文件
用法:
- 示例
$./vendor/bin/php-object-gen --path=/tmp --json='{"foo_bar":{"foo":1.3,"bar":[641,641]}}'
output
Class FooBar saved at: /tmp/FooBar.php
Class BaseClass saved at: /tmp/BaseClass.php
- 使用
--help
参数获取更多信息
$./vendor/php-object-gen --helper
将JSON映射到对象
fromJson
将JSON映射到对象
class FooBarClass extends PhpObject { /** @var string */ public $foo; /** @var integer */ public $bar; } class DemoClass extends PhpObject { /** @var FooBarClass */ public $foobar; /** @var FooBarClass[] */ public $foobars; } $json = '{"foobar":{"foo":"hello world","bar":64100},"foobars":[{"foo":"hello","bar":641},{"foo":"world","bar":664411}]}'; $demo = (new DemoClass())->fromJson($json); var_export($demo);
输出
DemoClass::__set_state(array(
'foobar' =>
FooBarClass::__set_state(array(
'foo' => 'hello world',
'bar' => 64100,
)),
'foobars' =>
array (
0 =>
FooBarClass::__set_state(array(
'foo' => 'hello',
'bar' => 641,
)),
1 =>
FooBarClass::__set_state(array(
'foo' => 'world',
'bar' => 664411,
)),
),
))