didix16/php-apidataobject

这是一个简单的库,允许轻松处理来自任何来源(尤其是来自API来源)的数据,并以更实用的方式将数据组织起来,使其类似于数组或对象,便于访问。它允许快速实现DTO。

v1.0.3 2021-09-23 10:47 UTC

This package is auto-updated.

Last update: 2024-09-23 17:02:14 UTC


README

这是一个简单的库,允许轻松处理来自任何来源(尤其是来自API来源)的数据,并以更实用的方式将数据组织起来,使其类似于数组或对象,便于访问。它允许快速实现DTO。

内容

什么是ApiDataObject

它只是一个类,可以处理来自API来源的JSON格式或其他格式的数据,并在内存中对其进行结构化,以便像关联数组或普通对象一样轻松处理。

要将数据传递给此类,首先它应该是一个简单的PHP关联数组或纯PHP标准对象。

它可以通过使用JSON字符串文本创建。

安装

composer require didix16/php-apidataobject

使用

class ApiPlatformDataObject extends ApiDataObject {}

...

class AWebHookProcessor {

    /**
     * @var array|object
     */
    $data;

    public function process()
    {
        $apiData = new ApiPlatformDataObject($this->data);

        /**
         * data = 
         * [
         *  'property1' => 'value1',
         *  'property2' => 'value2',
         *  'property3' => 'value3',
         *  'property4' => 'value4',
         * ...
         * ]
         */

        /**
         * Different accessors
         */
        $apiData['property1'];
        $apiData->property1;
        $apiData->property1();

        /**
         * Different setters
         */
        $apiData['property1'] = 'value5';
        $apiData->property1 = 'value5';

        // chainable setter properties
        $apiData
        ->property1('value5')
        ->property2('value6')
        ...
    }

    public function processJson(string $json)
    {
        $apiData = ApiPlatformDataObject::fromJson($json);

        /**
         * Different accessors
         */
        $apiData['property1'];
        $apiData->property1;
        $apiData->property1();

        /**
         * Different setters
         */
        $apiData['property1'] = 'value5';
        $apiData->property1 = 'value5';

        // chainable setter properties
        $apiData
        ->property1('value5')
        ->property2('value6')
        ...

    }
}

另请参阅

  • php-apidatamapper - 一个DTO库,允许使用简单的字段映射语言将传入的API数据映射到您的任何实体/模型。