Bilgisayar programlamada yazılım iskeleti, yazılım çerçevesi ya da yazılım çatısı olarak adlandırılmaktadır.
Dünyadaki en popüler sunucu tarafı betik dili olarak bilinen PHP, statik HTML dosyalarında ilk satır içi kod snippet’leri göründüğünden çok gelişti.
Geliştiricilerin bu günlerde karmaşık web siteleri ve web uygulamaları oluşturmaları gerekiyor. Belirli bir karmaşıklık seviyesinin üstünde her zaman sıfırdan başlamak çok zaman alıyor ve bu nedenle daha yapılandırılmış doğal bir gelişim yoluna ihtiyaç doğuyor. Php frameworkleri geliştiricilere için yeterli bir çözüm sunar.
Bu yazıda, arka taraf(back-end) web geliştirme sürecini en iyi şekilde kolaylaştıran ve düzene sokabilen 6 popüler Php framework’ünü ele alacağız.
1. Laravel
Laravel en küçük uygulamadan oldukça geniş projelere kadar yazılım yapabileceğiniz MVC yapısına sahip açık kaynak kodlu PHP frameworküdür. 2015 ve 2016 yıllarında sitepoint tarafından yapılan en popüler framework anketinde üst üste iki sene liderliği sürdürdü. Github üzerinde en çok takip edilen PHP projesidir. Web sanatçılarının PHP frameworkü sloganını hakkını sonuna kadar vermektedir.
Laravel yapısı oldukça basit ve kolaydır. Kısa bir süre içinde öğrenilerek projelerinizi geliştirebilirsiniz. Bağımlılık yöneticisi olarak composer kullanması sebebiyle çakışma olmadan gerekli bileşenleri projenize ekleyebilirsiniz. İçinde hazır bulunan auth mekanizması ile kullanıcı sistemi olan hatta çoklu giriş (müşteri , firma , admin) gibi yapılara kadar destek vermektedir.
-Eloquent yapısı ORM sistemi üzerine kurulmuş Aktif Kayıt mekanizmasıyla çalışan güzel bir veritabanı sistemidir. Örneğin Mysql ile başladığınız sistemi ileride kolayca PostgreSQL, Oracle, SQLite veya MSSql sistemine çevirebilirsiniz.
-Route yapısı oldukça gelişmiş olan url yönetim sistenmi laravelde kullanılmaktadır. Hangi url hangi methoda gidecek hangi yöntemle gidecek veya hangi middleware ile çalışacak burada tanımlanmaktadır.
-View yapısı olarak Laravelde blade engine tercih edilmiştir. Frameworklerde MVC yapısı ile kod geliştirdiğiniz zaman Controller kısmında işlediğiniz veriyi View kısmına göndererek kullanabilirsiniz. Bu yapı sayesinde hem cache sistemi projenizi hızlandırırken neyin nerede olduğunu bilirsiniz.
-Migrate sistemi veritabanı için tablo oluşturup güncellediğiniz geri aldığınız en temel anlamda versiyonlama gibi çalıştırabileceğiniz sistemdir.
-Unit Test Her ne kadar yazılımcıların üşendiği bir konu olsada çoklu geliştirilen ve çok çalışanın geliştirdiği projelerde kullanılması gereken bir yapıdır.
-Pagination, Eloquent yapısıyla beraber oldukça kolay bir biçimde sayfalama yapabiliyoruz. Düzenlenebilen yapısı standart olarak bootsrapa uygun şekilde gelmektedir.
-Mail ve Broadcasting içinde buludnurduğu SwitfMailer ile her sistem üzerinde kolaylıkla mail atabilir veya mailgun gibi sistemlerin paketleri ile api ile mail atabilirsiniz.
2. Symfony
Kendi sitesinde tanımlandığı gibi, Symfony, bir PHP bileşenleri seti, bir Web Uygulama çerçevesi, bir Felsefe ve bir Topluluk' tan oluşan ve hep birlikte bir uyum içinde çalışan bir sistem olarak tanımlanabilir. Symfony Bileşenleri, form oluşturma, nesne yapılandırma, yönlendirme, kimlik doğrulama, şablon oluşturma ve daha birçok diğerleri gibi farklı görevleri tamamlayabileceğiniz yeniden kullanılabilir Php kütüphaneleridir. Bileşenlerden herhangi birini Composer PHP dependency manager ile yükleyebilirsiniz.
Geniş bir geliştirici kitlesi olduğu için sürekli güncellenir, güvenlik ve stabilite konusunda yükü sizden alır. Bir çok popüler saldırı türlerine karşı (CSRF, XSS, SQL Injection vs.) güvenli geliştirme ortamı sağlar.
Çok sayıda hazır kütüphanesi (bundle) bulunduğu için günlerinizi harcayacağınız modülleri bir kaç konsol komutu ile projenize dahil edip, her türlü özelleştirebilirsiniz.
Bu Framework' te dikkati en çok üzerine çeken konu kurulumu ve herhangi bir kütüphane ekleme işleminde konsol kullanımı ile yapılmasıdır. Terminal (console) komutları ile manuel yaptığınız bir çok şeyi otomatize edersiniz. Örneğin: Bir ürünler tablonuz var. Admin panelinde buna ekle, çıkar, düzenle, listele gibi ekranlar yapmanız belki yarım gününüzü alır. Symfony’de ise yalnızca bir satır kod ve bir kaç sn üretim (generate) süresi.
Ayrıca Assetic özelliği saysinde “assets” dediğimiz CSS, JavaScript ve resimlerinizi (image) çok daha kolay ve düzenli bir şekilde organize edersiniz.
3. CodeIgniter
Codeigniter, MVC yapısını kullanan bir framework' tür. CodeIgniter, çok az kurulum gerektiren çok basit bir kurulum sürecine sahip olmasından dolayı yükleme olarak zorluk çıkartmaz. Yazmış olduğunuz uygulamaların değişik Php versiyon ve konfigürasyonlarına sahip sunucular üzerinde çalışma uyumluluğu olacaktır. Codeigniter projesi ilk çıktığında Ellislab şirketi tarafından ortaya çıkarılsa da 6 Kasım 2014 tarihinden beri British Columbia Teknoloji Ensitütüsü yönetimi altında geliştirilmeye devam etmektedir.
-Codeigniter, yapılacak bir işlem için gereken kod miktarını en aza indirerek projeye yaratıcı bir sekilde odaklanılmasını sağlar.
-Codeigniter hafif (çok fazla kaynak tüketmeyen) bir frameworktür. Core sistem sadece birkaç küçük kütüphane gerektirir(Daha fazla kaynak tüketen diğer frameworklerin aksine). Codeigniter belirli bir işlem için geliştiricinin ihtiyaçlarını temel alır ve istek üzerine kütüphaneler dinamik olarak yüklenir, bu nedenle temel sistem oldukça yalın ve oldukça hızlıdır.
-Codeigniter yaygın olarak ihtiyaç duyulan görevler için zengin bir kütüphane sunmanın yanı sıra bu kütüphanelere erişmek için basit bir arayüz ve mantıktsal yapı sağlayarak, hızlı projeler geliştirilmesini sağlar.
-Bünyesinde bulunan helper' lar, library'ler ve güvenlik önlemleri sayesinde geliştiricinin işini oldukça kolaylaştırır.
Ayrıca Codeigniter SEO dostu URL’ ler üretir.
4. Yii 2
Yii framework’ü seçerseniz, diğer Php çerçevelerinden daha hızlı olduğu için sitenizin performansını artırırsınız, çünkü tembel yükleme tekniğini yoğun şekilde kullanır. Yii 2, tamamen nesneye yöneliktir ve DRY (Tekrarlama Etmeyin) kodlama konseptini temel alır, bu nedenle size oldukça temiz ve mantıklı bir kod tabanı sunar.
Yii 2, jQuery ile entegredir ve bir dizi AJAX-enabled özelliklerle birlikte gelir. Kullanımı kolay bir arayüz ve tema mekanizması uygular. Ayrıca, nesne yönelimli programlama ve hızlı prototiplemeyi kolaylaştıran ve ihtiyaç duyduğunuz kodu interaktif olarak üretmenizi sağlayan web tabanlı bir arabirim sağlayan Gii adında güçlü bir sınıf kod üreteci vardır.
5. Phalcon
Phalcon framework’ü 2012’de piyasaya çıktı ve Php geliştiricileri arasında hızla popülerlik kazandı. Phalcon’un bir şahin benzetmesi yapılar hızlı olduğu söyleniyor, çünkü mümkün olan en üst düzeyde performans optimizasyonuna erişmek için C ve C++ ile yazılmıştır.
Phalcon bir C-extension olarak geliştirildi ve düşük seviye bir mimari olarak optimize edildi. Bu da MVC tabanlı uygulamalardaki yükü önemli ölçüde azalttı. Phalcon yalnızca çalıştırma hızlarını artırmakla kalmaz, aynı zamanda kaynak kullanımını da azaltır. Phalcon, aynı zamanda varlık yönetimi, güvenlik, çeviri, önbellekleme ve diğerleri gibi birçok harika özelliklerle doludur.
PHP için bir C dili ORM kullanarak maksimum performans ile veri tabanları ile etkileşim gerçekleştirir. Phalcon optimize için doğrudan PHP yapısına erişir.
6. CakePHP
CakePHP her zaman zamana ayak uydurmayı başaran popüler bir Php framework' üdür.. En son sürüm olan CakePHP 3.0, oturum yönetimini geliştirmiş, birçok bileşeni ayırarak gelişmiş modülerlik ve daha bağımsız kütüphaneler oluşturma yeteneğini artırmıştır.
Giriş doğrulama, SQL enjeksiyon önleme, XSS önleme, CSRF koruması ve diğer pek çok yerleşik güvenlik özellikleri olduğundan, üst düzey güvenlik gerektiren web uygulamaları oluşturmak için mükemmel bir araçtır.
- PHP4 ve PHP5’le uyumlu
- Birikimler veritabanı için CRUD’i bütünleştirdi, ve sorgulamayı basitleştirdi
- Hızlı, esnek şablon
- AJAX, Javascript, HTML Formları ve daha fazlasın hakkında yardımlar
- Herhangi bir şekilde websitenin altdizinine yerleştirilir,ve Apache’de hiçbir değişiklik yapmaz.
- Birleşik geçerli kılma
- Uygulama yapı malzemesi
- Giriş Kontrol Listesi
- Veri, Sanitization’u
- Güvenlik, Session, Request komponentleri
- Esnek görüş saklaması