class Dispatcher implements Dispatcher (View source)

Properties

protected Container $container The IoC container instance.
protected array $listeners The registered event listeners.
protected array $wildcards The wildcard listeners.
protected array $sorted The sorted event listeners.
protected array $firing The event firing stack.
protected callable $queueResolver The queue resolver instance.

Methods

void
__construct(Container $container = null)

Create a new event dispatcher instance.

void
listen(string|array $events, mixed $listener, int $priority = 0)

Register an event listener with the dispatcher.

void
setupWildcardListen(string $event, mixed $listener)

Setup a wildcard listener callback.

bool
hasListeners(string $eventName)

Determine if a given event has listeners.

void
push(string $event, array $payload = [])

Register an event and payload to be fired later.

void
subscribe(object|string $subscriber)

Register an event subscriber with the dispatcher.

mixed
resolveSubscriber(object|string $subscriber)

Resolve the subscriber instance.

mixed
until(string $event, array $payload = [])

Fire an event until the first non-null response is returned.

void
flush(string $event)

Flush a set of pushed events.

string
firing()

Get the event that is currently firing.

array|null
fire(string|object $event, mixed $payload = [], bool $halt = false)

Fire an event and call the listeners.

void
broadcastEvent(ShouldBroadcast $event)

Broadcast the given event class.

array
getListeners(string $eventName)

Get all of the listeners for a given event name.

array
getWildcardListeners(string $eventName)

Get the wildcard listeners for the event.

array
sortListeners(string $eventName)

Sort the listeners for a given event by priority.

mixed
makeListener(mixed $listener)

Register an event listener with the dispatcher.

createClassListener(mixed $listener)

Create a class based listener using the IoC container.

callable
createClassCallable(string $listener, Container $container)

Create the class based event callable.

array
parseClassCallable(string $listener)

Parse the class listener into class and method.

bool
handlerShouldBeQueued(string $class)

Determine if the event handler class should be queued.

createQueuedHandlerCallable(string $class, string $method)

Create a callable for putting an event handler on the queue.

array
cloneArgumentsForQueueing(array $arguments)

Clone the given arguments for queueing.

void
callQueueMethodOnHandler(string $class, string $method, array $arguments)

Call the queue method on the handler class.

void
forget(string $event)

Remove a set of listeners from the dispatcher.

void
forgetPushed()

Forget all of the pushed listeners.

resolveQueue()

Get the queue implementation from the resolver.

$this
setQueueResolver(callable $resolver)

Set the queue resolver implementation.

Details

void __construct(Container $container = null)

Create a new event dispatcher instance.

Parameters

Container $container

Return Value

void

void listen(string|array $events, mixed $listener, int $priority = 0)

Register an event listener with the dispatcher.

Parameters

string|array $events
mixed $listener
int $priority

Return Value

void

protected void setupWildcardListen(string $event, mixed $listener)

Setup a wildcard listener callback.

Parameters

string $event
mixed $listener

Return Value

void

bool hasListeners(string $eventName)

Determine if a given event has listeners.

Parameters

string $eventName

Return Value

bool

void push(string $event, array $payload = [])

Register an event and payload to be fired later.

Parameters

string $event
array $payload

Return Value

void

void subscribe(object|string $subscriber)

Register an event subscriber with the dispatcher.

Parameters

object|string $subscriber

Return Value

void

protected mixed resolveSubscriber(object|string $subscriber)

Resolve the subscriber instance.

Parameters

object|string $subscriber

Return Value

mixed

mixed until(string $event, array $payload = [])

Fire an event until the first non-null response is returned.

Parameters

string $event
array $payload

Return Value

mixed

void flush(string $event)

Flush a set of pushed events.

Parameters

string $event

Return Value

void

string firing()

Get the event that is currently firing.

Return Value

string

array|null fire(string|object $event, mixed $payload = [], bool $halt = false)

Fire an event and call the listeners.

Parameters

string|object $event
mixed $payload
bool $halt

Return Value

array|null

protected void broadcastEvent(ShouldBroadcast $event)

Broadcast the given event class.

Parameters

ShouldBroadcast $event

Return Value

void

array getListeners(string $eventName)

Get all of the listeners for a given event name.

Parameters

string $eventName

Return Value

array

protected array getWildcardListeners(string $eventName)

Get the wildcard listeners for the event.

Parameters

string $eventName

Return Value

array

protected array sortListeners(string $eventName)

Sort the listeners for a given event by priority.

Parameters

string $eventName

Return Value

array

mixed makeListener(mixed $listener)

Register an event listener with the dispatcher.

Parameters

mixed $listener

Return Value

mixed

Closure createClassListener(mixed $listener)

Create a class based listener using the IoC container.

Parameters

mixed $listener

Return Value

Closure

protected callable createClassCallable(string $listener, Container $container)

Create the class based event callable.

Parameters

string $listener
Container $container

Return Value

callable

protected array parseClassCallable(string $listener)

Parse the class listener into class and method.

Parameters

string $listener

Return Value

array

protected bool handlerShouldBeQueued(string $class)

Determine if the event handler class should be queued.

Parameters

string $class

Return Value

bool

protected Closure createQueuedHandlerCallable(string $class, string $method)

Create a callable for putting an event handler on the queue.

Parameters

string $class
string $method

Return Value

Closure

protected array cloneArgumentsForQueueing(array $arguments)

Clone the given arguments for queueing.

Parameters

array $arguments

Return Value

array

protected void callQueueMethodOnHandler(string $class, string $method, array $arguments)

Call the queue method on the handler class.

Parameters

string $class
string $method
array $arguments

Return Value

void

void forget(string $event)

Remove a set of listeners from the dispatcher.

Parameters

string $event

Return Value

void

void forgetPushed()

Forget all of the pushed listeners.

Return Value

void

protected Queue resolveQueue()

Get the queue implementation from the resolver.

Return Value

Queue

$this setQueueResolver(callable $resolver)

Set the queue resolver implementation.

Parameters

callable $resolver

Return Value

$this