Laravel nedir? Ne işe yarar?

Laravel nedir? Ne işe yarar?

Bu yazımda sizlere Laravel'den bahsedeceğim. Umarım faydalı olur.

Laravel, MVC yapısı ile çok basit, öğrenmesi kolay bir PHP framework'üdür. Projelerinizi Lara'da hızlıca öğrenebilir ve yazabilirsiniz. 2015 ve 2016'da, sitepoint tarafından yürütülen en popüler framework anketi tutarlı bir şekilde sıralandı. Github'da en çok takip edilen PHP framework'üdür.

Laravel paket yöneticisinde, composer tarafından kullanılan paketleri ekleyebilir ve kullanabilirsiniz.

Laravel ile birlikte gelen kimlik doğrulama sistemi size kutudan çıktığı gibi bir kullanıcı oturum açma ve kayıt sistemi sağlar.

OOP'yi Laravel'in kendisinde yapmak için bir şekilde geri dönüp projeye sıfırdan devam edebilirsiniz.


Laravel ile birlikte gelen Eloquent Structure ORM sistemi, bir view veritabanını yönetmek için verimli, çok basit ve güzel bir yapı sistemidir. Her veri çekirdeği, Model sınıfını kullanarak bir veritabanı ile iletişim kurabilir. Buda, SQL kodlarını daha kolay bir şekilde yazmamıza ve birden fazla veritabanı ile çalışmamıza olanak tanır. Yeni, projenizi MySQL verileri üzerine inşa etmiş olsanız ve bir veritabanını daha sonra SQLite'a geçirmek isteseniz bile, SQL sorgularınızın hiçbirini değiştirmeden bunu yapmanızı sağlar. Bu çok avantajlı bir özelliktir.

Basit bir MySQL sorgusu

 

SELECT * FROM news WHERE id = `1`

 

Eloquent ile yazılmış SQL sorgusu

 

News::find(1)

Yukarıdaki her iki sorguda da 1 numaralı id ile verileri haber tablosundan çektik. Eloquent'te bir sorgu yazmanın ne kadar basit olduğunu ve SQLite'ta çalışacağını görebilirsiniz.

 

Route
Laravel çok gelişmiş bir url yönetim sistemi kullanır. Route sınıfını kullanarak projelerinize gelen tüm url isteklerini yönetebilirsiniz. Bu sınıf ile hangi yöntemlerin (GET, POST, DELETE, UPDATE) url isteklerine (istek) gideceğini, hangi ara katman yazılımının kullanılacağını kontrol edebilirsiniz. GET yöntemini kullanarak bir istek aldığınız bir url'ye POST yöntemini kullanarak bir istek gönderemezsiniz.

 

Blade Engine

Laravel'in en iyi özelliklerinden biri Blade Engine'dir. Çoğumuzun bildiği gibi PHP kodlarını html dosyalarının içine yazıyoruz ve bu kodlar büyük olduğunda onları yönetmek zorlaşıyor. Blade Engine'in yardımımıza geldiği yer burasıdır. Örnek olarak aşağıdaki kodu inceleyelim.

// PHP
<?php for($i = 0; $i < 10; $i++): ?>
    <span><?php echo $i ?>/span>
<?php endfor; ?>
// Blade Engine
@for($i = 0; $i < 10; $i++)
    <span>{{ $i }}</span>
@endfor

Yukarıda da görebileceğiniz gibi, basit PHP kodundan Blade Engine koduna kadar çok basit ve okunabilir bir kod bloğudur.

 

Migrations

Migration sistemi, veritabanı için tabloların yapısını oluşturduğunuz, istediğiniz zaman değiştirdiğiniz ve tabloları kolayca yönetebileceğiniz bir sistemdir. Migration ile oluşturduğunuz tablolar, MySQL veritabanınız silinse bile tabloları yeni olarak kolayca geri yüklemenize olanak tanır. Aynı zamanda migrasyon ile oluşturduğunuz tablolara Seeder kullanarak fake data ekleyebilir ve sisteminizin nasıl çalışacağını kontrol edebilirsiniz.

 

Sayfalama
Eloquent, yapıyla birlikte gelen mükemmel sayfalandırma sisteminde Laravel'de mevcuttur. Yani Eloquent ile sorgular yazıp veri tabanından veri çektiğinizde artık uzun kodlar yazmanıza ve sayfalandırma oluşturmanıza gerek yok, Laravel bunu size kutudan çıkarmış gibi veriyor.

 

Verim
Laravel ile gelen sistemlerin performans üzerinde büyük etkisi vardır. Hızlı çalışan Cache sistemi, Redis sistemi ile kolay ve basit bağlantı, Queue sistemi ile uzun zaman alan işlerin çözülmesi de Laravel'in avantajlarındandır.

 

Form Doğrulama
Çoğumuzun bildiği gibi PHP ile form değerlerini doğrulamak oldukça zaman alan ve zahmetli bir iştir. Ama Laravel bizi bu angaryadan kurtarıyor. Laravel'deki Validation sınıfı sayesinde formdan değerleri kolayca kontrol edebiliyoruz.

 

Laravel'i nasıl kurarım?
Laravel composer ile veya github deposundan klonlayabilirsiniz.

Composer ile

 

composer create-project laravel/laravel blog –prefer-dist

 

Git ile

git clone https://github.com/laravel/laravel.git