Concept Flow - Event dispatching
Trigger Event in Code
Create Event Object
Dispatch Event
Listeners React
Perform Actions
Finish Event Cycle
This flow shows how Laravel creates and dispatches an event, then listeners respond to it.
event(new UserRegistered($user));
class UserRegistered {
public $user;
public function __construct($user) {
$this->user = $user;
}
}| Step | Action | Event Object State | Listeners Called | Result |
|---|---|---|---|---|
| 1 | Create UserRegistered event with user data | UserRegistered { user: UserObject } | None yet | Event object ready |
| 2 | Dispatch event using event() helper | UserRegistered { user: UserObject } | Listener1, Listener2 | Listeners start processing |
| 3 | Listener1 handles event | UserRegistered { user: UserObject } | Listener2 pending | Listener1 sends welcome email |
| 4 | Listener2 handles event | UserRegistered { user: UserObject } | None | Listener2 logs registration |
| 5 | Event dispatch cycle ends | UserRegistered { user: UserObject } | None | All listeners done |
| Variable | Start | After Step 1 | After Step 2 | After Step 5 |
|---|---|---|---|---|
| eventObject | null | UserRegistered { user: UserObject } | UserRegistered { user: UserObject } | UserRegistered { user: UserObject } |
| listenersCalled | [] | [] | [Listener1, Listener2] | [Listener1, Listener2] |
Laravel Event Dispatching: - Create an event class with data. - Dispatch event using event(new EventClass(data)). - Laravel calls all registered listeners. - Listeners perform actions like sending emails. - Event cycle ends after all listeners run.