پیشرفته · ۸ دقیقه مطالعه

Event و Listener

Eventها اجازه می‌دهند منطق را جدا کنی: «وقتی X رخ داد، این کارها را بکن» — بدون شلوغ‌کردن کد اصلی.

ساخت

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

انتشار رویداد

UserRegistered::dispatch($user);
// یا
event(new UserRegistered($user));

Listener

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

چرا مفید است؟

فرض کن هنگام ثبت‌نام می‌خواهی: ایمیل خوش‌آمد بفرستی، به ادمین اطلاع دهی، آمار ثبت کنی. به‌جای انباشتن همه در کنترلر ثبت‌نام، یک Event منتشر کن و چند Listener به آن وصل کن. کد تمیز و توسعه‌پذیر می‌ماند.

Model Events

Eloquent خودش رویداد دارد: creating, created, updated, deleted:

protected static function booted() {
    static::creating(fn ($post) => $post->slug = Str::slug($post->title));
}

برای ثبت پیشرفت و کسب XP وارد شو.

ورود به میدان
Queue و Job — کارهای پس‌زمینه ←