CodeIgniter Klasör Yapısı

CodeIgniter Klasör Yapısı

Hepinize merhaba dostlarım 😊. Bu yazımda sizlere daha CodeIgniter Framework'ü içerisindeki klasör yapısından bahsedeceğim. Hatırlarsanız bir önceki yazımda CodeIgniter Nedir, Avantajları ve Özellikleri Nelerdir bunlardan elimden geldiğince bahsetmiştim. Okumayan dostlarım için buraya link bıraktım.

Şimdiki konumuzda ise CodeIgniter Klasör Yapısı konusundan bahsedeceğim. Bu seride ben CodeIgniter3 üzerinden anlatım yapacağım. Sözü daha fazla uzatmadan hemen indirme işlemine geçelim dostlarım

  1. Google arama ekranına gelip CodeIgniter yazıp enter tuşuna basalım
  2. Gelen arama sonuçlarında CodeIgniter Web Framework seçeneğine tıklayalım
  3. Daha sonra sayfanın üst menüsündeki Download seçeneğine tıklayalım

bu adımları yaptıktan sonra ekranımıza CodeIgniter sürümleri aşağıdaki gibi listelenecektir

 

şeklinde işaretlediğim üzere CodeIgniter3 ü indirelim. İndirme işlemi tamamlandıktan sonra içeriğine baktığımızda

şeklinde klasörlerimizin olduğunu rahatlıkla görüyoruz dostlarım. Bu kısımda bizim için önemli olan klasörler

  1. application
  2. system

şeklindedir. Gerisine proje geliştirirken ihtiyacımız olmayacak onları silebiliriz. Şimdi artık bu önemli olan klasörlerden birazcık bahsetmeye

1-) APPLICATION KLASÖRÜ

Eveeet artık geldik CodeIgniter Framework üzerinde klasör yapıları konumuzda ilk klasörümüz olan application klasörümüze. Application klasörümüze bakacak olursak dostlarım bizim uygulama geliştirirken en ama en sık içerisinde pozisyon alacağımız klasör olarak geçer. İçerisinde controller işlemlerinden tutun da veri tabanı sorguları yazma, kullanıcıların göreceği sayfa tasarımları, uygulamamızın database ayarları vs gibi bir çok işlemler yapacağımız klasörümüzdür. Kısacası bizim kankamız olan klasördür diyebiliriz. Şimdi bu klasörün genel amacına değindik iyi hoş da bunun içerisindeki klasörlerimizden de gelin ufak da olsa bahsedelim hangi işlemlerde bize yardımcı oluyor. Çünkü bahsetmezsek olmaz değil mi :)

1.1-) CAHCE KLASÖRÜ

Cache kelimesinin artık önbellek olduğunu hemen hemen hepimiz biliyoruz. Burada da uygulamamız içerisinde cache yapısı ile çalışacağımız durumlarda yani projemize birazcık daha hız kazandırmamız gerektiği zamanlarda bu klasör bizi selamlayacaktır. Örnek vermemiz gerekirse veri tabanından verileri sürekli çekmek yerine belirli sürelerde çekmek ve bunu cache üzerinde tutmak her zaman her zaman veri tabanına sorgu  atmaktan bizi kurtatacaktır. Cache işlemlerinde default olarak bu klasör seçildiği gibi bizim isteğimiz durumlarında cache için başka klasör belirlenebilir.

1.2-) CONFIG KLASÖRÜ

Konfigürasyon yani ayarlamalar klasörü olarak geçer. İsmi de zaten bu klasörün görevini apaçık ortay sunuyor. Şimdi nedir bu konfigürasyon ayarları diye merak ediyorsunuz dostlar. Database ayarlamaları olabilir, base url tanımlaması, uygulama açıldığındaki temel olarak gerçekleştirilecek işlemler, route tanımlamaları gibi birden çok ayarlar gerektiği durumlarda bu klasör bize yardımcı olacaktır

1.3-) CONTROLLERS KLASÖRÜ

İsmi size tanıdık geldi değil mi. Biraz yabancı kalan dostlarımın bu kısımda MVC Nedir? başlıklı yazımı okumasını istiyorum. Linki buraya koydum. 

Uygulamamız üzerinde kullanıcı aksiyonlarını alıp yeri geldiğinde database gidip orada işlem yapmamıza yarayan, uygulamamızın bel kemiği olan controller dosyalarımızı içerisinde barındırdığımız klasörümüzdür

1.4-) CORE KLASÖRÜ

Normalde projemiz üzerinde bulunan ve pek bir ayar yapmaya ihtiyaç duymadığımız klasördür. Ama ne sebeple orada duruyor bunu da bilmesek olmaz. Bu klasörümüzün amacı bizim uyguulamamızın sınırlarını genişletmek istediğimiz zamanlarda, birden fazla kod tekrarı isteyen durumları engellemek yani uygulamamızın çekirdeğiyle oynama gibi işlem yapmamız durumlarında kapısına varacağımız klasörümüzdür. Normalde proje geliştirme aşamasında içeriğiyle oynamamanızı tavsiye ederim. Projeniz uçabilir :)

1.5-) HELPERS KLASÖRÜ

Kendisi en ama en sevdiğim klasörlerden birisidir diyebiliriz. Eski bir CodeIgniter geliştiricisi olduğum için ve yaklaşık 7 aydır Laravel ile geliştirme yapptığım için üzerimde hala etkisi var diyebilirim. Sözü daha fazla uzatmadan bu klasörümüzün genel olarak yapısına bakacak olursak bizim uygulamamız üzerinde kendimizin yazdığı fonksiyonları tutacağımız fonksiyonları barındıran klasörümüzdür. İçerisine örnek veriyorum session kontrolü, seo url ayarlayıcı vs gibi fonksiyonlarımızı yazıp projemiz üzerinde rahatça kullanabiliriz.

1.6-) HOOKS KLASÖRÜ

Normalde proje geliştirme aşamasında özellikle projeniz büyük bir proje değilse kullanma zorunluluğu olmayan klasör yapımızdır dostlarım. Bu klasörümüzün amacı ise uygulamamızın çekirdek kodlarına zarar ziyan etmeden uygulamamızın geliştirilmesini sağlama durumlarında, uygulamamız üzerindeki sayfalarımızın sıklaştırılması gerektiği durumlarda kullanacağımız klasörümüzdür. Bu güne kadar ben de kullanmadım, henüz nasip olmadı.

1.7-) LANGUAGE KLASÖRÜ

İsmi zaten kendisini belli etmiştir dostlarım. Tanımına da bakacak olursak uygulamamızı çoklu dilli bir şekilde geliştiriyor olabiliriz. İşte bu durumda dil dosyalarını içerisinde barındırmamız gerektiği zamanlarda bu klasörümüzü gönül rahatlığıyla kullanabiliriz

1.8-) LIBRARIES KLASÖRÜ

Uygulamamız üzerinde küütüphanelerimizi barındıracağımız klasör olarak geçer. Kütüphanemizi composer ile dışarıdan aldığımız zamanlarda (Örnek olarak SimpleImage kütüphanesi) veya kendi kütüphanemizi yazdığımız durumlarda bu klasörümüz içerisinde dosyalarımızı rahatlıkla oluşturup daha sonrasında da projemize bu kütüphaneleri rahatlıkla entegre edebiliriz.

1.9-) LOGS KLASÖRÜ

Nasıl ki  bir web uygulamaları olsun veya büük sistemler olsun kullanıcıların log kayıtları tutuluyorsa log klasörü içerisinde de bizim uygulama geliştirme işlemi sürecinde başarılı çalışmalarımız olsun, hata durumları olsun bunlar günlük olarak yedekleniyor. Hata ayıklama gibi zamanlarımızda amansız bir hal olduğu durumlarda logs klasörünün kapısına varmak bizim için yeterli olacaktır.

1.10-) MODELS KLASÖRÜ

Models klasörünü artık framework ile uğraşmaya başladığımız durumdan bu yana hepimiz biliyoruz. Models yani bizim uygulamamız içerisinde yani MVC uygulamamız içerisinde veri tabanımızdaki her bir tablo için ayrı ayrı oluşturduğumuz model dosyalarını içerisinde barındıran klasörümüzdür. Uygulama geliştirme aşamasında da sıklıkla bu klasör bizi selamlayacaktır

1.11-) THIRD-PARTY KLASÖRÜ

Normalde benim proje geliştirirken hiç kullanmadığım ve bu  güne kadar da yakın çevremde kullanıldığını görmediğim klasördür. Sanırsam büyük büyük projelerde bu klasör yapısı kullanılıyor. Genel olarak klasörün amacına bakacak olursak uygulamamız içerisinde 3. parti bir yazılım kullanmamız gerektiği durumlarda bu klasörün kapısına varmamız bizim için doğru bir seçenek olacaktır.

1.12-) VIEW KLASÖRÜ

View yani görünüm dosyalarımızın içerisinde saklanacağı klasörümüz olarak geçer. Uygulamamız MVC tabanlı bir uygulama olduğu için View yani kullanıcıya sunulacak olan front-end kodlarını içerisinde barındıracağı klasörümüzdür.

Application klasörümüzün genel amacını ve içerisindeki barındırdığı klasörlerimizin uygulama geliştirme aşamasında bize ne gibi yarar sağlayacağını, ne durumlarda karşımıza çıkacağını görmüş olduk. Şimdi ise gelelim diğer klasörümüz olan System klasörümüze

2-) SYSTEM KLASÖRÜ

Ve geldik artık application klasörümüzden bir sonraki klasörümüz olan system klasörümüze. Normalde uygulama geliştirirken herhangi bir ayar yapmadığımız klasörümüz olarak bilinir. Daha basit anlatmamız gerekirse genel projemizin çekirdeğidir ki öyledir de :). Ufak çapplı veya mid-level bir uygulama geliştiriyorsanız içerisinde çok ama çok zorunlu olmadığı sürece geliştirme yapmanızı tavsiye etmem projeniz zarar görebilir. Sözü daha fazla uzatmadan gelelim bu klasör içerisinde hangi klasörleri barındırıyor bunlara bir göz atalım

2.1-) CORE KLASÖRÜ

Genel olarak uygulama çekirdeğimiz olarak geçer dostlarım. Bütüüün uygulamamızı kapsayacak yeni özellikler getireceğimiz durumlarda, projemizin genelini daha performanslı bir hale getirme gibi durumları gerektiğinde bu klasör içerisindeki dosyalarla çalışmamız gerekmektedir.

2.2-) DATABASE KLASÖRÜ

Hali hazır system klasörü içerisinde olduğumuz için database klasörünün de mantığını adını duyar duymaz anlamışsınızdır. Genel amacına bakacak olursak dostlarım bizim projemiz üzeride row(), get_all(), get() (ileride bu fonksiyonlara değineceğiz) gibi fonksiyonları yazar yazmaz bizim için sql cümlesi oluşturma işlemlerini hızlı bir şekilde ayarlayan database fonksiyonlarını içerisinde barındırır. Çok ama çok ihtiyaç duyduğunuz zaman bu klasör içerisindeki ayarları dikkatli bir şekilde değiştirmenizi öneririm

2.3-) FONTS KLASÖRÜ

İsmi zaten klasörün amacını belli etmekten başka bir şey yapmıyor dostlarım hemen anlamışsınızdır. Uygulamamız içerisindeki kullanacağımız fontları bu klasör içerisine atıp bunları projemiz üzerinde kullanmamız gerektiği durumlarda bu klasörün kapısını çalmamız bizim için yeterli olacaktır.

2.4-) HELPERS KLASÖRÜ

Geldik bir helpers klasörüne daha dostlarım :). Application klasörü içerisindeki helpers klasörü hatırlarsanız bizim kendimizin fonksiyon yazıp kullanacağı zamanlarda kapısını çalacağımız bir klasördü. System klasörü içerisindeki helpers klasörü ise CodeIgniter ile beraber bize sunulan hazır helper dosyalarını içerir. Bunlara genel olarak bakacak olursak cookie, security, email gibi birçok helper dosyalarını rahatlıkla görebiliriz. İhtiyacımıza ve projemiz üzerinde genel olarak bir güncelleme, bir değiştirme yapacağımızı durumlar zorunlu olduğunda bu klasör içerisindeki dosyaları çok dikkatli bir şekilde değiştirmemizi bizim için faydalı olacaktır. 

2.5-) LANGUAGE KLASÖRÜ

Şimdi diyorsunuz içinizden "Aynısı Application Klasörü İçerisinde De vardı :)". Evet doğru application klasörü içerisinde de yer alan bir klasör lakin klasörümüzün buradaki amacına bakacak olursak bizim genel sistemimiz üzerindeki dil dosyası ayarlamalarını yapacağımız klasördür. Buradaki ayarın bütün projeye etki edeceğini rahatlıkla söyleyebiliriz. Uygulamamız üzerinde sistem ayarlarının dil dosyalarını değiştireceğimiz durumlarda bu klasör altındaki dosyalara ilerlememiz bizim için doğru seçenek olacaktır.

2.5-) LIBRARIES KLASÖRÜ

Kütüphaneler klasörü olarak geçer ki aynısından application klasörü altında da olduğunu hepimiz biliyoruz. Application klasörü içerisinde bizim dışarıdan kütüphane alacağımız durumlarda veya kendimizin bir kütüphane yazacağımız durumlarda kapısına varacağımız klasör idi. Ama system klasörü altındaki libraries klasörüne bakacak olursak CodeIgniter tarafından bize hazır olarak gelen kütüphanelerin olduğunu rahat bir şekilde görürüz. Bunlara kısaca göz gezdirecek olursak pagination, user_agent, upload vs gibi kütüphaneleri rahatlıkla görebiliriz. Genel olarak bu kütüphaneleri geliştireceğimizde ise çok dikkatli bir şekilde geliştirmemiz bizim için faydalı olacaktır.

 

Eveet dostlarım 😊. Bu yazımda sizlere CodeIgniter Framework üzerinde klasör yapısından elimden geldiğince anlatmaya çalıştım. Umarım faydalı olmuuşumdur. Eksik veya hatalı bir anlatım yapmış isem benimle iletişime geçmekten çekinmeyin :)

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıLaravel Query Builder İşlemi -2-
Sonraki YazıPHP Callback Fonksiyon Kullanımı
Yorumlar (1)
Zafer Yıldız
10.05.2021

Güzel içerik :)

Yorum Yapabilirsiniz