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.
- Event Tanımlama
- Listener Oluşturma
- Listener Tanimlama » listener()
- Action/Method Tanımlama » action()
- Parametre Tanımlama » params()
- 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();