Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi
CodeIgniter, PHP ile web uygulaması geliştirmeyi düzenleyen açık kaynaklı bir web framework’üdür. PHP’nin kendisi değildir; PHP üzerinde çalışan, yönlendirme, controller, model, view, form işlemleri ve veritabanı erişimi gibi tekrarlanan işleri daha düzenli yapmanızı sağlayan bir uygulama çatısıdır.

Saf PHP’de URL kontrolü, dosya organizasyonu, form doğrulama ve veritabanı sorgularını kendiniz yapılandırırsınız. CodeIgniter ise bu işleri belirli klasörler ve sınıflar üzerinden ayırarak projenin büyüdükçe daha kolay yönetilmesini amaçlar.

CodeIgniter nasıl çalışır?​


Aşağıdaki klasör yapısı CodeIgniter 4 yaklaşımını esas alır. CodeIgniter 3 örnekleri aynı dosya ve API düzeniyle doğrudan uygulanmaz. HTML sayfası üreten bir isteğin yaygın akışı şöyledir:
  1. Kullanıcı bir URL’ye istek gönderir.
  2. Router bu URL’nin hangi controller ve metoda yönlendirileceğini belirler.
  3. Controller isteği işler; gerekiyorsa modelden veri alır.
  4. Veri katmanı gerekiyorsa model ilgili işlemleri yürütür.
  5. Controller elde edilen veriyi view dosyasına aktarır.
  6. View, kullanıcıya gönderilecek HTML çıktısını üretir.
Her istek model veya HTML view kullanmak zorunda değildir; bir API controller’ı JSON yanıtı da üretebilir. Bu uygulama düzeni MVC olarak adlandırılır. MVC’de model veri ve iş kurallarını, view arayüzü, controller ise istek ile uygulama arasındaki akışı yönetir. Bu ayrım, tek bir PHP dosyasına HTML, SQL ve iş mantığını yığma ihtiyacını azaltır.

Örneğin bir haber listesini göstermek için controller doğrudan SQL yazıp HTML üretmek yerine modelden haberleri ister, ardından view dosyasını bu verilerle çağırır. Böylece veritabanı sorgusu ile sayfanın görünümü birbirinden ayrılır.

Saf PHP ile CodeIgniter arasındaki fark​


CodeIgniter seçiminin anlamını görmek için iki yaklaşımı karşılaştırmak yararlıdır.
KonuSaf PHPCodeIgniter
Dosya düzeniGeliştirici belirlerFramework yapısına göre düzenlenir
URL yönlendirmeElle kurulabilirRouter üzerinden tanımlanır
Veritabanı erişimiPDO veya mysqli ile ayrıca yazılırModel ve veritabanı katmanlarıyla düzenlenir
Büyüyen projeyi yönetmeKurallar geliştiriciye bağlıdırOrtak yapı sayesinde daha öngörülebilirdir
CodeIgniter her proje için zorunlu değildir. Tek sayfalık veya birkaç dosyalık bir script için saf PHP daha basit olabilir. Birden fazla sayfa, kullanıcı girişi, yönetim paneli, form işlemleri ve veritabanı bulunan projelerde ise framework kullanmak tekrar eden kodları ve dağınık dosya yapısını azaltabilir.

Somut proje yapısı örneği​


Tipik bir CodeIgniter projesinde uygulama kodları görevlerine göre ayrılır. Kavramsal olarak yapı şu şekilde düşünülebilir:

Kod:
app/
├── Controllers/
│   └── Haberler.php
├── Models/
│   └── HaberModel.php
└── Views/
    └── haberler/liste.php

Bu örnekte Haberler.php gelen isteği karşılar, HaberModel.php haber verilerini alır ve liste.php sonucu HTML olarak gösterir. Gerçek klasör ve sınıf adları kullanılan CodeIgniter sürümünün proje yapısına göre kontrol edilmelidir; framework dosyalarını rastgele değiştirerek başlamak yerine uygulama klasörlerinde çalışmak gerekir.

CodeIgniter kullanmaya karar verirken​

  1. Projenin yalnızca birkaç PHP dosyasından mı oluşacağını, yoksa büyüyen bir uygulama mı olacağını belirleyin.
  2. URL yönlendirme, form doğrulama, oturum, veritabanı ve şablon işlemlerinin tekrar edip etmeyeceğini değerlendirin.
  3. MVC yaklaşımını ve framework’ün klasör yapısını öğrenmeden doğrudan mevcut projeye kod taşımayın.
  4. Önce tek bir sayfa için controller, model ve view ayrımını kurun; ardından ortak işlemleri genişletin.
  5. Kullandığınız PHP ve CodeIgniter sürümleriyle uyumlu resmî kurulum ve yükseltme belgelerini kontrol edin.
En sık yapılan hata, CodeIgniter’ı yalnızca hazır PHP fonksiyonları koleksiyonu sanmaktır. CodeIgniter; dosya yapısı, istek akışı ve uygulama katmanları için kurallar getiren bir framework’tür. Bir diğer hata da tüm kodu controller içine yazmaktır. Controller yalnızca akışı yönetmeli; veritabanı işlemleri modelde, HTML çıktısı ise view dosyasında tutulmalıdır.

Sık sorulan sorular​


CodeIgniter 3 kodunu CodeIgniter 4 projesine doğrudan koyabilir miyim?​


Hayır. Namespace, klasör yapısı ve birçok API farklıdır. Eski örneğin hangi sürüme ait olduğunu belirleyip kullanılan sürümün geçiş belgeleriyle karşılaştırın. Aynı sınıf adını kopyalamak tek başına uyarlama sayılmaz.

CodeIgniter 4’te web sunucusu hangi klasörü sunmalı?​


Web kökü public klasörüne yöneltilmelidir. Uygulama kodu ve yapılandırma içeren proje kökünü herkese açık dizin yapmayın. Public klasörü giriş dosyasını ve herkese açık varlıkları taşır; writable ise log, önbellek ve benzeri yazılabilir veriler içindir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.