nixihz / php-object

1.0.1 2021-10-29 04:06 UTC

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生成类文件

用法:

  1. 示例
$./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

  1. 使用--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,
        )),
      ),
))