Kancalar
Kancalar: belirlenen işlem veya işlemlerin yapılması durumunda uygulamanın belirli yerlerine çapa atmaya ve bu çapaları çalıştırmaya yaran nesnelerdir. Kancalar için WordPress ve diğer CMS yazılımlarında kullanılan eklenti sistemide diyebiliriz.
Nesne Sabitleri
Name | Info | Type | Visibility |
---|---|---|---|
PLUGIN_DIR | Eklentilerin tutulacağı dizin yolunu saklar. | String | Const |
$hooks | Tanımlanan kancaları tutar. | Array | Static |
$plugins | Tanımlanan eklentileri tutar. | Array | Static |
Varsayılan olarak eklentiler ./app/Plugins dizininde yer almaktadır. Her bir klasör bir eklentiyi ifade eder. Eklenti klasörürün içinde klasörle aynı isme sahip bir json dosyası bulunur ve bu json dosyasında eklentiye ait, sürüm, geliştirici, durum gibi bilgiler yer alır.
Bir eklentiye ait json dosyası aşağıdaki gibidir.
{
"name": "Eklenti Adı",
"desc": "Eklenti Açıklaması",
"url": "Eklenti url adresi",
"author": {
"name": "Geliştirici Adı",
"url": "Geliştirici web sitesi"
},
"version": "1.0.0",
"status": "Eklenti durumu: active yada deactive"
}
Nesne Özellikleri (Metotlar)
Kancalar nesnesi toplam 8 adet metoda sahiptir. Tüm metotlar Static olarak tanımlanmıştır.
1. loadPlugins
Durumu aktif olan eklentileri yüklemeye ve çalıştırmaya yarayan metottur. Uygulama içerisinden otomatik olarak başlatılır ve tekrar başlatılması uygulamanın çalışmasını bozabilir.
2. activatePlugin
Belirtilen eklentiyi etkinleştirmeye yarayan metottur. String veri tipinde tek bir parametre alır. Geriye herhangi bir değer döndürmez.
Örnek kod:
Hooks::activatePlugin("sitemap");
Yukarıda ki kod bloğu eklenti dizininde yer alana sitemap eklentisinin, eklenti dizininde yer alan (sitemap/sitemap.json) json dosyasının "status" anahtarını active olarak değiştirir.
3. deactivePlugin
Belirtilen eklentiyi pasif yapmaya yarayan metottur. String veri tipinde tek bir parametre alır. Geriye herhangi bir değer döndürmez.
Örnek kod:
Hooks::deactivePlugin("sitemap");
4. updatePluginStatus
Eklenti durumunu güncellemeye yarayan metottur. Nesne içerisinden kullanılmaktadır.
5. addHook
Yeni bir kanca oluşturmaya yarayan metottur. Geriye herhangi bir değer döndürmez. Metodun aldığı parametreler aşağıda listelenmiştir.
Name | Info | Type | Constrait |
---|---|---|---|
$hook | Kanca adını belirtir. | String | Evet |
$function | Kancanın fonksiyonunu belirtir. | String | Evet |
$args | Fonksiyonun aldığı parametreleri belirtir. | Array | Hayır |
Bu metot genellikle eklenti içerisinden kullanılmaktadır.
Parametresiz kullanıma örnek kod:
Hooks::addHook("upper", "upper");
Kanca fonksiyonu kancaya eklenmeden önce tanımlanmış olmalıdır.
Yukarıdaki upper fonksiyonunun parametre aldığını düşünürsek örnek kod:
Hooks::addHook("upper", "upper", ["test"]);
Kancaya fonksiyon eklenebildiği gibi nesne metoduda eklenebilmektedir. Örnek kod:
Hooks::addHook("sitemap", "sitemap@index");
Yukarıda ki kod bloğu sitemap kancasını gördüğü yerde sitemap nesnesinin index metodunu çalıştırır. Burada ki @ işareti metod nesnesini belirtmeye yarar.
6. removeHook
Kancayı kaldırmaya yarayan metottur. String veri türünde tek bir parametre almaktadır. Geriye herhangi bir değer döndürmez.
Örnek kod:
Hooks::removeHook("sitemap");
7. run
Kancayı çalıştırmaya yarayan metottur. String veri türünde tek bir parametre alır. Geriye herhangi bir değer döndürmez.
Örnek kod:
Hooks::run("sitemap");
8. defaultHooks
Varsayılan olarak yüklenecek kancaların eklendiği metottur. Bu metoda eklenen kancalar otomatik olarak çalıştırılıp yüklenmektedir.
Örnek kod:
self::addHook("test", "test");