
Codeigniter 4 ün genel yapısına bakacak olursan codeigniter 3 ten farkları bulunmakta. Öncelikle şunu belirteyim CodeIgniter 3 te yazdığınız projenizi 4 e direkt güncelleyemezsiniz. Yapılarındaki kesin değişimler güncellemenize imkan tanımıyor.
CodeIgniter'dan en iyi şekilde yararlanmak için, CodeIginiter ın varsayılan olarak nasıl yapılandırıldığını ve uygulamanızın ihtiyaçlarını karşılamak için neleri değiştirebileceğinizi anlamanız gerekmekte.
Ana Klasörler
Yeni bir yüklenen bir CodeIgniter 4 projesinde ilkli bizi karşılayan altı dizini vardır: /app, /system, /public, /writeable, /testing ve belki /docs dizinleri bulunur. Bu dizinlerin her birinin kendine ait çok özel bir rolü vardır.
App Klasörü
Uygulama dizini, tüm uygulama kodunuzun bulunduğu yerdir. Bu, birçok uygulama için iyi çalışan varsayılan bir dizin yapısıyla birlikte gelir. Aşağıdaki klasörler temel içeriği oluşturur:
/app | ||
/Config | Yapılandırma dosyalarını tutar | |
/Controllers | Denetleyicileri tutar. Denetleyiciler program yani site akışını belirler. | |
/Database | Veritabanı geçişlerini(migration) ve tohum dosyalarını tutar. | |
/Filters | Denetleyicilerden önce ve/veya sonra çalışabilen filtre sınıflarını depolar | |
/Helpers | Yardımcıları, yani bağımsız işlev yapmamızı sağlayan dosyalarımızı saklar. | |
/Language | Çoklu dil desteği, dil dizilerini buradan okur. | |
/Libraries | Kullanışlı sınıfları barındıran, yani kütüphaneleri tutan dizin. | |
/Models | Modeller, sistemin işlemesini sağlayan varlıklarını temsil etmek için veritabanıyla birlikte çalışır. | |
/ThirdParty | Uygulamada kullanılabilen dış kaynak kütüphaneleri tutar. | |
/Views | Bu klasör, istemciye görüntülenen HTML çıktısını oluşturur. | |
Bu dizindeki tüm dosyalar App ad alanı altında bulunur, ancak app/Config/Constants.php dosyasında bu yolları değiştirebilirsiniz.
System Klasörü
Bu dizin, asıl sistemi oluşturan dosyaları depolar. App dizinini nasıl kullanacağınız konusunda çok fazla esnekliğe sahip olsakta, sistem dizinindeki dosyalar asla değiştirilmemelidir. Bunun yerine, istenen işlevselliği sağlamak için sınıfları genişletmeli veya yeni sınıflar oluşturmalısınız.
Public Klasörü
Ortak klasör, kaynak kodunuza doğrudan erişimi engelleyerek web uygulamanızın tarayıcı tarafından erişilebilen kısmını tutar. Ana .htaccess dosyasını, index.php'yi ve CSS, javascript veya resimler gibi eklediğiniz tüm uygulama varlıklarını içerir.
Bu klasörün sitenizin "web kökü" olması amaçlanmıştır ve web sunucunuz onu gösterecek şekilde yapılandırılmalıdır.
Writable Klasörü
Bu dizin, bir uygulamanın ömrü boyunca yazılması gerekebilecek tüm dizinleri içerir. Bu, önbellek dosyalarını, günlükleri ve bir kullanıcının gönderebileceği tüm yüklemeleri depolamak için dizinler içerir. Uygulamanızın buraya yazması gereken diğer dizinleri de eklemelisiniz. Bu, ek bir güvenlik önlemi olarak diğer birincil dizinlerinizi yazılamaz durumda tutmanıza olanak tanır.
Tests Klasörü
Bu dizin, test dosyalarınızı tutacak şekilde ayarlanmıştır. _Support dizini, testlerinizi yazarken kullanabileceğiniz çeşitli sahte sınıfları ve diğer yardımcı programları içerir. Bu dizinin üretim sunucularınıza aktarılmasına gerek yoktur. Fakat online test yapacaksanız taşımanız faydanıza olacaktır.
Docs Klasörü
Bu dizin projenizin bir parçasıysa, CodeIgniter4 Kullanıcı Kılavuzunun yerel bir kopyasını içerir.
Dizin Konumlarını Değiştirme
Ana dizinlerden herhangi birinin yerini değiştirdiyseniz, yapılandırma ayarlarını app/Config/Paths içinden değiştirebilirsiniz.