Dev to webs {Coding…}

ร บทเรียนฟรีด้านการพัฒนาซอฟต์แวร์ ที่ครอบคลุมเนื้อหาหลากหลาย ตั้งแต่การเขียนโค้ดพื้นฐานไปจนถึงเทคนิคขั้นสูง

บทที่ 1: การสร้าง Event และ Listener

🔹 เกริ่นนำ

Laravel มีระบบ Event-Driven ที่ช่วยให้คุณสามารถแยก logic ออกจากกันได้อย่างเป็นระบบ ตัวอย่างเช่น เมื่อมีผู้ใช้ลงทะเบียนใหม่ คุณสามารถแยกกระบวนการส่งอีเมล หรือสร้าง log ออกไปไว้ใน Listener เพื่อให้ระบบหลักสะอาดและดูแลรักษาง่าย

บทนี้จะแนะนำวิธีสร้าง Event และ Listener พร้อมตัวอย่างการเรียกใช้งาน และแนวทางปฏิบัติที่ดี

🔸 การสร้าง Event และ Listener

php artisan make:event UserRegistered
php artisan make:listener SendWelcomeEmail --event=UserRegistered

🔸 การลงทะเบียน Listener (ถ้าไม่ใช้ auto-discovery)

// app/Providers/EventServiceProvider.php
protected $listen = [
    UserRegistered::class => [
        SendWelcomeEmail::class,
    ],
];

🔸 ตัวอย่าง Event

class UserRegistered implements ShouldBroadcast
{
    public $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }
}

🔸 ตัวอย่าง Listener

class SendWelcomeEmail
{
    public function handle(UserRegistered $event)
    {
        Mail::to($event->user->email)->send(new WelcomeMail($event->user));
    }
}

🔸 การ Trigger Event

use App\Events\UserRegistered;

event(new UserRegistered($user));

💡 Laravel จะค้นหาและเรียก Listener ให้อัตโนมัติเมื่อ Event ถูก trigger