首页 > 解决方案 > 如何在 PHP 中实现 pub/sub 类?

问题描述

我有一个 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";
};

标签: phpcallbackpublish-subscribe

解决方案


推荐阅读