sfm/ducksboard-bundle

Symfony2 Bundle 用于将应用程序与 Ducksboard 集成。

安装: 443

依赖项: 0

建议者: 0

安全: 0

星标: 7

关注者: 2

分支: 1

开放问题: 1

类型:symfony-bundle

v0.1 2012-08-13 14:12 UTC

This package is not auto-updated.

Last update: 2024-09-22 01:57:51 UTC


README

Build Status

本扩展将 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