Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer

Codeigniter Klasörlerini Tanıyalım

2 min read

Önce Codeigniter konusunda temel bir açıklama yaptık. Ardından kurulumunu ve ilk ayarlarını gördük. Şimdi ise bu meşhur PHP anaçatısının klasörlerini tanıyalım.

system Dizini

Codigniter Klasörleri
Her şeyden önce system dizinindeki içinde 11 adet klasöre dikkatimizi verelim. Buradaki application klasörü bizim projemiz için oluşturacağımız dosyaların bulunacağı klasör. Diğer klasörler ise Codeigniter’ın temel yapısını oluşturan dosyaların bulunduğu klasörler. Kısacası application dışındaki klasörlerle genel olarak hiç işimiz olmayacak.

application Dizini

Codigniter Klasörleri
Gelelim bizi asıl ilgilendiren application klasörüne. Resimde gördüğünüz gibi burada 9 adet klasör bulunmaktadır. Bu klasörlerin (config ve error hariç) içleri genel olarak boştur. Yani doldurmak bize kalmış. Şimdi önem sırasına göre klasörleri incelemeye başlayalım.

config: Bu klasör ve içindeki dosyalar sistemin olmazsa olmazıdır. Porjemizle ilgili bütün ayarları bu klasörden yaparız. Hatırlarsanız kurulum ve ilk ayarlar konulu yazımda dizin ve veritabanı ayarını yapmak için buradaki bazı dosyaları güncellemiştik. İşte bu tür bir çok ayar dosyası mevcuttur config dizininde; kendiliğinden başlatılacak uygulamalar (autoload.php), önceden tanımlı sabit değerler (constants.php), projenin url yapısını belirleyeceğimiz ayarlar (routes.php) vb. Buradaki dosyaları zamanla, yeri geldikçe işleyeceğiz.

controller: Controller’ın ne olduğu konusunu MVC’den bahsederken incelemiştik. Kısacası gemimizin kaptanı diyebiliriz. Şöyle özetleyeyim meseleyi, Codeigniter ile hazırlayacağımız projelerin üç önemli unsuru vardır. Controller, Model ve View (MVC) dosyaları. Bunlara bir de ek olarak config (ayar) dosyalarını sayabiliriz. İşte bu MVC dosyalarından Controller’lar vazgeçilmez olanıdır çünkü sistemin nasıl çalışacağına bu dosyalar karar verir. Model ve View dosyaları olmadan da sadece Controller dosyası ile sistemimiz çalışır.

view: Controller dosyaları farklı dosyalardan elde etmiş olduğu verileri View dosyaları ile ekrana yansıtır. Buradan çıkarmamız gereken sonuç View klasörüde bulunacak olan dosyaların HTML ve CSS dillerini barındıracağıdır.

model: Controller dosyalarının bir numaralı veri kaynağı Model dosyalarıdır. Örnek vermek gerekirse veritabanından verilerin alınma işi Model dosyalarına, bu verileri görüntüleme işi View dosyalarına ve aradaki bağı sağlama işi de Controller dosyalarına aittir.

Codigniter Klasörleri

Not: Sadece yukarıdaki klasörlerden faydalanarak çok iyi performansa sahip büyük projeler oluşturabilirsiniz. Buradan sonraki klasörler ikinci derecede önceliklidirler ve önem seviyeleri hemen hemen aynı diyebilirim.

errors: Sistemde oluşacak hataların yönlendirileceği dosyalar burada bulunur.

helpers: Codeigniter’ın kendi yapısında bir takım yardımcı (helper) uygulamalar vardır. Bunlara ekleme yapmak isterseniz bu klasörden faydalanabilirsiniz.

hooks: Codeigniter’ın mevcut fonksiyonlarının farklı bir şekilde çalışmasını istiyorsanız hazırlayacağınız uygulamaları burada oluşturabilirsiniz.

language: Çok dilli sistemler için oluşturacağınız dil dosyalarını buraya eklemelisiniz.

libraries: Sistemi daha da güçlendirmek için yazacağınız kütüphaneleri bu klasörde bulundurmalısınız.

Daha önce kullanmış olduğum aşağıdaki resmi klasörlerin ve çalışma mantığının anlaşılmasına faydası olacağını düşünerek tekrar eklemeye karar verdim. Umarım artık daha anlaşılır bir resimdir.

Codeigniter Çalışma Mantığı

Diğer Dosyalar

Codigniter Klasörleri
Peki ya projelerimizde kullanacağımız resimler, javascript ve css dosyaları gibi ek öğeler nerede bulunacak diye sorabilirsiniz. Bu klasörler ana dizinde system ile aynı seviyede bulunmalıdırlar. View dosyalarımızın içinden de basit bir şekilde bu dosyaları çağırabiliyoruz. Zaten ilerde örneklerini vereceğim.

Özet ve Sonuç

Bu yazımızın konusu Codeigniter’ın klasörleriydi. Anafikir ise system/application içindeki config, controller, view ve model klasörlerinin projelerimiz için çok önemli ve hatta yeterli olduğu, diğer klasörlerin ise çok daha ileri seviyelerde kullanılabileceğidir.

Codeigniter konusunda temel konuları bitirince daha ileri seviyede ve uygulamaya yönelik makaleler yazacağım. Bu konuda istekte bulunan arkadaşlar için bu notu düşüyorum ve birazcık daha sabretmelerini diliyorum.

Umarım bu makale Codeigniter’a ilk bakıştaki karmaşıklığı biraz olsun sadeleştirmiştir. En kısa zamanda tekrar görüşmek dileğiyle.

Not: Codeigniter konusunda Codeigniter Türkiye (www.codeigniter.gen.tr) sitesini de tavsiye ederim. Oldukça güzel hizmet vermekteler.

Erhan Yakut Software Developer @Binalyze | Founder @Passwall | Golang Enthusiast | Open Sorcerer