У меня есть класс EventEmitter следующим образом:
Как мне реализовать метод публикатора (emit) для циклического прохождения всех событий и их вызова?(убедившись, что все обратные вызовы всегда безопасны для вызова)
class EventEmitter {
private static $events = array(); // all subscriptions
public function __construct() {}
// calls the last subscription on the stack
public function emit() {
}
// adds subscriptions to the stack
public function subscribe($name, $callback) {
if(empty(self::$events[$name]))
self::$events[$name] = array();
array_push(self::$events[$name], $callback);
}
}
$emitter = new EventEmitter;
$error_callback = function($data) {
echo "Error 1. {$data["message"]} \n";
};
$error_callback2 = function($data) {
echo "Error 2. {$data["message"]} \n";
};
$success_callback = function($data) {
echo "SUCCESS! {$data["message"]} \n";
};