Matomo初探系列之二:Matomo是如何处理HTTP请求的

发送到Matomo报表端(相对于Matomo追踪客户端)的任何请求都会到达根目录的index.php。此文件会创建一个FrontController实例,并分发当前请求。

FrontController会分析请求中携带的参数module和action。如果action没有找到,就会使用默认index。然后Matomo会调用匹配的控制器方法。查找路径是

Piwik\Plugins\<module>\Controller::<action>

案例:

  • module=MyPlugin&action=hello会调用:
  • Piwik\Plugins\MyPlugin\Controller::hello()
  • module=MyPlugin 会调用(没指定action,找默认index方法)
  • Piwik\Plugins\MyPlugin\Controller::index()

控制器方法需要做一件事,那就是返回一个字符串响应(或任何可以被类型转换为字符串的对象)。这些字符串可以是HTML,JSON,….

最为一名插件开发人员,你可以按照自己的方式去返回。不过,一般的做法是先创建一个Matomo试图,然后从API获取数据,最后呈现视图,如下:


class Controller extends \Piwik\Plugin\Controller
{
    public function index()
    {
        $view = new View("@MyPlugin\index.twig");
        $view->data = \Piwik\Plugins\MyPlugin\API::getInstance()->getData();
        return $view->render();
    }
}

发表评论