Event cho phép giao tiếp loosely coupled—khi điều gì đó xảy ra (event UserCreated), các listener phản ứng.
- Tạo event:
php artisan make:event UserCreatedvới propertypublic $user. - Tạo listener:
php artisan make:listener SendWelcomeEmail --event=UserCreated. - Dispatch từ model:
UserCreated::dispatch($user). - Listener thực thi đồng bộ theo mặc định, hoặc queue với
implements ShouldQueue. - Event tách biệt code—logic tạo user không biết về email, notification. Laravel 11+:
EventServiceProviderđã bị xóa—listener đăng ký trongAppServiceProviderquaEvent::listen()hoặc dùng auto-discovery (event discovery tự động).
Events enable decoupled communication—when something happens (UserCreated event), listeners react.
- Create event:
php artisan make:event UserCreatedwithpublic $userproperty. - Create listener:
php artisan make:listener SendWelcomeEmail --event=UserCreated. - Dispatch from model:
UserCreated::dispatch($user). - Listeners execute synchronously by default, or queue with
implements ShouldQueue. - Events decouple code—user creation logic doesn't know about emails, notifications. Laravel 11+:
EventServiceProviderwas removed — listeners are registered inAppServiceProviderviaEvent::listen()or use automatic event discovery.