PHP Classes

File: test/test.php

Recommend this page to a friend!
  Classes of Nikos M.   PHP Publish Subscribe   test/test.php   Download  
File: test/test.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Publish Subscribe
Register and call handlers of events by name
Author: By
Last change:
Date: 3 years ago
Size: 1,318 bytes
 

Contents

Class file image Download
<?php
require('../src/php/PublishSubscribe.php');

echo(
'PublishSubscribe.VERSION = ' . PublishSubscribe::VERSION . PHP_EOL);

function
_log(&$evt)
{
    echo(
print_r(array('topic'=>$evt->topic, 'originalTopic'=>$evt->originalTopic, 'tags'=>$evt->tags, 'namespaces'=>$evt->namespaces, 'timestamp'=>$evt->timestamp), true). PHP_EOL);
    echo(
print_r($evt->data, true). PHP_EOL);
}

function
handler1($evt)
{
    echo(
'Handler1' . PHP_EOL);
   
_log($evt);
   
$evt->next();
   
// event abort
    //$evt->abort( );
    // stop bubble propagation
    //$evt->propagate( false );
    // stop propagation on same event
    //$evt->stop( );
    //return false;
}
function
handler2($evt)
{
    echo(
'Handler2' . PHP_EOL);
   
_log($evt);
   
$evt->next();
}
function
handler3($evt)
{
    echo(
'Handler3' . PHP_EOL);
   
_log($evt);
   
$evt->next();
}
function
handler4($evt)
{
    echo(
'Handler4' . PHP_EOL);
   
_log($evt);
   
$evt->next();
}

$pb = new PublishSubscribe( );
$pb
   
->on('Topic1/SubTopic11#Tag1#Tag2', 'handler1')
    ->
on1('Topic1/SubTopic11#Tag1#Tag2@NS1', 'handler2')
    ->
on('Topic1/SubTopic11#Tag1#Tag2@NS1@NS2', 'handler3')
    ->
off('@NS1@NS2')
    ->
pipeline('Topic1/SubTopic11#Tag2#Tag1', array('key1'=> 'value1'))
    ->
pipeline('Topic1/SubTopic11#Tag2#Tag1@NS1', array('key1'=> 'value1'))
;