sfm / ducksboard-bundle
Symfony2 Bundle 用于将应用程序与 Ducksboard 集成。
v0.1
2012-08-13 14:12 UTC
Requires
- php: >=5.3.0
- symfony/symfony: >=2.0
This package is not auto-updated.
Last update: 2024-09-22 01:57:51 UTC
README
本扩展将 Symfony2 应用程序与 Ducksboard API 集成。
依赖关系
PHP Curl 库 https://php.ac.cn/manual/en/book.curl.php
安装
使用 composer
将项目添加到 composer.json 文件中
... "require": { ... "sfm/ducksboard-bundle": "dev-master" ... }
并在 AppKernel.php 文件中
$bundles = array( ... new SFM\DucksboardBundle\SFMDucksboardBundle(), ... );
执行 php composer.phar install
使用 deps 文件
将项目添加到 deps 文件中
[DucksboardBundle] git=https://github.com/mgallego/DucksboardBundle.git target=/bundles/SFM/DucksboardBundle
并在 `autoload.php' 文件中
$loader->registerNamespaces(array( ... 'SFM' => __DIR__.'/../vendor/bundles', ...
并在 AppKernel.php 文件中
$bundles = array( ... new SFM\DucksboardBundle\SFMDucksboardBundle(), ... );
作为自服务使用
首先,您需要将 Ducksboard apiKey 包含到 parameters 文件 (ini/yml) 中
ducksboard_api = xxxxxxxxxxxxxxx
其次,创建服务
services: ... ... example.ducksboard: class: SFM\DucksboardBundle\Adapter\Widget arguments: [@sfm.ducksboard.connector] calls: - [setApiKey, [%ducksboard_api%]]
现在,您可以使用已设置自动 apikey 的自己的服务
使用扩展服务
本扩展已准备好服务使用。示例
$widget = $this->container->get('sfm.ducksboard.widget'); $widget->setApiKey($this->container->getParameter('ducksboard_api'));
使用示例
推送方法
简单小部件
$widget = $this->container->get('screencast.ducksboard'); $widget->setData(array($widgetID => array('value' => $val1))); $widget->push();
双重小部件
$widget = $this->container->get('screencast.ducksboard'); $dateData1 = array( array('timestamp' => time(), 'value' => '130'), array('timestamp' => time() - ((24*60*60)) , 'value' => '50'), array('timestamp' => time() - ((2*24*60*60)) , 'value' => '70'), array('timestamp' => time() - ((3*24*60*60)) , 'value' => '20'), array('timestamp' => time() - ((4*24*60*60)) , 'value' => '50'), array('timestamp' => time() - ((4*24*60*60)) , 'value' => '80'), array('timestamp' => time() - ((4*24*60*60)) , 'value' => '100')); $dateData2 = array( array('timestamp' => time(), 'value' => '80'), array('timestamp' => time() - ((24*60*60)) , 'value' => '20'), array('timestamp' => time() - ((2*24*60*60)) , 'value' => '70'), array('timestamp' => time() - ((3*24*60*60)) , 'value' => '80'), array('timestamp' => time() - ((4*24*60*60)) , 'value' => '50'), array('timestamp' => time() - ((4*24*60*60)) , 'value' => '90'), array('timestamp' => time() - ((4*24*60*60)) , 'value' => '30')); $widgetGraphData = array( $widgetId1=> $dateData1, $widgetId2 => $dateData2 ); $widget->setData($widgetGraphData); $widget->push();
Delta 值
$widget = $this->container->get('screencast.ducksboard'); $widgetData = array($widgetId => array('delta' => 1 )); $widget->setData($widgetData); $widget->push();
拉取方法
获取小部件的最后 3 条数据
$widget->getLastValues($widgetId, 3); $widgetActualData = $widget->getArrayResponse(); //or $widgetActualData = $widget->getRawResponse();
按秒查找数据
$widget->findBySeconds($widgetId, $seconds); $widgetActualData = $widget->getArrayResponse(); //or $widgetActualData = $widget->getRawResponse();
按时间段查找数据
$widget->findByTimespan($widgetId, 'monthly', $timezone); $widgetActualData = $widget->getArrayResponse(); //or $widgetActualData = $widget->getRawResponse();
其他资源
官方 Ducskboard API 文档:http://ducksboard.com/our-apis/
带有示例的演示视频(西班牙语):https://vimeo.com/46636287