Merhabalar, uzunca bir süredir yazamıyorum kusura bakmayın yoğunluk işte. İş güç vesilesiyle Eylül başından beri İstanbul’da ikamet ediyorum ve Şubat ayına kadar böyle devam edecek. Bu süre içinde İstanbulda görüşmek isteyen varsa kose.onur et gmail nokta com adresime bir telefon numarası göndersin, buluşalım kaynaşalım.
Bundan önceki yazımda bahsettiğim yazı dizisine değişik bir boyut getirmek istiyorum. Daha doğrusu o yazının çizgisinin dışında bu sefer bir framework yani uygulama çatısı olan CodeIgniter’dan bahsedeceğim. O zaman haydi sorulara başlayalım.
CodeIgniter Nedir?
CodeIgniter PHP ile uygulama geliştiren yazılımcılar için bir Uygulama Çatısıdır. Kimi -benim gibi- programcının öcü gibi korktuğu, kiminin ise “başkasının yazdığı kod üzerinde çalışamadığı” için uzak durduğu birçok framework’tan sadece birisi (ama benim incelediğim tek çatı olduğu için en iyisi)
Bir tavsiye üzerine ilgimi çekmeyi başaran CodeIgniter hakkında Erhan benden çok çok erken davranıp sistem üzerine uzmanlaşmış, hatta Türkiye ayağının web sitesini bile açmış(lar) Düzeltme: Türkiye sitesini Erhan değil, Fatih Bazman açmış, Erhan CI hakkında bir grup oluşturmuş.
Bendeki bu eksikliği farketmemin ardından hemen Türkçe sitesini açıp Kullanım Kılavuzu’na bakmak istesem de, pek Türkçe sayfa bulamadım. Tabi eskiden olsa üzülürdüm ama artık hayvanlar gibi ingilizce bildiğimden dolayı hemen oturup çevirisine başladım ve Genel Başlıklar sütununun yarısına kadar olan bölümü çevirdim. Normalde çevrilmiş olanını bulsam o kadar yazıyı okumazdım ama çeviren kendiniz olunca mecburen tekrar tekrar okuyor, okudukça da ezberliyorsunuz mevzuyu : )
Nasıl Kurulur?
Önce CodeIgniter.com anasayfasındaki Download CodeIgniter bağlantısına tıklayarak gerekli dosyaları indirin ve sıkıştırılmış dosyayı proje klasörünüz içerisine açın. Karşınıza iki klasör, bir PHP ve bir HTML dökümanı çıkacak. User Guide adlı klasör gerekli dökümantasyonu ve System klasörü sistem dosyalarını içeriyor.
İşte bu kadar, kurulum için yapmanız gereken başka birşey yok.
Nasıl Kullanılır?
Çok basit kullanılır. Basitten kastım, PHP konusunda belli bir aşama katetmiş arkadaşlarım için gayet basit olacaktır. Ama object-oriented felan diyince bir adım geri atıyorsanız önce bu konuda biraz bilgi edinmenizi öneririm.
Nasıl kullanıldığına ilişkin daha fazla bilgiyi kendi sitesindeki Tutorials bölümünde yer alan iki adet videoyu izleyerek edinebilirsiniz. Yakında Türkçe kullanım kılavuzunun tamamına erişebileceğinizden dolayı heyecanı burada tüketmek istemiyorum : )
MVC Ne Peki?
Evet, bu tip uygulama çatılarında sık sık duyduğunuz veya duyacağınız bir kavramdır MVC. Açılımı Model + View + Controller olan MVC; veritabanı işlemleri, betik ve sunum aşamalarını birbirinden ayıran bir yaklaşım. Yani web sitenize bir talep geliyor, Controller bu talebi alıp Model ile birlikte gerekli veriyi hazırlıyor, hazırlanmış çıktı verisini içeren döküman olan View içerisinde ziyaretçiye sunuluyor. Hepsi bu.
Güzelliği ise View yani doğrudan tasarımı ilgilendiren dökümanlar içindeki betik çalışmalarını en aza indirmesi. Çünkü bu tip işler Controller dosyalarında yapılıyor ve sayfaya yazdırılması gereken işlenmiş veri Array ya da Object olarak View’a aktarılıyor. İşin içine Cache’de eklendimi tadından yenmez bir sistem ortaya çıkıyor.
Olayın asıl kafa karıştırması muhtemel kısmı ise Controller yapısı. Controller, esas bir controller sınıf çerçevesine yazılmış kendi controller sınıflarınızın toplamı da denebilir. Yani sistemi sınıflarınız ve onların içindeki fonksiyonlar ile oluşturmanız gerekiyor. Bunu yaparken de sistem kendi User Friendly URL’lerini kendi oluşturuluyor.
Ama Çatı Sonuçta
Demeyin sakın, o kadar sığ değil çünkü. Çatı derken kısıtlı bir arabirim ya da başkasının yazdığı fonksiyonlar topluluğu gelmesin aklınıza. Size sadece her projede özellikle ihtiyaç duyulan birçok konuda gerekli altyapıyı sunuyor. Altyapıda sunulan her türlü eklentiyi bir kerede yüklemiyor, ihtiyacınız olan yerde yükleyici fonksiyonu kullanıyorsunuz ve yükü siz belirliyorsunuz.
Plugin desteği ve sunduğu Helper dosyalarını geliştirebilme özelliği ise cabası. Yani çatı ancak sizin hayal edebildiğiniz kadar yukarıda, sizi hapsetmiyor.