PHP framework seçimi

Benim gibi uzun yıllar web tabanlı uygulamalarla haşır neşir olmuş birisi değilseniz, web tabanlı uygulamalar yazmak konusunda işe ilk başladığınızda sizi hayal kırıklıkları bekliyor olabilir. Örneğin php dilini ele alalım. İnternetin en çok kullanılan programlama dilinde blog gibi belirli bir dinamik site uygulaması yazmak isteseniz 1-2 kitap devirmeden bu işi toparlamanızın mümkün olmayacağını söyleyebilirim. .NET ve C# dili ile uğraşımdan sonra PHP ile kod yazmak istememin sebepleri belki başka bir makalenin konusu olabilir. Ancak bu yazının amacı, size PHP ile işe başlarken, PHP framework seçimi yaparken faydalı bir bakış açısı kazandırmak.

Niçin PHP Framework ?

Çünkü hazırlar. Hazırı kullanmak, işi daha kolay, daha güvenli ve daha kolay yapmanızı sağlar. Tekerleği yeniden keşfetmezsiniz.  Uğraşınız azalır, amacınıza odaklanır, projenizi daha iyi hale getirecek zamanı daha değerlendirecek noktalara odaklanırsınız.

Php Framework’ler

Php ile başlangıçtan kullanmak için MVC (Model, View, Controller) özelliği bulunan bir framework ararken karşıma onlarca açık kaynak php framework çıktı. Zend Framework, CakePhp, CodeIgniter, Symfony … Bu liste uzayıp gidiyor. Her birinin bir diğerine göre avantajı/dezavantajı var.

Nasıl seçim yapmalı ?

Temel soru bu. Kimi framework hızlı bir başlangıçla kullanılabilirken bir diğer biraz daha okuyup çalışmayı gerektiriyor. Dökümantasyon da önemli tabii ki. Size kısa ve basit bir liste oluşturarak göstermek istiyorum:

  • Veritabanı bağımsız olamlı (mysql, mssql, postrgesql vb…)
  • Konfigürasyon sistemi kapsamlı olmalı. Bir uygulama yazdıysanız, 2., 3., 10. sitede farklı konfigürasyonla çalıştırabilmelisiniz.
  • Uygulama/Modul/Component yapısı bulunmalı. Kapsamlı uygulamalar, modüller ve parçalara ayırarak daha kolay yazılacağı gibi kolay denetelenecek, tekrarlanan işleri componentlerle hazırlayarak yazılım zamanınızı kısaltacaksınız.
  • Template sistemi kolay ve anlaşılır olmalı. Her web sitesi için farklı tasarımlar (html, css, imajlar, javascript) olacaktır. Bu farklılıkları kolaylıkla değiştirebileceğiniz bir sistemi bulunmalı
  • CRUD (Create/Read/Update/Delete) uygulamalarını kolayca oluşturabilmelisiniz.
  • Veritabanı yönetimi kolay olmalı. ORM (Object Relational Mapper) desteği olmalı. Veritabanı yapısının güncellenmesi gerektiğinde kolaylıklar olmalı.
  • Mutlaka cache sistemi olmalı ya da mevcut cache uygulamalarından birini  desteklemeli.
  • Plugin ya da başka kütüphaneler ile bağlantısı olmalı.
  • SEO uyumlu uygulamalar geliştirebilmek için MVC (Model, View, Controller) özelliği olmalı.

Sonuç

Yukarıda özetlediğim unsurlara başka detayları, muhtemelen sizin ihtiyaçlarınızı da ekleyebilirsiniz. Ancak temel husus, uygulama geliştirmeye başlarken, uygulamanın gelişip ilerlediği aşamalarda nelere ihtiyaç duyabileceğinizi iyi tasarlamak ve ona göre en az kod yazarak hangi framework ile sonuca ulaşacağınızı tahmin etmektir.

symfony php frameworkSonuç olarak ben Symfony’de karar kıldım. Symfony yukarıdaki özelliklerin yanında pek çok özelliği de içinde barındırıyor. Fırsat buldukça deneyimlerimi sizinle paylaşmaya çalışacağım. Mutlu programlamalar :)

21.12.2012 : Bu yazıyı yazdığım tarihten bugüne PHP framework dünyasındaki değişiklikler uygun ilaveler yapmam gerekti.

Artık Yii Framework Kullanıyorum

Etkili biçimde proje geliştirmek için aradığım özelliklerin hepsini bir Yii PHP framework karşılıyor. Bu konudaki inceleme yazımı okuyabilirsiniz.

Popüler PHP Framework Listesi

Sizlere popüler PHP framework listesi hazırladım.

  • Codeigniter
  • Yii Framework
  • Symfony
  • Kohana
  • Zend

Daha ayrıntılı bilgi için PHP Frameworks adresine  bakabilirsiniz.

 

Bir tek cevap “PHP framework seçimi”

  • Mahmut

    Güzel bir makale olmuş ama ben henüz bir karar veremedim framework konusunda.Hatta kullanıp kullanmamakta bile kararsızım direkt php ile kodlamak daha hoş görünüyor:)

Bir Cevap Yazın