/** * @param callable $callback * @param string $class */ public function __construct(callable $callback, $class) { parent::__construct($callback, function ($event) use($class) { return is_object($event) && get_class($event) == $class; }); }
/** * 判断是否存在监听者 * @param string $eventName * @param mixed $listener * @return boolean */ function hasListener($eventName, $listener) { if (empty($this->listeners[$eventName])) { return false; } if (is_callable($listener)) { $listener = CallbackListener::newFromCallable($listener); } return $this->listeners[$eventName]->contains($listener); }