Anasayfa » Codeigniter, Php

Codeigniter Dersleri – 23 – Helper – Library (kütüphane)

18 Eylül 2011 11.058 kez okundu 3 yorum
1 Star2 Stars3 Stars4 Stars5 Stars (3 oy,5 üzerinden : 5,00 )
Loading...

Daha önceki derslerimizde helper ve library lerden bahsetmiştik ancak proje içinde kullanıldığı için pek fazla ayrıntıya giremedik. Bu dersimizde bu iki konuyu biraz daha açacağım ve kullanım amaçlarından bahsedeceğim. Mesela bir controller dosyanız içerisinde önemli bir fonksiyonunuz var diyelim. Bu fonksiyon bir filtre olabilir mesela, yada bir kontrol mekanizmasıdır. Siz bu fonksiyonunuzu eğer farklı controller dosyalarınız içinde kullanıyorsanız. Her seferinde o controller dosyanıza bu fonkisyonu copy-paste yapmanız gerekiyor. Bu takdir edersinizki zahmetlidir. Çünkü hem kod fazlalığına neden olur hemde koddaki herhangi bir değişikliğin tüm controller dosyalarına teker teker uygulanması zaman kaybıdır. İkinci bir seçeneğiniz  var tabiki de buda controller dosyanız içerisinden diğer controller dosyanız olan classınız tanımlayıp, ilgili classın fonksiyonunu çağırmak. Böyle yapmak ise codeigniterın mantığına terstir. Çünkü controllerın amacı belli amaca hizmet eden kod parçalarını bir araya toplamaktır. Hem böyle yapmak sistemin daha zor çalışmasına neden olur.

Peki çözüm nedir? Çözümümüz bu noktada ilgili fonksiyonunuzu bir library içerisine yazmaktır. Bir örnek verecek olursak, en basidinden filtremiz şu şekilde olsun: Fonksiyona gönderdiğimiz tarihin yıl biçiminden geçerli olup olmadığını kontrol etsin ve o an ki yaşını bize döndürsün. Bu fonksiyonu yazmak için öncelikle application/libraries altına “age_lib.php” adında bir dosya açalım ve içerisine alttaki kodları yapıştıralım

Şimdi controller dosyamızdan şu şekilde çağırabiliriz;

Gördügünüz gibi istediğimiz yerden çağırabiliriz artık bu fonksiyonumuzu. İstersek direk view dosyasından çağıralım. Bunun için  view dosyamıza şunları yazmamız yeterli:

tabiki controller dosyamızda şu şekilde olacak:

Peki helper lar ne işe yarıyor, helper lar da library gibi kullanılabilir ancak, helper lar direk isimleriyle çağrılırlar yani $this->helper->function() değilde direk function() olarak çağrılırlar. Şimdi yukarıda yazdığımız library i view içerisinde kullanırken gereksiz uzantılardan kurtulmak için helper yazacağız. Bunun için application/helpers altına “age_helper.php” adında bir dosya açalım ve aşağıda ki şekilde kodlayalım.

Şimdi controller dosyamızı tekrar düzenleyelim(helper dosyamızı load etmek için);

Son olarak view dosyamızdan fonksiyonumuzu çağıralım.

gördüğünüz gibi direk olarak validAge() şeklinde kullandık.

Burada kodları uzatmamak için fonksiyona değerleri manuel olarak yolladım. Normalde bir form yardımıyla kullanıdan alınan bir bilgi olacak. Ayrıca bu hazırladığımız helper ve library leri her seferinde controller dosyasına yüklemek istemiyorsanız config/autoload.php içerisinde helper ve library dosyalarınızın isimlerini yazabilirsiniz.

Burada view dosyasında gördüğünüz gibi fonksiyon kullanarak işlemler yaptık. İşte bu noktada php dosyalarıyla uğraşmadık ve sadece fonksiyon olan bölümler php kodu oldu. Bu da demek oluyorki tema yapımında bu şekilde fonksiyonlar kullanılıyor. Örneğin bir wordpress temasını incelerseniz böyle fonksiyonlardan ibaret olduğunu ve fazla php kodu olmadığını görürsünüz. Ve hazırladığınız bir site farklı temalara kolaylıkla taşınabilir. İyi günler.

<<< Önceki:

Sonraki: >>>


Facebookta Paylaş

3 yorum »

  • cem dedi ki:

    Gerçekten çok güzel açılamışsınız. Yeterli ve sade. Elinize sağlık.

  • Aziz dedi ki:

    Desenize helperlarla libraryleri beraber kullanmak daha faydalı, teşekkürler 🙂

  • selçuk dedi ki:

    gerçekten faydalı bir makale olmuş kardeşim, teşekkür ederim,

Yorum Bırakın!

Yorum yaz, yada kendi sitende trackback (Geri besleme) olarak ekle. Ayrıca RSS ile bu konuya üye olabilirsin. .

Nazik olun. Temiz tutun. Konu dışına çıkmayın. Spam yaratmayın.

Bu tagları kullanabilirsiniz:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Bloğumuz gavatarı desteklemektedir. Kendi gavatarınızı edinmek için lütfen Gravatar a üye olun.