как настроить прямой вызов API piwik в php - PullRequest
0 голосов
/ 11 февраля 2012

Я пытался сделать это таким образом, но выдает эту ошибку: 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 ]

4 голосов
/ 16 октября 2012

Если ваш php файл в localhost/aqar2/, то путь должен быть define('PIWIK_INCLUDE_PATH', realpath('piwik/'));

Я знаю, что вы, вероятно, уже исправили это, поэтому я добавляю это для тех, кому это может понадобиться ...

0 голосов
/ 11 февраля 2012

Эта ошибка является результатом использования класса (или ссылки), но еще не загруженного класса.Скорее всего, это результат неправильной установки 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 самостоятельно, но это может означать, что вам придется вручнуювключите также все зависимости этого класса.Чтобы включить класс вручную, используйте include(PIWIK_INCLUDE_PATH . '/core/FrontController.php');

Казалось бы, структура каталога, которую вы пытаетесь использовать, неверна, возможно, вам следует пересмотреть ее и попытаться сохранить все файлы в каталоге localhost.

...