Kancalar

  • Tarih : 19.01.2020 11:55
  • Son Güncelleme : 21.05.2025 15:41

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
  2. activatePlugin
  3. deactivePlugin
  4. updatePluginStatus
  5. addHook
  6. removeHook
  7. run
  8. defaultHooks

 

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");