true, self::OPTION_DEPRECATION_MESSAGE => '', self::OPTION_DEPRECATION_VERSION => '', ), $options); $events = $this->hasHandler($event, $type); if ($events && $options[self::OPTION_DEPRECATION_MESSAGE]) { elgg_deprecated_notice( $options[self::OPTION_DEPRECATION_MESSAGE], $options[self::OPTION_DEPRECATION_VERSION], 2 ); } $events = $this->getOrderedHandlers($event, $type); $args = array($event, $type, $object); foreach ($events as $callback) { if (!is_callable($callback)) { if ($this->logger) { $inspector = new Inspector(); $this->logger->warn("handler for event [$event, $type] is not callable: " . $inspector->describeCallable($callback)); } continue; } $return = call_user_func_array($callback, $args); if (!empty($options[self::OPTION_STOPPABLE]) && ($return === false)) { return false; } } return true; } }