Event Methods
Core Methods
Section titled “Core Methods”| Method | Description |
|---|---|
->on($event, $listener) | Register event listener |
->emit($event, $payload) | Emit event to all listeners |
->hasListeners($event) | Check if event has listeners |
Event Names
Section titled “Event Names”Use dot notation for namespacing:
user.created,user.updated,user.deletedorder.completed,order.refundedpayment.succeeded,payment.failed
Listener Types
Section titled “Listener Types”Closure Listeners
Section titled “Closure Listeners”app()->on('user.created', fn($payload) => sendEmail($payload['user']));Class String Listeners
Section titled “Class String Listeners”app()->on('user.created', SendWelcomeEmail::class);Class is resolved through the container with dependency injection.
Invokable Class Listeners
Section titled “Invokable Class Listeners”class SendWelcomeEmail{ public function __construct(private EmailService $emails) {}
public function __invoke(array $payload): void { $this->emails->send($payload['user']['email'], 'Welcome!'); }}Wildcard Matching
Section titled “Wildcard Matching”| Pattern | Matches |
|---|---|
user.* | user.created, user.updated, user.deleted |
* | All events |
Examples
Section titled “Examples”Multiple Listeners
Section titled “Multiple Listeners”app() ->on('user.created', SendWelcomeEmail::class) ->on('user.created', UpdateAnalytics::class) ->on('user.created', LogUserCreation::class);Wildcard Listener
Section titled “Wildcard Listener”app()->on('user.*', fn($payload) => logUserEvent($payload));app()->on('*', fn($payload) => logAllEvents($payload));Conditional Emit
Section titled “Conditional Emit”if (app()->hasListeners('order.completed')) { app()->emit('order.completed', ['order' => $order]);}Event Payload
Section titled “Event Payload”app()->emit('payment.succeeded', [ 'amount' => 99.99, 'currency' => 'USD', 'customer_id' => 123, 'timestamp' => time()]);