01.PHP Frameworkler ve Symfony

01.PHP Frameworkler ve Symfony

PHP ilk olarak 1995 yılında aslen Danimarka ‘lı ama Kanada ‘lı yazılımcı Rasmus Lerdorf tarafından oluşturuldu. Lerdorf ilk olarak Perl betiği şeklinde sayfasına gelen ziyaretçilerin sayısını tutmak ve basit dinamik işlemler için PHP ‘yi geliştirdi. Yazdığı bu dil ise kısa süre sonra diğer yazılımcıların dikkatini çekti. Daha sonra  PHP ‘yi herkesin kullanabilmesi için Açık Kaynak Kodlu olarak piyasaya sunuldu. İlk yaratıldığı haline oranla şimdi çok daha yetenekli ve güçlü olan PHP halen geliştirilmeye devam ediliyor. Dilerseniz gelişmeleri PHP ‘nin Resmi Sitesinden takip edebilirsiniz. PHP ‘nin ne olduğuna gelince PHP ‘yi kısaca dinamik web siteleri, web uygulamaları geliştirmek için oluşturulmuş web tabanlı çalışan bir programlama dili olarak tabir edebiliriz. Muhtemelen bunları zaten biliyorsunuzdur. Böylece konumuza ilk girişimizi yaptık.
 

Tıpkı dünyada olduğu gibi ülkemizde de PHP kullanımı oldukça yaygındır. PHP ve ASP(ve ASPNET ile ) bu iki dil sektörlerini domine etti diyebiliriz. Kuşkusuz bu ikilinin dışında da dinamik web dilleri var ( Örn JSP ) ama bu ikisi gibi pek yaygın değil. Başa dönersek ülkemizde PHP kullanımı oldukça yaygındır. Amatör ya da profesyonel herkes ucundan kıyısından PHP ile bu işe başlamıştır. Bu şekilde ya devam etmektedir ya da bunun üzerinden başka dillere(Örn: ASP – ASP.NET) geçmiştir. Ancak çoğumuz için PHP ilk göz ağrımızdır.


 

Google Trend göre Dünyada PHP&ASP.NET Durumu;


 

PHP ile başladıktan bir kaç zaman sonra genellikle bir framework ile tanışırız. Peki ama neden ? Neden bir Framework e ihtiyacımız olur ? PHP çok esnek ve dinamik bir dildir ve her geliştirici kendine kolay gelen veya daha önceden kullanmış olduğu fakat yeni projeye uyum sağlaması mümkün olmayan kütüphaneleri kullanmaya devam etmektedir. En iyi ihtimalle sadece günü kurtarmalık çözümler getirmektedirler. Bu problemlerin doğal sonucu olarak binlerce PHP projesi ya yarım kalır ya da çok zor ilerler.

 

Bütün bu problemlerin ortadan kalkması için ortaya atılan MVC (Model-View-Controller) yapısının PHP ‘de kullanılması gerektiğinin anlaşılması üzerine, temeli MVC altyapısına dayanan PHP Frameworkler üretilmiştir. Frameworkler, PHP geliştiricilerinin her defasında farklı kütüphaneler araştırmasını önlemek ve altyapıyla uğraşmak yerine projelerine odaklanmalarnı sağlamak amacıyla ortaya çıkmıştır.

 

Yukarıda da belirttiğim üzere PHP ile başladıktan bir kaç zaman sonra genellikle bir framework ile tanışırız. Bu muhtemelen CodeIgniter, CakePHP, Kohana gibi bir şeyler olur. Biraz daha ilerleyince bunlar bize bir yerde yetmemeye başlar yada sırf meraktan,popüleritesinden, desteğinden, dökümantasyonundan etkilendiğiniz diğer frameworkleri de inceleriz. Bunun için (genelde arkadaş tavsiyesi) ya Zend gibi framework’ler içerisinde çalışmaya başlarız ya da cengaverlikte bulunup Dünyayı Değiştirecek bir “kick ass” framework geliştirme derdine gireriz ki; bu genelde hüsranla sonuçlanır. Fakat hüsranla sonuçlanmayan, başladığı işi başarıyla sonlandırıp ortaya güzel Framework çıkaran insanlarda var. Bu Frameworkler;


  1. Zend Framework
  2. Symfony Framework
  3. Yii Framework
  4. CodeIgniter Framework
  5. Phalcon Framework
  6. CakePHP Framework
  7. Khona Framework
  8. FuelPHP Framework
  9. Slim Framework
  10. Silex Framework
  11. Laravel Framework
  12. Ve diğer Frameworkler…

 

Sayılabilir. Bunların sırasını rastgele yazdım, sıralamanın popülerite yada kullanımla alakası yok. Günümüz de en popüler ve kullanılan framework Laravel dir (Sitepoint e göre). Aşağıda ki resimleri inceleye bilirsiniz. (Resimleri büyükmet için tıklayın)

 

02.PHP Framework Kullanımı (Kişisel İşlerde & Kişisel, Hobi)

 

PHP Framework Kullanımı (Profosyonel İşlerde & İş yerlerinde)

 

 


Aşağıda ise Google Trend e göre Dünya Genelinde son 12 ayda ki durum;

 

Sitepoint ve Google Trend e göre Laravel an itibariyle en popüler framework. Ben çalıştığım iş yerinde Laravel i, kişisel projelerimde ise Symfony i kullanıyorum. Laravel tecrübem, bilgim Symfony den faha fazla, ama şunu açıkça söyleyebilirim ki, Laravel kullandıkça, Symfony e olan bağlılığım, sevgim artıyor. Bu Laravel in kötü olduğu anlamına gelmiyor, sadece kendimi Symfony ile daha rahat hissediyorum, hepsi bu. Yazının bundan sonrasına Symfony ağırlıklı gideceğim. Amacım size Laravel yada diğer frameworkleri kötülemek, Symfony’i ön plana çıkarmak değil. Hangisini isterseniz , kendinizi hangisinde daha rahat, daha özgür hissederseniz onu kullanın. Soru&Cevap şeklinde gidersek;

 

 

01. Neden bir Framework kullanmak zorundayım ?

Zorunluluk değil. Bir ihtiyaç. Eğer küçük, çok küçük bir iş yapıyorsanız, bir frameworke ihtiyacınız olmaz, ama projeniz orta yada büyük çaplı ise, bir framework kullanmak sizin için avantaj sağlayabilir. Laravel, Zend, Yii , Symfony ya da diğerleri, yani tüm frameworklerin genel amacı, sizin daha hızlı ve daha iyi web uygulamaları geliştirmenize katkıda bulunmak.


Daha Hızlı: Hemen hemen tüm frameworklerin birincil amacıdır. Amaç sizi altyapı ile uğraşmaktan kurtarıp size zaman kazandırmak ve sizin altyapı dışında kalan şeylerle ilgilenmenizi sağlamak. Frameworklerin çoğu bir çok şeyi daha hızlı yapabilmeniz için kendi MVC yapısına göre bir çok şeyi temel düzeyde hazır olarak oluştururabilir. Laravel,Symfony de bu özellikler var. Yani dilerseniz bir komut ile hem MVC yi oluşturabilirsiniz(Model dosyası, Controller Dosyası ve View Dosyası vs). Aynı zamanda kendini tekrar eden kodlar yazmamanız için de size seçenekler sunarlar. Daha hızlı kısmını daha fazla açmama gerek yok sanırım.


Daha İyi: için şunu da diyebiliriz, frameworklerin bir diğer amacıda projeniz büyüse bile herşeyi yerli yerinde, düzenli tutmak, projeniz büyüdükçe karmaşaya yol açmamasını sağlamak da sayılabilir. Çünkü hemen hemen her framework ün kendine göre kuralları var. Bu kuralları esnete bilirsiniz yada dikkate almayabilirsiniz, ama bunu önermezler. Bu kurallara uyarsanız, bir gün siz işten ayrılsanız da, ya da yanınıza birini de alsanız, çalıştığınız framework hakkında bilgisi varsa, size destek olabilir yada projeyi yüklenip götürebilir. İşte bu kurallar düzeni ve organizeyi sağlar.


Sorumuza gelirsek, bir framework kullanmak zorunda değilsiniz, yaptığınız ya da yapacağınız iş küçük ise, bir framework faydadan çok zahmete dönüşebilir ama orta yada büyük bir projeniz var ise, kesinlikle bir framework kullanmalısınız. Symfony bu konuda biz web uygulamaları geliştirenler özetle 3 cümle söylüyor;

  • – Bir framework kullanmak ZORUNDA değilsiniz ama kullanmanız sizin için FAYDALI olur.
  • – Bir framework Düşük maliyetli olmalı, Yükseltilebilir olmalı, Uygulama sürdürülebilirliği ve Bakım kolaylığı yüksek olmalı.
  • – Bir Framework kullanılarak geliştirilen uygulamalar Pazar(Endüstri) standartlarına uygun olmalı ve birlikte çalışabilmeli.

 



 

 

02. Ne zaman bir Framework kullanmalıyım ?

Ne zaman ihtiyacınız olduğunu düşünüyorsanız, o zaman 🙂


03. Neden Symfony Kullanmalıyım ?

Bir çok neden sayabilirim ama çok uzatmadan bir kaç madde saysam daha az sıkıcı olur sanırım.


– Popülerite-Şöhret-İtibar : 
Symfony, 2005 yılından beri geliştirilen açık kaynaklı PHP MVC web uygulama frameworküdür. Symfony nin devam eden geliştirilmesine ve zenginleştirilmesine katılan geliştiriciler, entegratörleri, kullanıcılar ve diğer katılımcılar dan oluşan aktif bir topluluktur. Uluslararası profosyoneller tarafından kabul gören, hızlı, istikrarlı, arkasında kurumsal bir firma ve binlerce evet, binlerce geliştiricisi olan bir frameworktür. Referansları da sağlamdır. İşte Symfony kullanan bir kaç proje;  Drupal, phpBB, Laravel, eZ Publish Community, Joomla!, Composer, Magento, Piwik, Behat, Silex, Zikula, Sami, Sismo, PHPUnit, Codeception, phpspec, Guzzle


Gördüğünüz üzere Symfony nin referansları çok sağlam. Daha fazlasını görmek istiyorsanız, Resmi Sitesinden bakabilirsiniz.


– İstikrar&Süreklilik :
Arkasında 18 yıllık bir firma(SensioLabs) vardır. SensioLabs kendi referansları arasında birçok önemli hesabı olan bir web ajansıdır. Kendi ihtiyaçları için tasarladığı Symfony frameworkünü hala projeleri geliştirmek için kullanıyor. Tek farkla, Symfony o kadar ünlü oldu ki, artık arkasında hem bir firma hem de binlerce profosyonel geliştirici vardır. Symfony etrafında büyümüş bütün bir ekosistem vardır. Ayrıca artık SensioLabs ın bir Web Ajansı olmasından mıdır bilinmez ama Symfony pragmatik bir frameworktür, gerçek dünyanın ihtiyaçlarına göre şekil almıştır. Bizim okullarımızda gördüğümüz Teorik ile Pratik farklıdır durumu yoktur.


– Referanslar:
Symfony kullanan büyük genel kamu siteleri, sosyal ağlar, topluluk siteleri, yönetim ve iş akışı uygulamaları çokdur. Yahoo!, Dailymotion, Opensky.com, Exercise.com ve phpBB – Drupal bunlara örnek verilebilir. Anlicağınız referansı say say bitmez 🙂