🔹 เกริ่นนำ
การ Trigger Event คือการเรียกใช้งาน Event เพื่อแจ้งว่าเกิดเหตุการณ์บางอย่างขึ้น เช่น ผู้ใช้สมัครสมาชิกสำเร็จ หรือมีคำสั่งซื้อใหม่ โดยเมื่อ Event ถูก Trigger ระบบจะไปเรียก Listener ที่เกี่ยวข้องโดยอัตโนมัติ
Laravel ทำให้การ Trigger Event เป็นเรื่องง่าย ด้วยฟังก์ชัน event()
หรือใช้ dispatch()
ได้เช่นกัน
🔸 วิธีการ Trigger Event
use App\Events\UserRegistered;
use App\Models\User;
$user = User::create([...]);
event(new UserRegistered($user));
หรือเขียนแบบ short syntax:
UserRegistered::dispatch($user);
🔸 การใช้ Event ใน Controller หรือ Service
public function store(Request $request)
{
$user = User::create($request->all());
event(new UserRegistered($user)); // Trigger Event
return response()->json(['status' => 'registered']);
}
🔸 ประโยชน์ของการใช้ Event
- แยกความรับผิดชอบของระบบ เช่น register vs. send email
- ทำให้โค้ดหลักสะอาดขึ้น
- รองรับการเพิ่ม Listener ในอนาคตโดยไม่ต้องแก้โค้ดเดิม
💡 สามารถแนบข้อมูลไปกับ Event เพื่อให้ Listener ใช้งานได้ เช่น
$event->user