Olay İşleme Kütüphanesi
"External/ dizini tüm projeleriniz için ortak dosya kullanımı sunar."
Olay işleme belli işlemleri yerine getirecek kodları sıraya sokma ve çalıştırma işlemidir. Bazı durumlarda belirli kodların çalışması başka kodların çalışmasına bağlı olarak devreye girmesi gerekebilir. İşte bu gibi durumlarda bu kütüphane yardımınıza yetişiyor. İsterseniz Crontab:: kütüphanesi ile birlikte kullanarak zamana bağlı olarak olaya konu olmuş kodların tetiklenmesini sağlayabilirsiniz.
# Kurulum
ZN dağıtımları için terminal kurulum komutu.
↓ composer require znframework/package-event-handler
# Yöntemler
# Create (Paket[6.0.2][2021-01-28])
Oluş oluşturmak için kullanılır.
Parametreler
string $event | Eklenecek olayın adı. |
Alt Yöntemler
Events::callback(callable $callback, int $priority = NULL) | |
callable $callback | Çalıştırılacak kodlar. |
int $priority = NULL | Çalıştırma sırası. Bu değer belirtilmezse kodlar yazılma sırasına göre çalıştırılır. |
Kullanım
Events::callback(function()
{
File::delete('a.txt'); # 3. olarak çalıştırılacak.
}, 3)::callback(function()
{
File::write('a.txt', 'Example Content A'); # 2. olarak çalıştırılacak.
}, 2)::callback(function()
{
File::create('a.txt'); # 1. olarak çalıştırılacak.
}, 1)::create('FileProcessEvent');
Yukarıdaki örnek kodda dosya üzerinde gerçekleşecek işlemleri tanımladık ve sıralamasını belirttik
# Run / __Call (ZN >= 5.6.3)
Oluşturulan olay kümesini çalıştırmak için kullanılır
Parametreler
string $event | Çalıştırılacak olayın ismi. |
array $parameters = [] | Olaylara ortak parametre göndermek için kullanılır. |
return bool |
Kullanım
Events::run('FileProcessEvent');
2. write a.txt file
3. delete a.txt file
[$parameters]
Events::callback() yöntemi ile çağrılan işlevlere parametre göndermek için kullanılır.
Events::callback(function($file)
{
File::delete($file); # 3. olarak çalıştırılacak.
}, 2)::callback(function($file)
{
File::create($file);
}, 1)::create('FileEvent');
Events::run('FileEvent', ['a']);
Bu yöntem __call() sihirlisi ile de desteklenmektedir. Yani tanımlanan olay ismi doğrudan yöntem gibi de çalıştırılabilir.
Events::FileProcessEvent();
Tanımlanan olayları konsol kullanarak devreye sokabilirsiniz.
> php zerocore run-class Events:FileProcessEvent
# Get (Paket[6.0.2][2021-01-28])
Olaya eklenen geri çağrım işlevlerinin dizi türünde çıktısını almak için kullanılır.
Parametreler
string $event | Olayın adı. |
int $priority = NULL | Hangi çağrım işlevi. Bu değer belirtilirse ilgili işlev[ callable ] belirtilmezse olay kümesi[ array ] döner. |
return array | callable |
Kullanımlar
$events = Events::get('FileProcessEvent'); # return array
[$priority]
$callback = Events::get('FileProcessEvent', 1); # return callable
# Remove (Paket[6.0.2][2021-01-28])
Olaya eklenen geri çağrım işlevlerinin dizi türünde çıktısını almak için kullanılır.
Parametreler
string $event | Olayın adı. |
int $priority = NULL | Hangi çağrım işlevi. Bu değer belirtilirse ilgili işlev belirtilmezse olay kümesi silinir. |
return bool |
Kullanımlar
Olay kümesini silmek için aşağıdaki gibi kullanın.
Events::remove('FileProcessEvent');
[$priority]
Sıra numarasına göre olaya ait işlevi silmek için kullanılır.
Events::remove('FileProcessEvent', 1);