Kategoriler
Teknik

Eloquent ORM’in Tek Başına Kullanımı

Aşağıda Laravel’in varsayılan ORM’i olan Eloquent’in tek başına, Laravel’den bağımsız şekilde kendi projelerimizde nasıl kullanabileceğimizden bahsettim.

Evvela composer paket yöneticisiyle projemizi oluşturalım.

PHP 7 altındaki sürümler için kullanmanız gereken sürüm 5.4 olanı. 5.5 ve üstü olanlar PHP 7 gerektiriyor. Eğer PHP 7 ile çalışacaksanız sürüm belirtmeden gerekliliği indirebilirsiniz.

$ composer require illuminate/database:5.4

Öncelikle bir ‘kapsül’ oluşturacağız. Laravel yaratıcıları Eloquent’in ‘kapsül’ ile çatı dışında kullanılabilmesini amaçlamışlar.

index.php

require __DIR__ . '/vendor/autoload.php';

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule();

$capsule->addConnection([
    'driver'    => 'mysql',
    'host'      => 'localhost',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => 'password',
    'charset'   => 'utf8',
    'collation' => 'utf8_unicode_ci',
    'prefix'    => '',
]);

/*
SQLite bağlantısı için

$capsule->addConnection([
  'driver' => 'sqlite',
  'database' => '/hedef/dizin/database.sqlite',
  'prefix' => ''
]);

Dipnot: addConnection'ın ikinci parametresi bağlantı adını alır.
*/

// Kapsülü statik metodlarla global olarak erişilebilir hale getirir
$capsule->setAsGlobal();

// Eloquent ORM'i başlat
$capsule->bootEloquent();

Kurulumu tamamladık. Şimdi ilk örneğimizi sorgu oluşturucu ile yapalım:

$kullanicilar = Capsule::table('kullanicilar')->where('oylama', '>', 100)->get();

Doğrudan sorgu çalıştırmak istediğimizde select metodunu kullanıyoruz:

$sonuclar = Capsule::select('select * from kullanicilar where id = ?', [$id]);

Şema oluşturucusunu da kullanabiliyoruz. (Migrasyon/taşıma (Migration) için kullanılır)

Capsule::schema()->create('kullanicilar', function ($table) {
  $table->increments('id');
  $table->string('epota')->unique();
  $table->string('sifre');
  $table->unsignedTinyInteger('yas')->nullable();
  $table->boolean('aktif')->default(true);
  $table->timestamps();
});

Son olarak model sınıfımız ile kullanabiliriz. Kendimize has yazdığımız bir MVC iskeletinde kullanmak için oldukça kullanışlı oluyor.

class Kullanici extends \Illuminate\Database\Eloquent\Model {}

$kullanicilar = Kullanici::where('oylama', '>', 1)->get();

Kolay gelsin.


Kaynakça

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir