Event Kütüphanesi

Event kütüphanesi, uygulamada gerçekleşen çeşitli olayların hemen ardından, ilgili olaya tanımlanan listener'ların otomatikman çalıştırılmasını sağlar.

Örneğin bir kullanıcıya, sisteme kaydolmasının ardından aktivasyon kodu gönderilmesi ve kullanıcı rolü atanması için bir event oluşturulabilir.

  1. Event Tanımlama
  2. Listener Oluşturma
  3. Listener Tanimlama » listener()
  4. Action/Method Tanımlama » action()
  5. Parametre Tanımlama » params()
  6. Event Çalıştırma » fire()

Event Tanımlama

Titan Framework'te event'lar /App/Config dizininde yer alan Services.php dosyasındaki listeners anahtarında tanımlanırlar.

//--- [*] App/Config/Services.php ---//
'listeners'	=> [
	'sampleEvent' => [
		'App\Listeners\SampleListener',
	],
],

Yukarıdaki örnekte, sampleEvent adında bir event ve bu event'e ait SampleListener listener'ı tanımlanıyor.

Listener Oluşturma

Titan Framework'te listener'lar /App/Listeners dizini içerisinde yer alırlar. Tanımlandıkları event tetiklendiği anda listener'da bulunan handle() methodu çalıştırılır.

//--- [*] App/Listeners/SampleListener.php ---//
namespace App\Listeners;

class SampleListener
{
	public function handle()
	{
		echo 'Listener çalıştırıldı';
	}
}

Listener Tanımlama

Tetiklenecek listener'ı tanımlamak için listener() methodu kullanılır. Listener adını parametre olarak alır.

Parametre Veri Tipi Açıklama
$listener String Tetiklenecek listener
// Aşağıdaki kod listener'ı çalıştırmaz. Sadece tanımlar.
Event::listener('sampleEvent');

Action/Method Tanımlama

Listener içinde çalıştırılacak action'ı tanımlamak için action() methodu kullanılır. Action adını parametre olarak alır.

Tanımlanmazsa varsayılan action handle() çalıştırılır.

Parametre Veri Tipi Açıklama
$action String Çalıştırılacak action
// sampleEvent listener'ı içerisindeki foo action'ı tanımlanıyor.
Event::listener('sampleEvent')
	 ->action('foo');

Parametre Tanımlama

Listener içinde çalıştırılacak action'a ait paremetreleri tanımlamak için params() methodu kullanılır. Parametrelerin bulunduğu bir dizi değişkeni parametre olarak alır.

Varsayılan olarak parametre yoktur.

Parametre Veri Tipi Açıklama
$params Array Parametre dizisi
// sampleEvent listener'ı içerisindeki foo action'ına parametreler tanımlanıyor.
Event::listener('sampleEvent')
	 ->action('foo')
	 ->params(['param_1', 'param_2']);

Event Çalıştırma

Tanımlanan listener'ı çalıştırmak için fire() methodu kullanılır.

// sampleEvent listener'ı içerisindeki foo action'ını verilen parametreler ile birlikte çalıştırır
Event::listener('sampleEvent')
	 ->action('foo')
	 ->params(['param_1', 'param_2'])
	 ->fire();