PHP kütüphaneleri (PHP Frameworks)

Uzun süre uygulamalarımı geliştirmek için gerekenleri kendim yazdıktan sonra bir framework kullanmaya karar verdim.

İlk iş olarak varolan PHP frameworkleri arasında uygun olanı seçmek için bir araştırma yaptım. Kullanmaya karar vermeden önce özellikle bir kaç framework arasında kararsız kaldım. En sonunda ise CodeIgniter’i kullanmaya karar verdim.

Ruby on Rails’in spektaküler denilebilecek başarısından sonra MVC tabanlı PHP frameworkleri de oldukça yaygınlaştı. Bir framework kullanmanın bir çok faydası var. Bunların başında hızlı uygulama geliştirme, tekrar kullanabilen kod gibi şeyler. Framework kullanmak veya kullanmamak konusuna daha başka bir ara değinebiliriz.

PHP için bir framework aramaya çıktığınız zaman karşınıza bir sürü seçenek çıkacaktır. Dolayısı ile seç,m yapmakta zorlanabilirsiniz. Benim başıma geldi. Bu yazıda da bu konuda ki deneyimleri anlatmaya çalışıyorum.

CodeIgniter

CodeIgniter Flame Logo

CodeIgniter, MVC yapısını kullanan bir framework. CodeIgniter’ın en büyük özelliği hafif bir framework olması. Burada hafif derken özelliklerinden bhsetmiyorum. CodeIgniter gereken kütüphaneleri sadece kullanacağı zaman yüklüyor. Bahsedilen hafiflik bu. Bunun haricinde diğer frameworkler arasında en iyi performansa sahip olanlardan biri.

CodeIgniter’i kurmak ve çalışmaya başlamak oldukça kolay. Beş dakika içinde çalışan bir CodeIgniter’a sahip olabilirsiniz. Aynı zamanda CodeIgniter incelediğim frameworkler arasında öğrenilmesi (en azından benim için) en kolayı idi. Codegniter ile çok kısa bir zamanda uygulama geliştirmeye başlayabilirsiniz.

Eğer hala PHP4 kullanmak gibi bir mecburiyetiniz varsa da CodeIgniter PHP 4 ile çalışıyor.

Bunun dışında her açık kaynaklı projede olduğu gibi en önemli etkenlerden biri de topluluk yani ‘community’. CodeIgniter’ın yardımsever bir topluluğu var. Dökümantasyonu yeterli ve kolay anlaşılır. Dökümantasyonda bulamadıklarınıza ise forumdan kolayca yanıt bulabilirsiniz.

Zend Framework

Zend Framework Logo

Zend Framework, adından da anlaşılacağı gibi PHP’nin ‘babası’ Zend tarafından destekleniyor. İlk çıktığı zaman fazla bir sükse yapmayan ama giderek daha da yaygınlaşan bir framework. Sadece PHP 5 ile çalışıyor. Tamamen OO programlama mantığı üzerine kurulu. Arkasında bulunan Zend desteği ile özellikle büyük projeler düşünülürek yaratılmış bir framework olduğunu düşünüyorum. Öğrenme eğrisi CodeIgniter ile karşılaştırılınca ilk zamanda biraz daha dik görünse de çok zor değil. İlk uygulamanızı yapmak CodeIgniter’dan biraz daha zaman alabilir, beş dakika yerine yirmi dakika…

Zend Framework’un son derece detaylı bir dökümantasyonu var. Aynı zamanda hem Zend’in desteğine hem de kalabalık bir topluluğa sahip.

CakePHP

CakePHP Logo

CakePHP diğerlerine göre kullanımı biraz daha farklı olan bir framework. Kendine özgü bir yapısı ve işleyişi var. Bu yüzden öğrenmesi biraz daha uzun sürüyor. Ama CakePHP’nin oldukça fazla taraftarı var. CakePHP’nin kendine özgü yollarını öğrendiğiniz zaman neredeyse çok az PHP bilgisi ile uygulamalar oluşturabilirsiniz.

Bu arada CakePHP de PHP 4 desteği veriyor. Bu arada Internet’te baktığım kadarı ile hız testlerinde CakePHP diğer frameworklere göre açık farkla geride.

Beni CakePHP’den soğutan şey, öğrenme eğrisindeki dikliği, kendine özgü tavizsiz yapısı ve yavaşlığı oldu.

Diğerleri

Yukarıda saydığım bu üç framework PHP frameworkleri arasında en yaygın olanları. Bu yaygınlık kullanıcı tabanı ve aktif gelişimine bağlı. Ama bunun yanında bakmanızda fayda olabilecek başka kaliteli ve kullanışlı PHP frameworkleri de var. Aşağıda listeleyeceklerimi kurup denemedim ama uzun süre araştırdım. Bu araştırmaya göre aşağıda adı geçenlerde ciddi alternatifler arasında. Daha çok bilgisi olanların, denemiş olanların yorumlarını bekliyorum.

  • Symfony (Diğerlerine en ciddi alternatiflerden biri. Denemedim. Oldukça kaliteli bir yapısı ve azımsanmayacak bir topluluğu var.)
  • Seagull PHP Framework
  • Akelos PHP Framework
  • Kohana (CodeIgniter’in üzerine kurulmuş ama sadece PHP 5′in OO özelliklerini kullanarak yazılmış. Henüz CodeIgniter kadar olgun değil. Topluluğu o kadar fazla değil.)
  • Ez Components
  • Prado

Sonuç

Bu bilgiler ışığında CodeIgniter’da karar kaldım. Geliştirdiğim bir proje’de (www.mataraga.com) kullandım ve memnun kaldığımı söylemeliyim. Tekerleiğ tekrar keşfetmeme konusunda büyük bir faydası var.

Bunun haricinde Zend Framework’e dalmış durumdayım. Diğer bir projeyi de Zend Framework kullanarak tamamlamayı düşünüyorum. Belki o zaman ikisi ile ilgili bir karşılaştırma yazabilirim.

Not: Karşılaştırma demişken, şu adreste bazı PHP frameworklerinin bir karşılaştırması var. İlgilenenler buraya da bakabilir.