0
class Mediator {
protected $events = array();
public function attach($eventName, $callback) {
if (!isset($this->events[$eventName])) {
$this->events[$eventName] = array();
}
$this->events[$eventName][] = $callback;
}
public function trigger($eventName, $data = null) {
foreach ($this->events[$eventName] as $callback) {
$callback($eventName, $data);
}
}
}
$mediator = new Mediator;
$mediator->attach('stop', function() { echo "Stopping"; });
$mediator->attach('stop', function() { echo "Stopped"; });
$mediator->trigger('stop'); // prints "StoppingStopped"
我無法弄清楚如何將數據成功傳遞到模式,即我想傳遞數據庫對象,但它最終會像這樣。調解器模式傳遞數據php
$mediator->attach('test', function($test) { echo $test; });
$mediator->trigger('test', '123');
它打印出 「測試」,而不是123
看起來你正在做一個事件系統通過中介者模式幹。但聽衆在哪裏? – XuDing 2014-03-17 02:28:10