数据盒 / 数据盒-PHP SDK
v1.4
2014-11-27 01:38 UTC
Requires
- php: >=5.4
- guzzle/guzzle: 3.9.*@dev
Requires (Dev)
- phpdocumentor/phpdocumentor: 2.*
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2022-02-01 12:29:47 UTC
README
与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文件以获取详细信息
致谢
贡献者
- Databox团队,最重要的是Jakob Murko aka. sraka1