kwk/geckoboard-dataset-api

提供 Geckoboard DataSet API 客户端的库

0.2.2 2018-11-07 14:58 UTC

This package is not auto-updated.

Last update: 2024-09-23 07:04:03 UTC


README

该库通过 REST 请求提供 Geckoboard DataSet API 的客户端

SensioLabsInsight Scrutinizer Code Quality Code Coverage

分支

  • 0.1.x 支持 PHP 5.6 和 guzzle 5.*
  • 0.2.x 支持 PHP 7.1+ 和 guzzle ^5.3.2

如何使用

数据集定义 + 数据行

创建数据集定义

<?php

namespace Preview;

use Kwk\Geckoboard\Dataset\DatasetBuilder;
use Kwk\Geckoboard\Dataset\DataSetInterface;
use Kwk\Geckoboard\Dataset\Type\DateType;
use Kwk\Geckoboard\Dataset\Type\NumberType;

class TestDataset implements DataSetInterface
{
    /**
     * {@inheritDoc}
     */
    public function getName()
    {
        return 'test';
    }

    /**
     * {@inheritDoc}
     */
    public function getDefinition()
    {
        return (new DatasetBuilder())
            ->addField('date_field_id', new DateType('Date'))
            ->addField('number_field_id', new NumberType('Number'))
            ->build();
    }
}

创建 DataRowInterface 的实现

<?php

namespace Preview;

use Kwk\Geckoboard\Dataset\DataSetRowInterface;

class TestDatarow implements DataSetRowInterface
{
    /**
     * {@inheritDoc}
     */
    public function getData()
    {
        return [
            'date_field_id' => '2016-12-31',
            'number_field_id' => 1021,
        ];
    }
}

客户端使用

创建客户端

$httpClient = new \Guzzle\Http\Client('https://api.geckoboard.com');
$client = new \Kwk\Geckoboard\Dataset\Client($httpClient, 'YOUR_API_KEY');

在 Geckoboard 中创建数据集

$client->create(new \Preview\TestDataset());

追加行

使用类

<?php

namespace Preview\Dataset;

use Kwk\Geckoboard\Dataset\DataSetRowInterface;

class TestDatarow implements DataSetRowInterface
{
    /**
     * {@inheritDoc}
     */
    public function getData()
    {
        return [
            'param1' => 'val1',
            'param2' => 'val2',
        ];
    }
}

追加操作仅一行代码

$client->append(new \Preview\TestDataset(), [new \Preview\TestDatarow()]);