如何在php中设置直接的piwik API调用

时间:2012-02-11 07:17:47

标签: php matomo

我尝试这样做,但它给出了这个错误: Fatal error: Class 'Piwik_FrontController' not found in C:\wamp\www\aqar2\piwik.php on line 11

我的网站路径是:localhost/aqar2 我的piwik路径是:localhost/aqar2/piwik

<?php
// if you don't include 'index.php', you must also define PIWIK_DOCUMENT_ROOT
// and include "libs/upgradephp/upgrade.php" and "core/Loader.php"
define('PIWIK_INCLUDE_PATH', realpath('.localhost/aqar2/.'));
define('PIWIK_USER_PATH', realpath('.localhost/aqar2/.'));
define('PIWIK_ENABLE_DISPATCH', false);
define('PIWIK_ENABLE_ERROR_HANDLER', false);
define('PIWIK_ENABLE_SESSION_START', false);
require_once PIWIK_INCLUDE_PATH . "piwik/index.php";
require_once PIWIK_INCLUDE_PATH . "piwik/core/API/Request.php";
Piwik_FrontController::getInstance()->init();
// This inits the API Request with the specified parameters
$request = new Piwik_API_Request('
        method=UserSettings.getResolution
        &idSite=1
        &date=yesterday
        &period=week
        &format=XML
        &filter_limit=3
        &token_auth=&token_auth=a688c5c011dac27cf125eaa84f95e59b
');
// Calls the API and fetch XML data back
$result = $request->process();
echo $result;
?>

2 个答案:

答案 0 :(得分:4)

如果您的php文件位于localhost/aqar2/,则路径必须为define('PIWIK_INCLUDE_PATH', realpath('piwik/'));

我知道你可能已经修好了所以我正在为那些可能需要它的人添加它......

答案 1 :(得分:0)

该错误是使用(或引用)但尚未加载的类的结果。这可能是由于您的PIWIK_INCLUDE_PATH设置不正确,或者您需要自己包含该类。

首先,仔细检查PIWIK_INCLUDE_PATH中设置的值是否是系统上的有效路径,可能是:

if (is_dir(PIWIK_INCLUDE_PATH)) {
  exit('IT IS A REAL PATH');
} else {
  exit('IT IS NOT A REAL PATH');
}

如果结果不是真正的道路,也许你应该看看'。' 'localhost'目录中的点前缀。你不是故意使用realpath('localhost/aqar2/piwik');。如果确实有效,您还应该看看如何设置PIWIK_USER_PATH

如果这不起作用,您应该自己考虑包含FrontController类,但这可能意味着您必须手动包含所有classe的依赖项。要手动添加课程,请使用include(PIWIK_INCLUDE_PATH . '/core/FrontController.php');

您尝试使用的目录结构似乎是错误的,也许您应该修改它并尝试将所有文​​件保留在localhost目录下。