mavisland/orm
最新稳定版本:v1.0.0
Composer 安装命令:
composer require mavisland/orm
包简介
A lightweight nearly-zero-configuration object-relational mapper and fluent query builder for PHP.
README 文档
README
Bu sınıf, saf PHP ile yazılmış, framework bağımsız, sade ama güçlü bir ORM yapısıdır. PDO kullanır, Singleton deseniyle bağlantıyı tek seferde kurar ve Laravel benzeri kullanım kolaylığı sunar.
🚀 Özellikler
✅ PDO ile güvenli bağlantı
✅ Singleton bağlantı (tek sefer açılır)
✅ define() ile kolay yapılandırma
✅ Kolon seçimi, where(), join(), groupBy() gibi SQL kolaylıkları
✅ save(), delete(), softDelete() ve restore() gibi model işlemleri
✅ fillable, guarded ile güvenli veri setleme
✅ validate() ile model bazlı doğrulama
✅ hasMany, belongsTo, with() ile ilişkiler
✅ toArray(), toJson() dönüşümleri
✅ Sayfalama (paginate())
⚙️ Kurulum
1. Veritabanı Yapılandırması
config.php gibi bir dosyada tanımlayın:
<?php define('DB_HOST', 'localhost'); define('DB_NAME', 'veritabani'); define('DB_CHARSET', 'utf8mb4'); define('DB_USER', 'root'); define('DB_PASS', '');
2. ORM Sınıfını Dahil Et
require 'config.php'; require 'Orm.php';
🔧 Kullanım
✅ Model Tanımı
Her modelin kendi sınıfı olmalı. Örneğin:
class Kullanici extends Orm { protected $fillable = ['ad', 'email']; protected $tablo = 'kullanicilar'; }
Not: Alternatif olarak constructor ile tablo adı da verilebilir:
new Orm('kullanicilar')
📄 Kayıt Listeleme
$kullanici = new Kullanici(); $veriler = $kullanici->where('aktif', 1)->orderBy('id', 'DESC')->get();
👤 Tek Kayıt
$kullanici = (new Kullanici())->find(1);
➕ Yeni Kayıt
$k = new Kullanici(); $k->fill([ 'ad' => 'Tanju', 'email' => 'tanju@example.com' ]); $k->save();
✏️ Güncelleme
$k = (new Kullanici())->find(1); $k->email = 'yeni@example.com'; $k->save();
❌ Silme / Soft Delete
$k = (new Kullanici())->find(1); $k->delete(); // softDelete() özelliği açıksa deleted_at kolonunu günceller
🔁 İlişkiler
hasMany:
class Kullanici extends Orm { public function yazilar() { return $this->hasMany(Yazi::class, 'kullanici_id'); } }
belongsTo:
class Yazi extends Orm { public function yazar() { return $this->belongsTo(Kullanici::class, 'kullanici_id'); } }
Eager Loading:
$veriler = (new Yazi())->with('yazar')->get();
✅ Doğrulama (Validation)
class Kullanici extends Orm { protected $rules = [ 'ad' => ['required', 'min:3'], 'email' => ['required', 'email', 'unique'] ]; }
$k = new Kullanici(); $k->fill($_POST); if ($k->validate()) { $k->save(); } else { print_r($k->getErrors()); }
🔄 Dönüştürmeler
$k = (new Kullanici())->find(1); $array = $k->toArray(); $json = $k->toJson();
📄 Sayfalama
$k = new Kullanici(); $sonuc = $k->where('aktif', 1)->paginate(2, 10); // 2. sayfadan 10 kayıt getir // $sonuc['data'], $sonuc['toplam'], $sonuc['sayfa_sayisi'] vs.
🎯 Notlar
- Her model sınıfı
Ormsınıfından türetilmeli - Model başında tablo adı belirtebilir ya da constructor'da verebilirsin
softDelete,timestamps,fillable,guardedgibi özellikler model özelinde açılıp kapatılabilir
💬 Katkıda Bulunmak
Bu ORM sınıfı, sade projeler için ideal bir başlangıçtır. Pull request veya issue ile katkıda bulunmaktan çekinme! 🙌
🪪 Lisans
MIT License
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-07-14