16 const OPTION_STOPPABLE =
'stoppable';
29 $this->handlers = $handlers;
39 return $this->handlers;
46 if (in_array(
$type, [
'member',
'friend',
'attached'])
47 && in_array(
$name, [
'create',
'update',
'delete'])) {
48 $this->
getLogger()->error(
"'{$name}, {$type}' event is no longer triggered. " 49 .
"Update your event registration to use '{$name}, relationship'");
71 self::OPTION_STOPPABLE =>
true,
78 $handlers = $this->getOrderedHandlers(
$name,
$type);
87 $handler_description =
false;
89 $handler_description = $this->handlers->describeCallable($handler) .
'()';
90 $this->
beginTimer([
"[{$name},{$type}]", $handler_description]);
93 list($success, $return, $event) = $this->handlers->call($handler, $event, [
$name,
$type,
$object]);
95 if ($handler_description) {
96 $this->
endTimer([
"[{$name},{$type}]", $handler_description]);
103 if (!empty(
$options[self::OPTION_STOPPABLE]) && ($return ===
false)) {
131 return $this->trigger(
"$event:before", $object_type,
$object,
$options);
153 $options[self::OPTION_STOPPABLE] =
false;
155 return $this->trigger(
"$event:after", $object_type,
$object,
$options);
207 self::OPTION_DEPRECATION_MESSAGE =>
$message,
208 self::OPTION_DEPRECATION_VERSION =>
$version,
229 self::OPTION_DEPRECATION_MESSAGE =>
$message,
230 self::OPTION_DEPRECATION_VERSION =>
$version,
232 return $this->triggerSequence($event, $object_type,
$object, $callable,
$options);
trait Profilable
Make an object accept a timer.
triggerDeprecatedSequence($event, $object_type, $object=null, callable $callable=null, string $message=null, string $version=null)
Trigger an event normally, but send a notice about deprecated use if any handlers are registered...
Helpers for providing callable-based APIs.
registerHandler($name, $type, $callback, $priority=500)
{}
if(!$user||!$user->canDelete()) $name
triggerDeprecated($event, $object_type, $object=null, $message=null, $version=null)
Trigger an event sequence normally, but send a notice about deprecated use if any handlers are regist...
hasTimer()
Has a timer been set.
__construct(HandlersService $handlers)
Constructor.
trigger($name, $type, $object=null, array $options=[])
Triggers an Elgg event.
triggerSequence($event, $object_type, $object=null, callable $callable=null, array $options=[])
Trigger an sequence of <event>:before, <event>, and <event>:after handlers.
Base class for events and hooks.
getHandlersService()
Get the handlers service in use.
getLogger()
Returns logger.
if($email instanceof\Elgg\Email) $object
beginTimer(array $keys)
Start the timer (when enabled)
triggerBefore($event, $object_type, $object=null, array $options=[])
Trigger a "Before event" indicating a process is about to begin.
endTimer(array $keys)
Ends the timer (when enabled)
triggerAfter($event, $object_type, $object=null, array $options=[])
Trigger an "After event" indicating a process has finished.