CodeIgniter'a giriş - CodeIgniter kütüphanelerine genel bir bakış

Merhaba değerli ziyaretçi,

Bu yazımda yüzeysel olarak CodeIgniter'ın sınıflarına yüzeysel değineceğiz.
Bu yazıda hiç bir kod bulamayacaksınız. Bunun nedeni her sınıfın ayrı ayrı incelenmeye değer olmasıdır.
Sırf Database(Veritabanı) sınıfı için ayrı bir yazı dizisi yazılabilir.
Buradaki genel amacımız Php programcısına CodeIgniter'a başlamadan önce genel bir çerçeve çizmektir.

Yani CodeIgniter ile ne yapıp yapamayacağınızı bilmeniz gerekmektedir.
Bu yüzden CodeIgniter'in çekirdeğinde bulunan bütün kütüphaneler hakkında iki
üç paragraflık açıklamalar bulacaksınız. Yazı dizisinin ilerleyen bölümünde zaten hepsini tek tek incelemeye çalışacağız.

CodeIgniter Sınıfları

  • Benchmarking Class Bu sınıfın en önemli özelliği size sizin işaretlediğiniz kod satırındaki iki nokta arasında kodun çalıştırılma süresini ve memory kullanımını verir.  View sayfaların her hangi bir yerine
    { elapsed_time }
    ve
    { memory_usage }
    ifadesini yazarsanız sayfanın toplam derlenme süresini ve hafıza kullanımını size gösterir. Sınıf otomatikmen Codeigniter tarafında yüklenir.
    Not : Parentezler arasındaki boşlukları siliniz!
  • Calendaring Class Calender sınıfımız size dinamik takvimler yapmanızı sağlar. Bu sınıf otomatikmen yüklenmez. 
    $this->load->library('calendar');
    ifadesi ile yüklenmesi gerekmektedir. Sınıftan bir kere object üretiğiniz zaman $this->calendar ifadesi ile sınıfın methodlarına ulaşabilirsiniz. Bu sınıf takvimi ay - yıl veya gün - ay formatında gösterebilir. Sınıfa çeşitli parametler yükleyip modifiye edebilirsiniz.
  • Config Class Bu sınıf CodeIgniter tarafından otomatik yüklenir. Bu sınıf ile application/config/config.php adresinde default bunulanan veya sizin yaratacağınız bir config dosyası yardımı ile sitenizin config ayarlarını yapılandırırsınız.  Config dosyaları
    $this->config->load('filename');
    ifadesi ile ya manuel yüklenir yadaapplication/config/autoload.php dosyası sayesinde otomatik olarak yüklenebilir.
  • Database Class CodeIgniter’ın en sevdiğim sınıfıdır.
    $this->load->database();
    ifadesi ile otomatik yüklenir. Database ayarları tek dosyadan yüklenebilir veya Controller içinden yapılabilir. mysql, postgres, odcc gibi veritabanlarını destekler. Caching, Transaction, Active Record gibi bir çok özelliği vardır. Başlı başına ayrı bir yazı dizisini hak eder.
  • Email Class Mail, Sendmail, and SMTP gibi çoklu protokolleri destekler. CC ve BCC özelliği vardır. HTML veya text formatında mail atabilirsiniz, dosya ekleyebilirsiniz, word warp yapabilirsiniz.  Mail için debug toolsları vardır.
  • Encryption Class Mcrypt sınıfı kullanarak encode ve decode yapabilirsiniz. Dürüst olmak gerekirse pek fazla kullamadım.
  • File Uploading Class Fileupload sınıfımız bize tek veya birçok dosyayı bizim belirlediğimiz çeşitli parametreler ve sınırlamalar ile servera yüklememizi sağlar.  Upload işleminden sonra size tek bir arrayde ilgili dosya ile ilgili bütün bilgileri bir parametre olarak verir.
  • Form Validation Class : Bu sınıf Codeigniter’ın 1.7 versiyonu ile geliştirildi. Bu sınıf sayesinde Formlarınızı PHP fonksiyonları, kendi yazacağınız fonksiyonlara tabii tutabilirsiniz. Formda bir validasyon hatası olursa kullanıcının yazdığı değerler forma geri yüklenerek ilgili validasyonların hata mesajları ekrana gösterilecektir. CodeIgniter 1.7 ile artık validasyon sınıfı tags[] gibi array yapısınıda desteklemektedir. Core’a müdahale etmeye gerek kalmamıştır.
  • FTP Class FTP sınıfımız SFTP yi veya SLL FTP yi desteklememektedir.  Bunun dışında mirror bile kullanabilirsiniz. Hiç kullamamı gerektirecek bir durum olmadığına belirtmek isterim.
  • HTML Table Class HTML Table sınıfımız size tablo yapmanızı sağlar ancak ben hiç kullanmadım. CSS ve XHTML desteği bana yeterli gelmemiştir.
  • Image Manipulation Class Image Manipulation sınıfı ile resimleri resize yapabilirsiniz. Ayrıca thumbnail yaratabilir, crop, watermark, rotaing yapabilirsiniz. Bu sınıfı bütün özellikleri ile kullanılabilmesi için GD veya GD2 kütüphanelerinin serverda kurulu olması gerekmektedir.
  • Input and Security Class Bu sınıf CodeIgniter tarafından otomatik olarak yüklenir. XSS filter özelliği ile kullanıcıdan gelen verileri temizyelebilirsiniz. Ayrıca POST, COOKİES  ve SERVER değişkenlerine erişebilirsiniz.
  • Loader Class Loader sınıfı CodeIgniter tarafından otomatik yüklenir. Loader sınıfı elementlerin yüklenmesini sağlar. Bu elementler sınıflar (libraries), viewler, helper, pluginler veya sizin dosyalarınız olabilir. Ayrıca config dosyaları ve dil dosyalarıda loader sınıfı ile yüklenir.
  • Language Class Dil sınıfımız sitenizin birden fazla dili desteklemesini sağlar. Sizin yapmanız gereken tek nokta viewlerin içinde
    $this->lang->line('mylang');
    ifadesi ile dillerinizi göstermektir. Burada yapmanız gereken kaç dildesteğiniz var ise language klasörünün altında o kadar dil dosyası oluşturmanızdır. Ayrıca dil dosyaları için autoload ve helper özellikleri vardır.
  • Output Class Çıktı sınıfı site ziyaretçilerinize göstereceğiniz son htmlleri sisteme yüklenmesini sağlar.
  • Pagination Class Sayfalama sınıfı verilerinizi sayfanızda listelemenizi sağlar. Esnek bir yapıya sahiptir. Ayarları isterseniz direk controllerdan isterseniz, bir config dosyasından ayarlayabilirsiniz.
  • Session Class Tahmin ettiğiniz gibi sessionları düzenlemenizi sağlar. CodeIgniter’ın session sınıfı iyi değildir. Kullanıcılar bunun yerine üçüncü party session sınıfları kullanırlar.
  • Unit Testing Class Codeigniter’ın kendi unit test sınıfı vardır.
  • URI Class Bu sınıf sizin URİ’lerinizi yönetmenizi sağlamaktadır. Detaylı bilgi yakın zamanda eklenicektir. Bu sınıf CodeIgniter tarafından otomatik yüklenmektedir.
  • User Agent Class User Agent sınıfı sitenize ziyaret edenlerin kimliklerini almaktadır. Ziyaret eden bir arama motoru robotu mu yoksa bir browser mı yoksa bir mobil cihazmı anlamanızı sağlar.
  • Validation Class CodeIgniter’ın validation sınıfı versiyon 1.7 ye kadar pek tatmin edici değildi. Özellike inputlara array() biçiminde değişken gönderildiğinde sorunlar ile karşılanıyordu.  Şimdi versiyon 1.7 ile birlikte bu sorunlar çözüleceğe benziyer. Genel olarak özellikleri verilerin bir filitremeye tabii tutulması, veriler validasyondan geçemiyorsa hata mesajı gönderilmesi ve kullanıcının yazdığı ilk verilerin inputlara geri yüklenmesi, kendi hata mesajlarınızı yazabilmeniz şeklinde özetlenebilir.
  • XML-RPC Class Web serverlere ulaşmanızı ve kendi web serverlerini yaratmanızı sağlıyor. Web 2.0 ile basite alınamayacak bir konudur.
  • Zip Encoding Class Tahmin edebileceğiniz gibi dosyalarınızı zip encoding ile düzenlemenizi sağlıyır.

Şimdi CodeIgniter’ın ana sınıflarını biliyorsunuz. Tabii ki teoriler, kullanışları, değişkenlerine ve methodlarına burada değinmedik. Fırsat buldukça tek tek kütüphanelerin kullanılışına değineceğiz. Bundan sonraki bölümümüz CodeIgniter’ın helperları olacaktır.

Gününüz verimli kodunuz açık olsun.

Saygılar.

Bu Yazıyı Paylaş

CodeIgniter'a giriş - CodeIgniter kütüphanelerine genel bir bakış için 3 yorum

    • serkan avatar
      #1 - serkan Cevap Yaz

      Güzel bir derleme olmuş . Teşekkürler . Ama daha detaylı bilgiler verebilirseniz sevinirim smile

      08 Kasım 2009 Pazar 14:37:32
      • Ali ÇETİN avatar
        Ali ÇETİN Cevap Yaz

        Tabikide serkan, eklenicek olan makalelerdeki örneklerle birlikte ne kadar basit ve işlevsel bir framework olduğunu anlarsınız.

        26 Aralık 2009 Cumartesi 13:05:46
    • serkan avatar
      #3 - serkan Cevap Yaz

      Takipçinizim. Bugünden itibaren codeigniter e başladım. Sizin sayenizde de birşeyler öğreniyoruz. Çalışmalarınızda başarılar dilerim...

      08 Kasım 2009 Pazar 19:27:32

Bir Cevap Bırakın

grin LOL cheese smile wink rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink hmmm mad angry zipper kiss cool smile question dil