Kohana’ya ilk adım
Kohana‘yı, Bir süre önce, blogdan bir arkadaş Code Igniter yerine önermişti ve incelememi istemişti. Boş
zamanlarımda giriştiğim büyük bir projede, Zend’i kullanmaya başlamıştım fakat zaman problemi nedeniyle başladığım projenin quickstart’ını bir de Kohana’da yapmaya karar verdim. Bu kararımda Code Igniter’a bir sempati duymam da var tabii, nitekim CI, ZF kadar güçlü araçlar vermese de genişletilmesi çok kolay ve hızlı yapı sunmakta. Ve, söylenildiği gibi, Kohana’da her ne kadar herşey baştan yazsa da CI’yın bütün iyi tarafları korunmuş -üstelik fazlası da var. Fakat bu yazıda uygulamadan örnekleri değil, sadece aracı ve benzer araçlardan farklılıklarını tanıtacağım.
Kısa bir bakış
Öncelikle aracımızın ne olduğunu ve diğerlerinden yana ortaya koyduğu farkları belirleyelim. Çok güvenlikli, süper hızlı vb. yaklaşımlara girmeyeceğim, eğer genel geçer bir karşılaştırma ümidindeyseniz, frameworklere başlarken adlı yazımda Code Igniter için yazdıklarımı, Kohana için de geçerli.
Çok uzatmadan,
- Veri alış/verişinde iyi kurgu ve veri işleme araçları.
XSS, FLI gibi güvenlik sorunlarını filtrelemenizi sağlayacak veri yönetimi merkezi bir şekilde kurgulanmış. Ayrıca Array düzenleme, URL,
Hafif.
Zend Framework’ün yüzlerce interface’i, işi düzgün, inci gibi çıkarmak isteyenler için sunduğu Adapter sınıflar yok. Yerine çok kolay düzenlenebilen bir çekirdek, ve çekirdeğiyle bütünleşik loader’ı var.
Geleneksel MVC.
Aslında buna yumuşak MVC ‘mi demek lazım bilmiyorum, çünkü terminolojide zıttı Katı (strict) MVC. Zend Framework’de veya Symfony’de View, Model ve Controller çok net ayrılmışken, Kohana’da çok da kurallara bağlı kalmadan yaşayabiliyorsunuz. MVC’nin Front Controller’ında Request, Route ve son olarak Dispatch oldukça kolay düzenlenebilen, çağrılabilen ve güncellenebilen uygulamalar.
Genişletilebilirlik.
Kohana kütüphanelerini değiştirmeniz, sınıflarını extend etmeniz oldukça kolay. Ayrıca köklü değişiklikleri çekirdeğe dokunmadan Event/Hook makanizmasıyla yapmanız da mümkün, ayrıca tabii çekirdeğin de tıpkı kütüphaneler gibi oldukça kolay düzenlenebiliyor.
Hazır bootstrap.
Uygulamanızın config dosyaları, dil seçenekleri (i18n), cache’i, herşeyi yapılandırılmış. Sistemin default config dosyalarından kopyalamanız yeterli. Config, Library, Controller, Model (ORM), auto-load mantığında yapılmış ve cache’de düşünülmüş. Doğrusu benzer bir yapıya kavuşmak için, ZF liginde bir MVC ile birkaç gün uğraşmam gerekmişti -ki istediğim yere gelmedi bile.
Katı PHP5 OOP kuralları.
Örneğin tanımlanmamış bir değişkeni isset olmadan sırf var mı yok mu diye kontrol ederken performans mı kaybediyorsunuz, kohana zaten buna izin vermiyor. Başlangıçta biraz sinirinizi bozabilir, fakat işin gerçeği, doğrusu bu.
Kolay, kısa öğrenim süreci.
Başlık kendini açıklıyor.
Özel Kütüphane Kullanımı.
Diğer kütüphanelerle birarada kullanılabiliyor ve Kohana’nın dışardan içine katılanlardan hepsi, dallarında iyi araçlar. Mesela hep smtp mailer olarak tercihim Swiftmail olmuştur mesela ki Kohana da swiftMailer’ı seçmiş..
ZF ile birlikte kullanılabiliyor.
Bir önceki maddenin gereği, bu da mümkün. Ağır işleri, ustasına bırakabiliyoruz. Bu durumda feragat edeceğimiz tek şey Front Controller’da Dispatch ve Request. Dilenirse Router, Layout ve View bile, ZF’den adapte edilebilmekte. Tabii bu iş tamamen sizin işiniz. Hmm.. şimdi düşündüm de router’a request’i adapte etmek biraz acılı olabilir.
Ve, CI için neredeyse herşey, Kohana için de geçerli.
Performans
Kohana’da şüphesiz beni en çok çeken basit tasarımı ve ZF ile kullanılabilmesi oldu. Nitekim ZF’nin sadece veri işlemeyen bir sayfasının callstack’i (cache, i18n, layout-view dahil) benim bilgisayarımda 0.4 verirken, Kohana’da bu rakam 0.02. Fakat belirtmek lazım, ZF doğru kullanılırsa bu rakamın üstüne çok da çıkmazken, Kohana’da optimizasyon adaptasyonunuzu kendiniz yapmanız gerekmekte.
İşeyiş ve örnekler
Kohana işleyişine ve Kohana’yı kullanmada yardımcı olacak yazılara gelince, pek çok müsvette olarak duruyor, yakında onları da çıkarırım. Bu yazılarda basit bir uygulama başlangıcı, basit ORM, Form işleme yöntemleri (geleneksel veya ajaxla ve farklı içerik doğrulama sistemleriyle), Layout ekleme, auth modülü, captcha/ajax, kohana genişletme teknikleri derken uzun bir süre bir çok eklemeyle yazılar devam edecek gibi gözüküyor.

Kasım 5th, 2008 @ 4:16 pm
Kohana kullan, Kohana :) Güzel bir yazı olmuş Gökçe
Kasım 21st, 2008 @ 4:08 pm
Kohana iyi güzel de arkadasındaki topluluk CI kadar sağlam mı acaba?
Kasım 23rd, 2008 @ 4:44 pm
Nereden bakıldığına bağlı. Sayı bakımından mı bilgi bakımından mı sorduğuna bağlı. Ben Kohana’da CI’da bulduğum esnekliğin çok daha fazlasını buldum. Modülleri ve kütüphanelerinde CI gibi gereksiz, veya kötü kurgulu daha az şeye rastladım ki bu rastladıklarımın Core içinde olmadığını da belirtmem gerek. Oysaki CI’da modellerinde $_POST kullanımına örnek veren bir kurgu var, bu örneği imam ve cemaat konusundaki deyimle birleştirecek olursak, ben Kohana derim. Fakat Kohana, CI’nın kolay ve genişletilebilir hafif kurgusuna özenerek CI’nin yeniden yazılmışı, dolayısıyla bir takipçi. Bu yüzden CI’nin forumunu daha kalabalık bulacaksınız.
Ağustos 13th, 2009 @ 4:25 pm
Peki bunun türkçe dil paketi var mı acaba ?
Ağustos 13th, 2009 @ 4:31 pm
Kohana’da dillere özgün pek fazla şey bulunmuyor. Örneklerle kullanıldığında ingilizce çıktı veren yegane kütüphane örnek form doğrulama aracı, bu 10-15 satırı çevirmek için paket yaratmaya da pek değmez. Zaten form doğrulama kütüphanesinin kullanacağı hata mesajlarını gene biz belirlediğimizden böyle bir pakete pek ihtiyacımız yok.
Kasım 1st, 2010 @ 12:50 am
seni seviyoruz kohana :), codeigniter dan çok daha iyi dir 3.sürümü