bam / php-publisher
BAM的PHP数据发布器
1.0.0
2014-12-19 17:11 UTC
Requires
- apache/log4php: 2.3.0
- packaged/thrift: 0.9.0
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或更高版本
依赖项
- Apache log4php v2.3.0
- Apache Thrift v0.9
入门指南
安装发布器
推荐通过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