protected function _removeListener($event, callable $listener)
 {
     foreach ($this->listeners as $ev => $_listeners) {
         if (preg_match('%' . $ev . '%i', $event)) {
             parent::removeListener($ev, $listener);
         }
     }
 }
Esempio n. 2
0
 /**
  * @expectedException \InvalidArgumentException
  */
 function testRemoveListenerNotFound()
 {
     $self = $this;
     $ok = false;
     $eventEmitter = new EventEmitter();
     $eventEmitter->removeListener('test', function () {
     });
 }
Esempio n. 3
0
 public function testOff()
 {
     $closure = function () {
     };
     $closure1 = function () {
     };
     $this->event->addListener('test', $closure);
     $this->event->addListener('test', $closure1);
     $this->assertEquals(array($closure, $closure1), $this->event->listeners('test'));
     $this->event->removeListener('test', $closure);
     $this->assertEquals(array(1 => $closure1), $this->event->listeners('test'));
 }
 function testUnregisterMultipleEvents()
 {
     $argResult = 0;
     $callback = function () use(&$argResult) {
         $argResult++;
     };
     $ee = new EventEmitter();
     $ee->on(['foo', 'bar', 'qux'], $callback);
     $ee->removeListener(['foo', 'bar'], $callback);
     $ee->emit('foo');
     $ee->emit('bar');
     $ee->emit('qux');
     $this->assertEquals(1, $argResult);
 }
Esempio n. 5
0
<?php

require '../vendor/autoload.php';
$listener = new EventEmitter();
/*
$listener->on( 'hello', function( $data, $callback ){
    print "Callback\n";
  });
$listener->on( 'hello', function( $data, $callback ){
    print "Callback 2\n";
  });
$listener->on( 'hello', function( $data, $callback ){
    print "Callback !!\n";
  });
*/
$remove_fn = function ($data, $callback) {
    print "Callback 3\n";
    $callback();
};
$listener->on('hello', $remove_fn);
$listener->emit('hello', 'second_arg', function () {
    print "emit_callback\n";
});
$listener->on('goodbye', function () {
    print "Goodbye world\n";
});
$listener->removeListener('hello', $remove_fn);
$listener->emit('hello', 'second_arg', function () {
    print "emit_callback second time trhough\n";
});
$listener->emit('goodbye');
Esempio n. 6
0
 function testRemoveListenerTwice()
 {
     $result = false;
     $callBack = function () use(&$result) {
         $result = true;
     };
     $ee = new EventEmitter();
     $ee->on('foo', $callBack);
     $ee->emit('foo');
     $this->assertTrue($result);
     $result = false;
     $this->assertTrue($ee->removeListener('foo', $callBack));
     $this->assertFalse($ee->removeListener('foo', $callBack));
     $ee->emit('foo');
     $this->assertFalse($result);
 }