Index

Signal

MMO\core\events · 1 symbol · generated 5 Oct 2026

class

Signal

Signal.php:16

An Event that a listener can answer with a return value (a request/response style event, as opposed to a plain notification) -- the dispatching code calls Send then reads getReturn.

class MMO\core\events\Signal extends MMO\core\events\Event implements MMO\core\interfaces\iSignal
Namespace
MMO\core\events
Extends
Event
Implements
iSignal
class Ask extends Signal {} Ask::AddListener(fn(Ask $e) => $e->setReturn(42)); Ask::Send('origin')->getReturn(); // 42

Properties1

returnValue

protected mixed $returnValue = null
Type
mixed

Methods3

getReturn()

Signal.php:20
function getReturn(): mixed
returnsmixedwhatever the last listener to call setReturn passed, or null if none did

setReturn($value, $stop)

Signal.php:34
function setReturn(mixed $value, bool $stop = false): void
$valuemixed
$stop = falseboolif true and this event also implements iStoppableEvent, stop further listeners from running
returnsvoid
Inherited members (13)
PropertiesDeclared byDescription
ListenersEvent
originEvent
MethodsDeclared byDescription
AddListener($handler, $order)EventRegister a listener directly (as opposed to ConnectListeners's attribute-based discovery).
ConnectListeners($obj)EventScan $obj's methods for #[Listen(EventClass::class)] attributes and register each one as a listener on the matching event class.
DisconnectListeners($obj)EventUndo a previous ConnectListeners: removes every listener that connect had registered for $obj on this event class.
dispatch()EventInvoke every GetListeners listener with $this.
GetListeners()EventCollect every listener for this class, including those registered on its parent classes (so a subclass event is also caught by listeners of its parent event), sorted by ascending $order (ties keep …
getOrigin()Event
HasListener($handler)Event
RemoveListener($handler)EventRemove the last added handler from the listeners.
Send($args)EventConstruct a new instance of this class with $args, then dispatch it to every listener.
SetListenerOrder($handler, $order)EventChange the order of an already-registered listener, whether added directly via AddListener or indirectly via ConnectListeners (which also stores its [$obj, $methodName] callables here).
__construct($origin)Event