CodeIgniter’da Hooks Yapısı

Herkese selamlar,

Bu yazımda geçtiğimiz günlerde projede ihtiyaç duyduğumuz bir CodeIgniter yapısından bahsedeceğim: CodeIgniter Hooks

Yapının özelliği, mevcut Codeigniter sistem klasörlerinde ve çekirdek klasörlerinde düzenleme yapmadan, ihtiyacımız olan fonksiyonları veya scriptleri sistemin başlangıcında veya sonunda yükleyip, çalıştırabilmek. Hooks özelliği tam olarak bu tetikleme işlemini gerçekleştiriyor.

Kullanıcı rehberinde de okumuş olabileceğiniz gibi,  hooks yapısını çalıştırabilmemiz için ayar dosyamız olan config.php‘ye şu şatırı eklememiz, şayet varsa düzenlememiz gerekiyor.

$config['enable_hooks'] = TRUE;

Böylece hooks özelliğini aktif etmiş olduk. Şimdi eğer önceden yaratılmamışsa, application/config/ klasörünün içinehooks.php dosyasını oluşturalım. Dosyanın içine şu kodları ekleyelim ve kodların açıklamasına geçelim.

$hook['pre_controller'] = array(
'class'    => 'MyClass',
'function' => 'Myfunction',
'filename' => 'Myclass.php',
'filepath' => 'hooks',
'params'   => array('beer', 'wine', 'snacks')
);

Burada hook dizisinin bir indisi olarak tanımladığımız pre_controller, bize sistemin çalışmaya başlamasından önce fonksiyonu çalıştırabilmemizi sağlıyor. Alternatif olarak kullanabileceğimiz indislere kullanıcı rehberindeki Hook Points‘ten  bakabilirsiniz.

Class, çalıştırmak istediğiniz fonksiyonu ya da scripti barındıran sınıfı ifade ediyor. Eğer herhangi bir class’a bağlı olmayan bir fonksiyon çalıştıracaksanız; bu kısmı boş geçebilirsiniz.

Kullanacağınız fonksiyon adı, function’da tanımlı olmalı. Fonksiyonu içeren php dosyasının adını da filename‘e yazmanız gerekiyor. Dosyanın yolunu da filepath’e yazmalısınız.

Eğer kullanacağınız fonksiyon parametreler alıyorsa, bu parametreleri params içinde array olarak tanımlamalısınız.

Yazının uzunluğundan da anladığınız gibi; CodeIgniter’daki hooks yapısı bu kadar basit ve kısa zaman alan bir yapı. Başka bir yazıda görüşmek üzere. Kolay gelsin.