Performance: Defining events
MEDIUM IMPACT
This affects server-side event handling speed and how quickly the application responds to user actions or system changes.
<?php namespace App\Events; use Illuminate\Support\Facades\Mail; class UserRegistered { public $user; public function __construct($user) { $this->user = $user; // pass full user object } } class SendWelcomeEmail { public function handle(UserRegistered $event) { Mail::to($event->user->email)->send(new WelcomeEmail($event->user)); } }
<?php namespace App\Events; use App\Models\User; use Illuminate\Support\Facades\Mail; class UserRegistered { public $user; public function __construct($user) { $this->user = $user; } } // Event listener directly queries database redundantly class SendWelcomeEmail { public function handle(UserRegistered $event) { $user = User::find($event->user->id); // redundant query Mail::to($user->email)->send(new WelcomeEmail($user)); } }
| Pattern | Database Queries | Server CPU Load | Response Delay | Verdict |
|---|---|---|---|---|
| Redundant queries in event listeners | Multiple per event | High | Increased by 100-200ms | [X] Bad |
| Passing full data in event object | Single per event | Low | Minimal delay | [OK] Good |