İçeriğe atla

Laravel

Vikipedi, özgür ansiklopedi
Laravel
Orijinal yazar(lar)Taylor Otwell
Geliştirici(ler)The Laravel Team
İlk yayınlanmaHaziran 2011 (13 yıl önce) (2011-06)
Güncel sürüm10.x / 14 Şubat 2023 (20 ay önce) (2023-02-14)
Programlama diliPHP
İşletim sistemiCross-platform
TürWeb Uygulama İskeleti
LisansMIT Lisansı
Resmî sitesihttp://www.laravel.com
Kod deposu Bunu Vikiveri'de düzenleyin

Laravel,[1] MVC yapısında web uygulamaları geliştirme için tasarlanmış ücretsiz, açık kaynak PHP web uygulama iskeletidir. Laravel, GitHub sitesinde barındırılan kaynak kodu ile birlikte, MIT lisansı altında yayınlandı.

Taylor Otwell, Laravel'i kullanıcı kimlik doğrulaması (authentication) ve yetkilendirme (authorization) için yerleşik destek gibi belirli özellikleri sağlamayan CodeIgniter framework'üne daha gelişmiş bir alternatif sağlama girişimi olarak geliştirdi. Laravel'in ilk beta sürümü 9 Haziran 2011'de kullanıma sunuldu, ardından aynı ay içinde Laravel 1 sürümü yayınlandı.

2014 ve 2015 yıllarında Sitepoint 30 Mayıs 2014 tarihinde Wayback Machine sitesinde arşivlendi. tarafından yapılan en popüler PHP uygulama iskeletleri anketlerinde Laravel iki sene üst üste en üst sırada yer aldı.[2][3] Nisan 2015 tarihindeki verilere göre Laravel github'da barındırılan PHP projeleri arasında en çok takip edilen ve en popüler projedir.[4]

Laravel, versiyon 4'ten itibaren bağımlılık yönetimi (dependency management) için composer paket yöneticisini tercih etmiştir.[5] Yine versiyon 4'ten itibaren Doctrine, Monolog gibi paketlerin yanı sıra web iskeletini oluşturan komponentler için Symfony2 paketlerinden yararlanmaktadır.[6]

Versiyon 5 ile birlikte dizin yapısında önemli bir değişikliğe gidilmiş ve PSR-4 standartlarına daha uyumlu bir yapı haline getirilmiştir.[7]

Versiyon 7 3 Mart 2020'de yayınlanmıştır. Laravel 7 ile birlikte yeni bir özellik olan Laravel Airlock ekosisteme eklenmiş ve rota hızı (routing speed) geliştirmeleri ile özel Eloquent ORM sınıflarını içeren birçok yenilik kullanıcılara sunulmuştur.[8]

Laravel 8, 8 Eylül 2020'de Laravel Jetstream, model factory sınıfları, migration squashing, pagination tasarımı için Tailwind CSS ve diğer kullanılabilirlik iyileştirmeleri gibi yeni özelliklerle piyasaya sürüldü.[9]

En son Laravel sürümü, 8 Şubat 2022'de piyasaya sürülen Laravel 9'dur. Route için controller metodu, anonymous migration, yeni str fonksiyonları gibi birçok yeniliklerle birlikte yayınlanmıştır.[9]

Laravel' in en önemli tasarım noktaları aşağıda listelenmiştir:

  • Composer sayesinde hem iskelet bağımsız hem de laravel'e özgü yazılmış paketlerin kullanımına imkân verir.
  • Eloquent ORM kullanımı basit ve kullanışlı bir ActiveRecord mimari deseni uygulamasıdır. Veritabanındaki her bir tabloya karşılık gelen bir model sınıfı bulunur. Bu sınıf kullanılarak oluşturulan nesneler ile akıcı arabirim (fluent interface) kullanılarak sorgular oluşturulabilir.
  • Yüksek kabiliyetli rota (route) tanımları ile bağlantılar programatik olarak oluşturulur. Rotalara isim vermek ya da rotaya cevap veren controller ve action tanımları ile programatik olarak URL oluşturmak mümkündür. Böylece SEO ya da diğer ihtiyaçlar nedeniyle gereken URL değişikliklerinin projenin genelinde kullanılan linklerde otomatik olarak görülmesini mümkün kılar.
  • Güçlü blade şablon dili ile MVC mimari deseninin View (V) kısmına çözüm sağlanır. View için blade kullanmak mecburi değildir, öntanımlı olarak PHP dilinin kendisi de bir şablon dili olarak tercih edilebilir.
  • İçerisinde kimlik doğrulama (authentication) ile ilgili hazır yapı bulunmaktadır. Yapı aktif hale getirildiği zaman yetkilendirmenin yanı sıra e-posta onaylama, "şifremi unuttum" özelliği gibi ihtiyaçlar için başlangıç dosyaları otomatik oluşturulur.
  • XSRF güvenlik açığı için hazır çözümü bulunmaktadır.
  • Migration ve data seeder özellikleri ile veritabanı şeması versiyonlaması ve otomatik veri girişi imkânı sağlamaktadır.
  • Yüksek I/O gerektiren ya da uzun süren işler için queue kütüphanesine sahiptir.
  • Arka planda ya da komut satırı üzerinden çalışması gereken programlar için altyapı sağlamaktadır.
  • Çoklu dil desteği bulunmaktadır.
  • Popüler SwiftMailer kütüphanesi üzerine kurulu e-posta gönderim kütüphanesi mevcuttur.
  • Birim testleri (unit testing) ve fonksiyonel testler (functional testing) için gerekli altyapı iskelete entegre edilmiş durumdadır.
  • Otomatik sayfalama desteği ile dizi ya da veritabanı sonuçları kolayca sayfalandırılabilir.

Örnek Laravel kodu

[değiştir | kaynağı değiştir]
<?php

use Illuminate\Support\Facades\{Route, Mail};
use App\Models\User;

Route::get("/users/{user}", function(User $user) {
    return $user;
});

Route::post("/users", function(App\Http\Requests\CreateUserRequest $request) {
   $user = User::create($request->validated());
   
   Mail::to($user->email)->send(new App\Mail\WelcomeMessage);
   
   return $user;
});
  1. ^ "Arşivlenmiş kopya". 25 Nisan 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Mayıs 2014. 
  2. ^ "Arşivlenmiş kopya". 6 Haziran 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 30 Mayıs 2014. 
  3. ^ "Arşivlenmiş kopya". 2 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Nisan 2015. 
  4. ^ Github PHP Dili için en popüler projeler 15 Aralık 2019 tarihinde Wayback Machine sitesinde arşivlendi. - En son Nisan 2015'te kontrol edilmiştir.
  5. ^ "Laravel 4 Changelog - Changes from Laravel 3". 2 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Nisan 2015. 
  6. ^ "Laravel 4 Wiki". 8 Eylül 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Nisan 2015. 
  7. ^ "Larave 5 Changelog". 2 Nisan 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Nisan 2015. 
  8. ^ "Arşivlenmiş kopya". 10 Mart 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Mart 2020. 
  9. ^ a b "Laravel - The PHP Framework For Web Artisans". laravel.com (İngilizce). 7 Şubat 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Mart 2022. 

Dış bağlantılar

[değiştir | kaynağı değiştir]