knplabs/knp-piwik-client-bundle

This package is abandoned and no longer maintained. No replacement package was suggested.

Piwik API client bundle for Symfony2.

Installs: 6 141

Dependents: 0

Suggesters: 0

Security: 0

Stars: 17

Watchers: 35

Forks: 7

Open Issues: 3

Type:symfony-bundle

dev-master 2014-02-28 12:16 UTC

This package is auto-updated.

Last update: 2022-09-23 13:37:25 UTC


README

This project is not actively maintained by KnpLabs. Please contact us if you would like to take over.

Provides support for Piwik API into your Symfony2 projects.

Installation

Add Knp\PiwikClient to vendors

git submodule add git://github.com/KnpLabs/KnpPiwikClient.git vendor/PiwikClient

Specify Knp\PiwikClient in autoload.php

// app/autoload.php
$loader->registerNamespaces(array(
    // ...
    'Knp\PiwikClient'   => __DIR__.'/../vendor/PiwikClient/src',
    // ...
));

Add Knp\PiwikBundle to your src/Bundle dir

git submodule add git://github.com/KnpLabs/PiwikBundle.git vendor/bundles/Knp/Bundle/PiwikBundle

Add KnpPiwikBundle to your application kernel

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        // ...
        new Knp\Bundle\PiwikBundle\KnpPiwikBundle(),
        // ...
    );
}

Configuration

HTTP client (Piwik on remote server)

# app/config/config.yml
knp_piwik:
    connection: piwik.connection.http
    url:        http://piwik.example.com
    token:      PIWIK_API_TOKEN

Don't forget to add Buzz library for HTTP requests into vendors:

git submodule add https://github.com/kriswallsmith/Buzz.git src/vendor/Buzz

And to autoload.php:

// src/autoload.php
$loader->registerNamespaces(array(
    // ...
    'Buzz'  => $vendorDir.'/Buzz/lib',
    // ...
));

Local PHP client (Piwik on local server)

# app/config/config_dev.yml
knp_piwik:
    connection: piwik.connection.piwik
    token:      PIWIK_API_TOKEN

You need to require Piwik library in autoload.php:

// src/autoload.php
// ...
define('PIWIK_ENABLE_DISPATCH', false);
define('PIWIK_ENABLE_ERROR_HANDLER', false);
define('PIWIK_ENABLE_SESSION_START', false);
require_once PIWIK_INCLUDE_PATH . "/index.php";
require_once PIWIK_INCLUDE_PATH . "/core/API/Request.php";
Piwik_FrontController::getInstance()->init();

Testing

There is another connection, called stub. It's used for testing:

# app/config/config_test.yml
knp_piwik:
    connection: piwik.connection.stub

Usage

In your controllers:

$dataArray = $this->get('piwik.client')->
    call('API.getReportMetadata', array('idSites' => array(2, 3)));

Everywhere:

$dataArray = $container->get('piwik.client')->
    call('API.getReportMetadata', array('idSites' => array(2, 3)));

Api Calls

To see all available methods & their parameters, visit Piwik API Reference.

Copyright

PiwikClient Copyright (c) 2011 KnpLabs http://KnpLabs.com. See LICENSE for details.