/**
* Unbind event(s) or callback from event(s)
* @param string|array $event Event name
* @param callable $cb Callback, optional
* @return this
*/
public function unbind($event, $cb = null)
{
if ($cb !== null) {
$cb = CallbackWrapper::wrap($cb);
}
is_array($event) or $event = [$event];
$success = true;
foreach ($event as $e) {
if (!isset($this->eventHandlers[$e])) {
$success = false;
continue;
}
if ($cb === null) {
unset($this->eventHandlers[$e]);
continue;
}
CallbackWrapper::removeFromArray($this->eventHandlers[$e], $cb);
}
return $this;
}