datacomposer :数据聚合器。可以把 mysql,mongo,http api,xml, excel 等不同来源的数据按照数据列对应关系(类似于主键外键)聚合成树状结构的数据集合的实用小工具。
它是php第三方类库,通过composer工具安装或升级
目前支持的php框架:laveral, thinkphp。
小例子 :如下有两张表,想在获取订单数据时,同时获取对应的商户数据。
添加一个配置文件:order.php
文件内容如下:
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
其他数据源(通过自定义读取器支持)