Matomo数据模型系列文章之五:报表

归档数据就是归档过程中产生的数据,它被以记录的形式存储在数据库中。这些记录随后会被加载并转化成报表,最后呈现在用户面前。

从记录到报表

在之前的文章中说到记录与报表时是所区别的。记录被结构化、被优化,存储在数据库中。它对人类和其他软件来说是不可读的。

API方法不能简单读取这些归档数据并直接返回。它们必须被格式化以便呈现在报表中。

DataTable过滤器

报表会被存储在DataTable类对象中,这些对象可以以下形式进行操作:

  • 遍历每一行并手工修改
  • 使用DataTable过滤器

DataTable过滤器操作DataTable实例的方法是一致的。Piwik已经预定义了一些过滤器,这样你可以直接使用它们而无需为通常的操作写很多代码了。

有时候为了存储效率,需要对报表对应的记录进行一定程度改变。而呈现报表则需要将改变后的记录重新恢复。比如说,代表列的整型ID恢复成字符串类型,通过ReplaceColumnName过滤器即可完成。

$dataTable->filter(‘ReplaceColumnNames’);

暴露报表

报表由插件中定义的API类生成。这些类加载归档记录,将它们转换成可以呈现的报表,然后通过报表API提供服务。

报表API可以通过HTTP请求进行调用或直接通过PHP代码(如在控制器Controller方法中) 调用。

学习更多

发表评论