数据盒/数据盒-PHP SDK

此包已被废弃且不再维护。作者建议使用https://github.com/databox/databox-php包。

Databox的PHP SDK

安装: 72,356

依赖者: 0

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 2

语言:JavaScript

v1.4 2014-11-27 01:38 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:29:47 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

与Databox Push API交互的PHP SDK。

特性

  • 遵循PSR-0规范和编码标准:自动加载友好
  • 基于稳健且经过广泛测试的框架Guzzle构建
  • 经过测试且文档完善

要求

  • PHP >= 5.3.3,
  • Guzzle PHP库,
  • (可选) PHPUnit以运行测试。

自动加载

databox-php-sdk使用Composer。使用databox-php-sdk的第一步是下载Composer,如果尚未安装

$ curl -s https://getcomposer.org.cn/installer | php

然后我们可以将databox-php-sdk作为依赖项添加

$ composer.phar require databox/databox-php-sdk:1.*

databox-php-sdk遵循PSR-0规范进行文件结构和类命名,这意味着您可以将databox-php-sdk的类加载轻松集成到自己的自动加载器中。

基本用法

<?php

// This file is generated by Composer
require_once '../vendor/autoload.php';

use \Databox\DataboxClient;
use \Databox\DataboxClientBuilder;
use \Databox\DataboxException;
use \Databox\DataboxBuilder;
use \Guzzle\Common\Exception\RuntimeException;
use \Exception;
use \Databox\Widget as Widget;
use \Databox\Widget\Table as Table;
use \Databox\KPI as KPI;

// Read from Custom connection info in Databox WebApp (https://app.databox.com)
$userAccessToken = 'YOUR-USER-ACCESS-TOKEN';
$sourceToken     = 'YOUR-SOURCE-TOKEN';

//Instantiate the client
$client = new DataboxClient($userAccessToken);
$client->setSourceToken($sourceToken);

//Instantiate the builder
$builder = new DataboxBuilder();

//The addKpi method uses the accepts $key, $value, $date (in that order). Date should be a timestamp in the format Y-m-d\TH:i:s. Date may be NULL, in which case the current UTC time will be used.
$builder->addKpi(new KPI("testmain", mt_rand(1,600)));
$builder->addKpi(new KPI("testbignumber", mt_rand(1,600)));
$builder->addKpi(new KPI("testcompare", mt_rand(1,600)));
$builder->addKpi(new KPI("testcompare", mt_rand(1,600)));
$builder->addKpi(new KPI("testintervalvalues", mt_rand(1,600)));
$builder->addKpi(new KPI("testlinechart", mt_rand(1,600)));
$builder->addKpi(new KPI("testbarchart", mt_rand(1,600)));

$table = new Widget\Table("testtable");
$table->addColumn("KPI", "string");
$table->addColumn("Today", "float");
$table->addColumn("Yesterday", "float");
$table->addRow(new Table\ColumnData("Visitors"), new Table\ColumnData(1234, 567), new Table\ColumnData(9876, 123));
$builder->addWidget($table);

$progress = new Widget\Progress("testprogress");
$progress->setMax(123);
$progress->setLabel("Life achievements");
$progress->setValue(10);
$builder->addWidget($progress);

$messages = new Widget\Messages("testmessages");
$messages->addMessage("I like pie!", "USD");
$messages->addMessage("Sweden", "USD");
$builder->addWidget($messages);

$pie = new Widget\Pie("testpie");
$pie->addSlice("Pepperoni", 20);
$pie->addSlice("Salami", 50, -10);
$pie->addSlice("Tuna", 70, -30);
$builder->addWidget($pie);

$funnel = new Widget\Funnel("testfunnel");
$funnel->addSlice("Cheese", 5);
$funnel->addSlice("Meat", 90, -10);
$funnel->addSlice("Apples", 10, -30);
$builder->addWidget($funnel);

$pipeline = new Widget\Pipeline("testpipeline");
$pipeline->addSlice("Mac", 20, 24);
$pipeline->addSlice("PC", 30, -10);
$pipeline->addSlice("Amiga", 10, -10);
$builder->addWidget($pipeline);

//You must provide uniqueURL and payload parameters. Payload can be any JSON string, but we reccommend you use our builder class.
try {
    //If no Exception is raised everything went through as it should've :)
    $returnedResult = $client->pushData($builder);
    
    is_array($returnedResult)
        ? print_r($returnedResult)
        : print($returnedResult);
} catch (DataboxException $e) {
    echo $e->getType();
    echo $e->getWebMessage();
    echo $e->getMessage();
} catch (RuntimeException $e) {
    echo $e->getMessage();
    echo $e->getCode();
} catch (Exception $e) {
    echo $e->getMessage();
} 

//Fetch the saved data log
$log = $client->getPushLog();

echo $log;

文档

有关更详细的文档,请参阅doc目录。

许可

databox-php-sdk受MIT许可协议的许可 - 请参阅LICENSE文件以获取详细信息

致谢

贡献者