TANITIM

“Love beautiful code? We do too.”(İyi koda aşık mısın? Biz de öyleyiz.) sözü ile yola çıkan Taylor Otwell, Symfony adlı Php Framework’ünü temel alarak Laravel’i ortaya çıkardı. Laravel 2014 ve 2015 yıllarında Sitepoint tarafından yapılan en popüler framework anketlerinde iki yıl üst üste en popüler Php Framework’ü ünvanını aldı.

Laravel 4. sürümünden itibaren Composer adlı bağımlılık yöneticisini tercih etmiştir. 4. sürüm ile birlikte Doctrine, Monolog gibi paketler ile birlikte web çatısının oluşturulmasında Symfony’nin paketlerinden yararlanmaktadır. 5. sürümü ile birlikte dizin yapısındaki ciddi değişiklik göze çarpmakta olup PSR-4 standartlarına göre uyarlanmıştır. Laravel’i özetlemek için kullanılan ve sitesinde de yer bulan “WEB SANATÇILARININ PHP FRAMEWORK’Ü” adlı unvan göze çarpmaktadır.

Laravel’in dikkat çekici noktaları şöyle listelenebilir:

  • Laravel Composer adlı en yaygın kullanılan bağımlılık yöneticisini kullanmaya başladığında hem frameworkten bağımsız hem de kendisi için yazılmış olan paketlere uyumlu hale geldi bu da onun gelişimi ve kullanımındaki hızlı ve geniş çapta artışın sebepleri arasında gösterilebilir.

  • Eloquent ORM kullanışlı ve esnek bir ActiveRecord mimari deseni uygulaması olup, veritabanındaki her bir tabloya karşılık gelecek Model adlı sınıf bulunur. Bu sınıftan oluşturulan nesneler ile akıcı arabirim (fluent interface) kullanılarak sorgular kolaylıkla oluşturulabilir.

    class Mesaj extends Eloquent {}
    $mesaj = Mesaj::find(1);

Görüldüğü gibi çok basit kullanıma ve tanımlamaya sahiptir.

Çok güçlü olan Blade bu şablon dilidir ve MVC mimari deseninin View (V) kısmına çözüm sağlar. Kullanılması mecburi değildir ancak çok yaygın şekilde kullanılmaktadır. Komutları @ işareti ile başlar section adı verilen yapılar kullanılarak template üzerinde bölge seçimi yapılabilmekte ve bölgeler gerektiğinde birbirleri ile birleştirilebilmekte ya da sonuna eklenebilmektedir. Blade aynı zamanda templateler üzerinden kalıtım almayı destekler. Yapısı pek çok template motorundan farklıdır. XSRF güvenlik açığı için hazır çözümler bulundurmaktadır ve kolayca uygulanabilmektedir. Kendi form oluşturma kodu kullanılarak csrf jetonu(token) çaba göstermeden forma enjekte edilebilmektedir. Migration(Göç) ve data seeder veritabanı şeması oluşturulması ve içinin test amaçlı doldurulması konusunda geliştiriciye büyük kolaylık sağlar. Ağır girdi-çıktı(I/O) ve uzun süreli işler için geliştirilen queue kütüphanesine sahiptir. Komut satırı üstünden çalıştırılması gereken komutlar veya arka planda çalıştırılması gereken uygulamalar için de destek sunmaktadır. Çoklu dil desteğine sahiptir. SwiftMailer adlı popüler e-posta gönderme kütüphanesine sahiptir.

KURULUM

Eğer Laravel’i kurmak istersek 2 yönteme başvurabiliriz. Sitesinde belirtilen yöntemlerden ilki Laravel Installer ile kurulumdur. Öncelikle Composer adlı bağımlılık yöneticisine sahip olmamız gerekir. Eğer sahipsek:

composer global require "laravel/installer"

komutunu girerek Laravel Installer’ın kurumunu gerçekleştirip hemen ardından,

laravel new proje-adi

komutu ile yeni projemizi oluşturabiliriz. Proje klasörü bulunduğunuz dizinde oluşturulacaktır. İkinci en yaygın yöntem de Composer proje oluşturucu ile kurulumu gerçekleştirmektir.

composer create-project --prefer-dist laravel/laravel proje-adi

şeklindeki komutu çalıştırarak kurulumu ve proje oluşturulmasını yapmış oluruz. --prefer-dist seçeneği Composer’a o anki en güncel olan stabil sürümü getirmesini söylemektedir. Eğer daha önce Laravel paketlerine sahipseniz önbellekten kurulumu hızlandırmak için destek alır güncellenmesi gereken dosyaları günceller. Eğer değilseniz kurulum biraz daha uzun sürebilmektedir. Kurulum sonlandığında bir aksilik çıkmadığı takdirde Application Key adlı bir anahtar oluşturulur bu yapacağınız sistemin güvenliği için çok gerekli bir anahtardır ve oluşturulmadığına,

php artisan key:generate

adlı komutu proje klasörünün içinde vererek bu anahtarın oluşturulmasını sağlayabilirsiniz. Anahtarınız yoksa sisteminizin güvenliğinde büyük bir açık var demektir.

Kaynakça: