dataComposer - 基于 PHP 的数据聚合器


MIT
跨平台
PHP

软件简介

datacomposer :数据聚合器。可以把 mysql,mongo,http api,xml, excel
等不同来源的数据按照数据列对应关系(类似于主键外键)聚合成树状结构的数据集合的实用小工具。

它是php第三方类库,通过composer工具安装或升级

目前支持的php框架:laveral, thinkphp。

小例子 :如下有两张表,想在获取订单数据时,同时获取对应的商户数据。

  1. 添加一个配置文件:order.php

  2. 文件内容如下:

    return [
    “property” => [
    “tableName” => “order”,
    ],
    “dataSource” => [
    “customer” => [
    “property” => [
    “tableName” => “customer”,
    “relationKey” => [“customer_id” => “id”]
    ]
    ]
    ]
    ]

获取数据

$dc=new Engine("order");
$data=$dc->GetData();

数据如下

[
    [
        "id" => 1,
        "customer_id" => 333,
        "customer"=>[
            "id"=>333,
            "name"=>"小米",
            "address"=>"北京"
        ],
        "address" => "北京海淀西办街12号",
        "name" => "张三",
        "mobile" => "13455555555",
        "number" => 3
    ],
    [
        "id" => 2,
        "customer_id" => 354,
        "customer"=>[
            "id"=>354,
            "name"=>"华为",
            "address"=>"深圳"
        ],
        "address" => "上海天津街45号301",
        "name" => "李四",
        "mobile" => "17634343434",
        "number" => 1
    ]
];

注意

datacomposer(数据聚合器)只能通过父级数据源影响子级数据源数据,不能反过来。

用上面例子说明,order数据源添加where条件后, customer数据会跟随变化。

但是 customer数据源添加where条件后,只会影响自己的数据,不会影响 order数据。

支持的数据源

  • 几乎所有关系型数据库:mysql,sqlserver,oracle,sqlite 等

  • mongo

  • redis

  • excel

  • 文件型数据源:json,xml,phpArray

  • http api

  • 其他数据源(通过自定义读取器支持)