3 Prioritized event observers. [![Build Status](https://travis-ci.org/m6w6/hikke.svg)](https://travis-ci.org/m6w6/hikke)
12 class Observer implements \SplObserver {
14 function __construct($name) {
17 function update(\SplSubject $e) {
18 echo "Observer '{$this->name}' notified by '$e' ({$e->getPriority()})\n";
20 function proxiedMethodCall($arg) {
25 $event = new Event("my_event");
26 $event->attach(new Observer("o1"), 1);
27 $event->attach(new Observer("o2"), 2);
36 Observer 'o1' notified by 'my_event' (0)
37 Observer 'o2' notified by 'my_event' (0)
45 $proxy = new Event\Proxy;
48 $proxy->attach(new Observer("o1"), null, 1);
49 $proxy->attach(new Observer("o2"), null, 0);
50 $proxy->attach(new Observer("o3"), "ev2");
51 $proxy->ev3->attach(new Observer("o2"));
53 $proxy->proxiedMethodCall("-proxy");
61 Observer 'o2-proxy' notified by 'default' (0.001)
62 Observer 'o1-proxy' notified by 'default' (0.001)
63 Observer 'o2-proxy' notified by 'ev1' (0.002)
64 Observer 'o1-proxy' notified by 'ev1' (0.002)
65 Observer 'o2-proxy' notified by 'ev3' (0.004)
66 Observer 'o2-proxy' notified by 'ev2' (1.003)
67 Observer 'o3-proxy' notified by 'ev2' (1.003)
68 Observer 'o1-proxy' notified by 'ev2' (1.003)