Geliştiriciler Laravel öğrenmeye başladıklarında ilk duydukları terimlerden biri Eloquent ORM‘dir. Bunun için iyi bir nedeni var.
Eloquent, Laravel’i son derece geliştirici dostu yapan özelliklerden biridir. Karmaşık SQL sorguları yazmak yerine, veritabanınızla basit ve anlamlı PHP kodu kullanarak etkileşimde bulunabilirsiniz.
Bu makalede, Eloquent ORM’yi keşfedeceğiz, neden var olduğunu ve yeni başlayanların onu etkili bir şekilde nasıl kullanabileceğini inceleyeceğiz.
Eloquent, Laravel’in Object-Relational Mapper (ORM)ıdır.
Bir ORM, geliştiricilerin veritabanı kayıtlarıyla nesneler ve modeller kullanarak, ham SQL sorguları yazmadan çalışmasına olanak tanır.
Basitçe söylemek gerekirse:
| Veritabanı Kavramı | Laravel Eşdeğeri |
|---|---|
| Tablo | Model |
| Satır | Nesne |
| Sütun | Özellik |
Örneğin:
userstablosu →Usermodelipoststablosu →Postmodeli
Tablodaki her satır, uygulamanızda etkileşimde bulunabileceğiniz PHP nesnesi haline gelir.
Geleneksel veritabanı etkileşimi genellikle şöyle görünür:
- Uzun SQL sorguları yazmak
- Veritabanı bağlantılarını yönetmek
- Tekrarlayan CRUD işlemleri ile başa çıkmak
- Boilerplate kod yazmak
Eloquent, bunun yerine temiz ve anlamlı bir sözdizimi sunarak bunu sadeleştirir.
Ham SQL yazmak yerine:
SELECT * FROM posts;
Şunu yazabilirsiniz:
Post::all();
Bu, kodunuzu:
- Daha okunabilir hale getirir
- Bakımını kolaylaştırır
- Geliştirme süresini kısaltır
Laravel’de her veritabanı tablosunun genellikle karşılık gelen bir modeli vardır.
Bir modeli Artisan komutu ile oluşturabilirsiniz:
php artisan make:model Post
Bu, içinde bir model dosyası oluşturur:
app/Models/Post.php
Temel bir model şu şekilde görünür:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = [
'title',
'content'
];
}
$fillable özelliği, hangi alanların kütle ataması yapılabileceğini tanımlar.
Eloquent’in en büyük avantajlarından biri CRUD işlemlerini ne kadar kolay gerçekleştirebileceğinizdir.
Kayıt Oluşturma
Post::create([
'title' => 'İlk Gönderim',
'content' => 'Eloquent ORM öğreniyorum'
]);
Kayıtları Alma
$posts = Post::all();
Tek bir kaydı almak için:
$post = Post::find(1);
Kayıt Güncelleme
$post = Post::find(1);
$post->update([
'title' => ]);
Kayıt Silme
$post = Post::find(1);
$post->delete();
Modern uygulamalar, tablolar arasındaki ilişkilere büyük ölçüde bağımlıdır.
Eloquent, ilişkileri işleme konusunda son derece basitlik sağlar.
Yaygın ilişkiler şunlardır:
- Birden Bire
- Birden Çoğa
- Çoktan Çoğa
Örneğin, bir Kullanıcının birçok Gönderisi olabilir.
public function posts()
{
return $this->hasMany(Post::class);
}
Artık gönderileri şu şekilde alabilirsiniz:
$user->posts;
Bu yaklaşım, kodunuzu temiz ve sezgisel tutar.
Eloquent ayrıca çeşitli yerleşik korumalar sağlar:
- SQL enjeksiyonunakarşı koruma
- Kütle atama koruması
- Otomatik sorgu bağlama
- Daha güvenli veritabanı etkileşimleri
Bu özellikler, geliştiricilerin her sorgu için ek güvenlik katmanları yazmadan güvenli uygulamalar oluşturmalarına yardımcı olur.
Eloquent, Laravel topluluğunda geniş bir beğeni toplar çünkü:
- Temiz ve okunabilir bir sözdizimi sunar
- Tekrarlayan veritabanı kodunu azaltır
- Tablolar arasındaki ilişkileri basitleştirir
- Gelişimi hızlandırır
- Bakımını kolaylaştırır
Yeni başlayanlar için, karmaşık veritabanı sorguları yazma korkusunu ortadan kaldırır.
Deneyimli geliştiriciler için, iyi yapılandırılmış ve ölçeklenebilir uygulamalar geliştirmek için yardımcı olur.
Eloquent ORM, Laravel ile çalışmayı bu kadar şık hale getiren temel nedenlerden biridir.
Sürekli SQL sorgularını düşünmek yerine, geliştiriciler uygulama mantığına odaklanabilir, Eloquent arka planda veritabanı etkileşimlerini yönetir.
Laravel öğreniyorsanız, Eloquent’e hakim olmak, güçlü bir backend geliştiricisi olmanın temel bir adımıdır.
Basit modeller ile başlayın, CRUD işlemleri üzerinde pratik yapın, ilişkileri keşfedin ve neden Eloquent’in bu kadar güçlü bir araç olduğunu hızla göreceksiniz.
Kaynak: Orijinal Makale


