PHP FRAMEWORKLERİN KARŞILAŞTIRILMASI ve LARAVEL FRAMEWORKÜN İNCELENMESİ Hakan KÖR1, Hasan ERBAY2 1Hitit Üniversitesi, Uzaktan Eğitim Merkezi, Çorum 2Kırıkkale Üniversitesi, Bilgisayar Mühendisliği Bölümü, Kırıkkale hakankor@hitit.edu.tr, hxe68@yahoo.com
İçerik Giriş 1 Framework Tanımı ve Yapısı? 2 PHP Frameworkler ve Kıyaslanması 3 Laravel Framework Yapısı 4 5 Sonuç ve Öneriler
1-Giriş PHP web programlama dili, sunucu taraflı çalışan, açık kaynak kodlu ve geniş kullanıcı kitlesine sahip bir dildir. 2013 Ocak ayı verilerine göre PHP tabanlı 2.1 milyon web sunucu üzerine 240 milyon web sitesi yüklenildi [1]. PHP diliyle kodlama yapan kullanıcılar kendilerine özgü kütüphaneler tercih etmektedirler. Kullanılan kütüphanelerde uyumluluk, güvenlik problemleri ve güncelleme gerekliliği gibi sorunlar oluşmaktadır. Sıralanan bu problemlerin çözümü için PHP frameworkler kullanılmaktadır.
2-Framework Tanımı ve Yapısı? Framework, yazılımın iskeletini oluşturan, fonksiyon ve sınıflardan oluşan geniş çaplı bir kütüphaneye sahip uygulama çatısıdır. Framework proje sürecini hızlandırır, düzenli ve temiz kod yazımını kolaylaştırır ve yazılıma belli bir standart kazandırır. Diğer bir ifadeyle, frameworkler sahip olduğu alt yapı, sınıf ve eklentiler sayesinde proje üreticilerine daha hızlı, güvenli ve esnek bir kodlama ortama sunmaktadır. Piyasada bulunan çoğu framework kendi içinde MVC tasarım desenini barındırır. Ancak bu MVC ile FRAMEWORK'ün ayrılmaz 2 terim olduğu anlamına gelmiyor. Framework kullanmadan da MVC kullanılabilir.
2-Framework ve MVC Yapısı MVC'nin açılımı Model-View-Controller'dır. Model veritabanı işlemlerinin yapıldığı bölüm, View web sitesinin tasarım arayüzünün bulunduğu bölüm, Controller ise model dosyalarından aldığınız bilgileri işleyip, düzenleyerek gerekli PHP kodlarının yazılarak View bölümüne yani tasarım arayüzüne yönlendirildiği bölümdür[5]. MVC yapısını bir örnekle açıklamak gerekirse; MVC’yi araba olarak düşünelim, model arabanın motor kısmını, view arabanın dış yüzeyi (kaporta) kısmını, son olarak controller ise arabanın hareketini, durmasını ve yönlendirilmesini sağlayan gaz-fren pedalları ve direksiyona benzetilebilir[9].
MVC Nedir? Adını Model View Controller'in baş harflerinden alan tasarım desenidir. Sunduğu katmanlı mimari sayesinde, uygulamanın kullanıcı arayüzü ve mantık kısmını birbirinden ayırır.
MVC Nedir? Model : İş mantığı (Business Logic) bölümüdür. Tek katmandan oluşabileceği gibi, birden fazla katmanda da oluşabilir. Controller'den gelen değerleri işler ve geriye döndürür. Model katmanında herhangi bir output işlemi yapılmaz. View : Uygulamanın kullanıcıya gösterilen arayüzünün bulunduğu katmandır. Html, Css, Javascript vb. bu katmanda bulunur. Controller : Uygulamanın karar mekanizmasıdır. Model ile View arasında köprü görevi görür.
Framework Avantajları •Bir çok yazılımcı tarafından test edilerek güvenlik ve performans optimizasyonlarının yapılmış olması •Proje süreçlerini kolaylaştırması ve hızlandırması •Düzenli ve Temiz kod yazımını kolaylaştırması •Ekip halinde proje geliştirirken karışıklığı önlemesi ve görev paylaşımını kolaylaştırması •Barındırdıkları database adaptörleri sayesinde farklı veritabanı türlerine kolay bir şekilde Entegre Edilebilmesi •İş görüşmelerinde avantaj sağlaması (Php Developer iş ilanlarını incelediğinizde "... Framework'üne hakim" , "En az 1 framework tecrübesi olan" vb. şartları sıkça görür olduk.)
Framework Dezavantajları Eski versiyonlarla uyumsuzluk, Framework yapılarının, kullanıcı tarafından anlaşılmasındaki zorluklar, Bazı frameworklerde belli bir template sistemi barındırmaması Belli bir sistem gereksiniminin olması sıralanabilir.
3-PHP Frameworkler ve Kıyaslanması Framework seçimi PHP geliştiricilerin kararı olsa da, tercih edilecek frameworkün yaygın doküman potansiyelinin olması ve diğer yazılımcılar tarafından çok tercih edilmesi framework seçiminde etkili olmaktadır. PHP web programcılarının kullandığı çok sayıda PHP framework olmasına karşın kullanıcı sayısı ve diğer frameworkleri geride bırakan yapılarından dolayı Zend, CodeIgniter, Symfony2, Phalcon, Yii, CakePHP ve Laravel çok tercih edilen frameworklerdir.
3-PHP Frameworklerin Karşılaştırılması
3-PHP Frameworklerin Karşılaştırılması
3-PHP Frameworklerin Karşılaştırılması
3-PHP Frameworklerin Karşılaştırılması According to the results, the most promising frameworks for 2014 seem to be: 1-Laravel 2-Phalcon 3-Symfony2 Yii and CodeIgniter seem to be sharing 4th place.
4-Laravel Framework ve Yapısı 2011 yılında Taylor Otwell tarafından geliştirilmeye başlanılan Laravel framework diğerlerine göre yeni olmasına rağmen çok hızlı bir gelişme göstermektedir. Bunun nedeni Laravelin çok esnek ve hafif bir framework olmasıdır. Ayrıca sade ve basit yapısıyla takım çalışmaları için ideal bir framework’ tür. Laravelin kendine ait ORM ve Template motoru özelliği dikkat çekmektedir. Kurulumu; Laravel Installer, Composer veya githubtan dosyalar indirilerek yapılmaktadır.
4-Laravel Framework ve Yapısı Laravel Dosya Yapısı
4-Laravel Framework ve Yapısı app: Projelerle ilgili çoğu işlemlerin yapıldığı klasördür. public: proje yayının yapıldığı klasördür. Kullanıların tarayıcıyla erişebildiği aladır. bootstrap: laravel başlangıç class ları ve başlangıç için gerekli bazı dosyaların bulunduğu klasör. vendor: laravel kütüphanelerinin yer aldığı klasör. Laravel Dosya Yapısı
4-Laravel Framework MVC Yapısı Laravel MVC Yapısı : Veritabanı, tasarım ve kodlama işlemlerini ayıran bir yapıya sahiptir.
4-Laravel Framework Yapısı Eloquent: Laravel ORM aracıdır. Blade: Laravel template motoru. Routes.php: Yönlendirme dosyası. Refactoring kavramı Kullanıcı Yetkilendirme
4-Laravel Framework Avantajları -Laravel yüksek trafikte gerektiren işlemlerde olsa performanslıdır. -Laravel, gelişmiş ORM desteği ile birçok sorgudan veritabanına yük getiren işlemler için kolaylık sağlar. -Class Auto Loading özelliği ile tanımlanan tüm sınıfları Laravel sizin için çağıracaktır. -.kararlı bir yapıya sahiptir -Türkçe kaynak açısından da zengin bir içeriğe sahiptir.
5-Sonuç PHP web programlama dilinde farklı yönleriyle birbirlerine üstünlük sağlayan frameworkler bulunmaktadır. Son zamanlarda zengin doküman desteği, mühendislik alt yapısı, MVC yapısı, blade (şablon) oluşturma gibi seçenekleriyle laravel framework tercih edilen, hızlı frameworkle arasında ilk sıralara ulaşmış durumdadır. Framework tercihlerinde insanlar uzun süre kullandığı ve iyi öğrendiği yapıyı değiştirmek istemediğinden dolayı her kullanıcı kendi kullandığı frameworkten kolay kolay vazgeçmemektedir.
Kaynaklar [1] http://news.netcraft.com/archives/2013/ 01/31/ php-just-grows-grows.html, Erişim tarihi: 15 Ocak 2015. [2] http://1mm.com.tr/blog/phpcilerin-can-simidi-frameworkler-uzerine, Erişim tarihi: 16 Ocak 2015. [4] http://www.webteders.com/blog/detay/ Framework-Nedir./12, Erişim tarihi: 16 Ocak 2015. [5] http://www.elifweb.com/makaleler/php-framework-nedir-framework-un-faydalari-nelerdir, 20 Ocak 2015. [6] http://www.sitepoint.com/best-php-frameworks- 2014/, Erişim tarihi: 15 Ocak 2015. [7] http://www.ibm.com/developerworks/ library/os-php-fwk1/index.html, Erişim tarihi: 20 Ocak 2015. [8] http://www.gokceyalcin.com/framework _start, Erişim tarihi: 20 Ocak 2015. [9] http://www.phpuzem.com : Erişim tarihi: 22 Ocak 2015