bam/php-publisher

BAM的PHP数据发布器

1.0.0 2014-12-19 17:11 UTC

This package is not auto-updated.

Last update: 2024-09-24 02:23:57 UTC


README

PHP数据发布器允许PHP客户端将数据发布到WSO2 Business Activity Monitor。数据可以发布到预定义或自定义的数据字段集。PHP数据发布器的功能类似于自定义Java数据发布器的功能。

发布器使用Apache Thrift将PHP客户端发送的数据发布到BAM服务器。发布器向客户端公开定义数据流、搜索流定义和发布事件等操作。

有关数据流和将数据发布到WSO2 BAM的更多信息

先决条件

  • PHP 5.5.x或更高版本
  • WSO2 BAM 2.4.1或更高版本

依赖项

入门指南

安装发布器

推荐通过Composer安装发布器。

BAM PHP发布器已添加到Packagist存档。因此,可以通过在Composer.json中将其作为依赖项包含来安装到项目中。通过Composer安装时,log4php和thrift依赖项将自动安装到项目中。

{
    "require": {
        "omindu/php-publisher": "1.0.0"
    }
}

示例发布器客户端

$receiverURL = 'tcp://10.100.5.198:7761';
$authenticationURL = 'https://:9443';
$username = 'admin';
$password = 'admin';

$verifyPeer = true;
$caFile = '/absolute/path/to/certificate.pem';


try {
    
    //Set configuration properties for the publisher
    $config = new PublisherConfiguration($verifyPeer, $caFile);
    
    //Initializing a Publisher object
    $publisher = new Publisher($receiverURL, $username, $password, $authenticationURL, $config);
    
    //JSON formatted stream definition
	$streamDefinition = "{ 'name':'sample.stream', "
			             ."'version':'1.0.0', "
			             ."'nickName':'Sample Saream Definition'," 
			             ."'description':'This is a description',"    
			             ."'metaData':[{'name':'metaField1','type':'STRING'}],"
			             ."'correlationData':[{'name':'corrField1','type':'STRING'}],"
					     ."'payloadData':[{'name':'payloadField1','type':'STRING'},"
					                       ."{'name':'payloadField2','type':'DOUBLE'},"
					                       ."{'name':'payloadField3','type':'STRING'},"
						                   ."{'name':'payloadField4','type':'INT'} ] }";	
	
	//Adding the strem definition to BAM
	$streamId = $publisher->defineStream($streamDefinition);
	
	//Searching a stream definition
	$streamId =  $publisher->findStream( 'sample.stream', '1.0.0' );
    
    //Initializing an Event object
    $event = new Event($streamId, time());
    
    //Setting up event attributes. The of each array should follow the data type and order of the stream definiiton
	$metaData = ['meta1'];
	$correlationData = ['corr1'];
	$payloadData = ['pay1',pi(),'pay2',888];
	$arbitraryDataMap = ['x'=>'arb1','y'=>'arb2'];
	
	//Adding the attributes to the Event object
	$event->setMetaData($metaData);
	$event->setCorrelationData($correlationData);
	$event->setPayloadData($payloadData);
	$event->setArbitraryDataMap($arbitraryDataMap);	

    //Publish the event to BAM
	$publisher->publish($event);
    	
}catch(Exception $e){
    //To see the exception types supported by the publisher, refer the API section
    print_r($e->getTrace());
}

API

class Publisher

function __construct($receiverURL, $username, $password, $authenticationURL)

    @param string $receiverURL
    @param string $username
    @param string $password
    @param string $authenticationURL - @default null
  
function findStreamId($streamName, $streamVersion)
    
    @param string $streamName
    @param string $streamVersion
    @return string $streamId
    @throws NoStreamDefinitionExistException
    
function defineStream($streamDefinision)

    @param string $streamDefinision
    @return string $streamId
    @throws StreamDefinitionException
    @throws DifferentStreamDefinitionAlreadyDefinedException
    @throws MalformedStreamDefinitionException
    
function publish($event)
    @param Event $event
    @throws UnknownEventAttributeException    

class PublisherConfiguration

function __construct($verifyPeer, $caFile)

    @param boolean $verifyPeer - @default false
    @param string $caFile - @default null
    @throws NullPointerException
    
function setVerifyPeer($verifyPeer)   
    @param boolean $verifyPeer

function getVerifyPeer()
    @return boolean $verifyPeer

function setCaFile($caFile)
    @param string $caFile
    
function getCaFile()    
    @return string $caFile

class Event

function __construct($streamId, $timeStamp, $metaData , $correlationData, $payloadData , $arbitraryDataMap)

    @param string $streamId - @default null
    @param string $timeStamp - @default null
    @param string $metaData - @default null
    @param array $correlationData - @default null
    @param array $payloadData - @default null
    @param array $arbitraryDataMap - @default null
    
function getStreamId()
    @return string $streamId
    
function setStreamId($streamId)
    @param string $streamId

function getTimeStamp()
    @return long $timeStamp
    
function setTimeStamp($timeStamp)
    @param long $timeStamp
    
function getMetaData()
    @return array $metaData
    
function setMetaData($metaData)
    @param array $metaData
    
function getCorrelationData()
    @return array $correlationData
    
function setCorrelationData($correlationData)
    @param array $correlationData
    
function getPayloadData()
    @return array $payloadData
    
function setPayloadData($payloadData)
    @param array $payloadData
    
function getArbitraryDataMap()
    @return array $arbitraryDataMap
    
function setArbitraryDataMap($arbitraryDataMap)
    @param array $arbitraryDataMap
    

许可证

Apache License 2.0