Sistem içinde "bir şey oldu" diye haber veren yayın sistemi
Sistemde bir şeyler olduğunda (kullanıcı kayıt oldu, şarkı dinlendi, ödeme yapıldı) otomatik tetiklenen bir haber sistemi kurduk. Bu haberler diğer sistemlere iletilir ve gerekli işlemler başlar.
Kullanıcı, ödeme, müzik, abonelik eventleri
Eventleri dinleyen ve işlem yapan parçalar
Event olur olmaz listenerlar çalışır
Bir event baska eventleri tetikleyebilir
Bir event tetiklendiğinde Laravel'in event sistemi şu süreci işletir:
Kodda event(new UserRegistered($user)) veya UserRegistered::dispatch($user) çağrılır. Event nesnesi oluşturulur.
EventServiceProvider'da tanımlı $listen array'inden event'e bağlı listener'lar bulunur. Her event birden fazla listener'a sahip olabilir.
Service Container app()->make(SendWelcomeEmail::class) ile listener'ı resolve eder. Constructor dependency injection çalışır.
Listener'ın handle(UserRegistered $event) metodu çağrılır. Event nesnesi parametre olarak geçer, $event->user ile veriye erişilir.
Listener ShouldQueue interface'ini implement ediyorsa, handle() anında çalışmaz - job olarak kuyruğa eklenir ve arka planda işlenir.
Listener return false döndürürse sonraki listener'lar çalışmaz. Aksi halde tüm listener'lar sırayla çalıştırılır ve event tamamlanır.
Hangi eventlerin ne zaman tetiklendiği
Günlük/haftalık event sayıları
Başarısız listener işlemleri
Her listener ne kadar sürede çalıştı
Sistemde olan bir olay (kullanıcı kaydı, ödeme vs.)
Eventi dinleyen ve işlem yapan kod parçası
Eventi tetikleme/yayınlama işlemi
Event-Listener eşleştirmelerinin yapıldığı yer