Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: Laravel ile Çoklu Kiracı SaaS Oluşturma: LaraFoundry Yaklaşımı
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » Laravel ile Çoklu Kiracı SaaS Oluşturma: LaraFoundry Yaklaşımı

Yazılım

Laravel ile Çoklu Kiracı SaaS Oluşturma: LaraFoundry Yaklaşımı

teknomers
Son güncelleme: 20 Ocak 2026 17:36
teknomers
Paylaş
Paylaş

Son birkaç hafta boyunca, Laravel için modüler bir SaaS motoru olan LaraFoundry üzerine çalıştım. En büyük zorluk? Çoklu kiracılığı doğru bir şekilde uygulamak.

Bu makalede, yaklaşımımı paylaşacağım: veritabanı yapısı, özelliklerle otomatik izolasyon ve kapsamlı test stratejileri.



Çoklu Kiracılık Zorluğu

SaaS uygulamaları geliştirirken, verileri kiracılar (şirketler, organizasyonlar, hesaplar) arasında izole etmeniz gerekir. Bunu yanlış yaparsanız, Şirket A Şirket B’nin verilerini görebilir. 😱

Üç ana yaklaşım vardır:

  1. Kiracı başına ayrı veritabanları – Tam izolasyon, karmaşık işlemler
  2. Kiracı başına ayrı şemalar – Orta düzeyde izolasyon, orta karmaşıklık
  3. Paylaşılan veritabanı, satır düzeyinde izolasyon – Basit işlemler, disiplin gerektirir

LaraFoundry için 3. seçeneği tercih ettim. İşte nedeni.



Neden Paylaşılan Veritabanı?

Avantajlar:

  • ✅ Daha basit işlemler (yönetilecek tek bir veritabanı)
  • ✅ 100-1000 kiracı için daha iyi
  • ✅ Maliyet etkin
  • ✅ Yedekleme ve göçler daha kolay
  • ✅ Kiracılar arası raporlama (yöneticiler için)

Dezavantajlar:

  • ⚠️ Dikkatli kodlama gerektirir (elle filtreleme yok!)
  • ⚠️ Küresel kapsamlar çok önemlidir
  • ⚠️ Test etmek şarttır

Kohana (LaraFoundry için test alanım) için, paylaşılan veritabanı mantıklıydı. 10,000+ kiracıya ölçeklenmem gerekirse, durumu tekrar gözden geçiririm.



Veritabanı Şeması

İşte temel yapı:

CREATE TABLE companies (
    id BIGINT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    subdomain VARCHAR(100) UNIQUE,
    created_at TIMESTAMP,
    updated_at TIMESTAMP
);

CREATE TABLE users (
    id BIGINT PRIMARY KEY,
    company_id BIGINT NOT NULL,
    name VARCHAR(255),
    email VARCHAR(255),
    FOREIGN KEY (company_id) REFERENCES companies(id) ON DELETE CASCADE,
    UNIQUE(company_id, email),
    INDEX(company_id)
);

CREATE TABLE orders (
    id BIGINT PRIMARY KEY,
    company_id BIGINT NOT NULL,
    user_id BIGINT,
    total DECIMAL(10,2),
    FOREIGN KEY (company_id) REFERENCES companies(id) ON DELETE CASCADE,
    INDEX(company_id, created_at)
);
Enter fullscreen mode

Exit fullscreen mode

Ana kararlar:

  1. Her kiracı kapsamındaki tabloda company_id – Null olamaz
  2. Cascade ile yabancı anahtarlar – Şirket silinirse tüm veriler silinir
  3. Kompozit dizinler – (company_id, created_at) performans açısından önemlidir
  4. Tekil kısıtlamalar – (company_id, email) şirket içinde tekrarları engeller



BelongsToCompany Özelliği

Manuel where('company_id', ...) kullanmak hata yapma olasılığını artırır. Bir hata = veri sızıntısı.

Çözüm: Küresel kapsamlar kullanarak bir trait geliştirmek.


namespace App\Traits;

use Illuminate\Database\Eloquent\Builder;

trait BelongsToCompany
{
protected static function bootBelongsToCompany(): void
{
static<:>

addGlobalScope('company', function (Builder $builder) {
if (auth()<:>check() <:>&&
auth<:>())->user()->company_id) <:>(){
$builder<:><:>->

where($builder<:><:>getModel()->getTable() . '.company_id',
auth()<:>
<:>->

user()->company_id

}

});

};
$this->company

;


use

BelongsToCompany

;

Faireuse:

class Order

// ← Tek bir satır!


Kaynak: Orijinal Makale

Yandex Arama API’si Üzerine: yandex-search-php PHP Kütüphanesi İncelemesi
Laravel esintili hafif bir PHP MVC çerçevesi olan Larite’i geliştirdim. Deneyimli geliştiricilerden geri bildirim almak isterim.
Laravel’de idempotentlik, TTL kullanıcı niyetine uyduğunda daha iyi çalışır
SaaS Uygulamalarında Karmaşık İş Süreçleri: KOBİ Yazılımları için Mimari Rehberi
Fish Shell ve Laravel Valet: Otomatik PHP Versiyonları ve Composer v1/v2 Değişimi
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Netflix Warner Bros için nakit teklifini güncelleyerek Paramount’a karşı koyuyor
Sonraki Makale Acil: Anthropic MCP Git Sunucusundaki 3 Kritik Açık!

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Yaz Geliştirici Festivali 2026: Tüm Yenilikler Ortaya Çıkıyor
Oyun
Madonna’nın Grindr’daki Cesur ve Heyecan Verici Ticareti
Genel
Meta’nın AI Sunucuları İçin Tüm ABD’ye Çadırlar Kurması
Donanım
Grand Theft Auto VI Oyun Dünyasında Tarihleri Değiştiriyor
Liste
Microsoft’un Mojo’su Geri Mi Gidiyor? AI ve Yenilikler Ne Diyor?
Genel
Donanım Dünyası: Computex 2026, 4. Gün – B2B Değişimi ve Taipei’ye Veda
Donanım
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?