Laravel’da çok kiracılılık (multi-tenancy) yeni bir kavram değildir; ancak birçok uygulama, kiracının kimliğini kimlik doğrulamadan önce çözmeye çalışır. Bu durum, alt alan adı öncelikli sistemler gibi bazı mimarilerde iyi çalışsa da, her uygulama için uygun değildir.
Birçok gerçek dünya SaaS platformunda, kiracı bağlamı bir kullanıcının giriş yapmasından veya kaydolmasından sonra belirlenir. Uygulamanın, kimliği doğrulanmış kullanıcıyı incelemesi, hangi kiracıya ait olduğunu belirlemesi ve ardından veritabanı bağlantısını veya kiracı bağlamını otomatik olarak değiştirmesi gerekir. İşte çözmek istediğim problem bu.
Bu nedenle, otomatik kiracı tespiti, veritabanı geçişi, middleware desteği, model kapsamlandırma ve kiracı yönetim araçlarıyla odaklanan bir Laravel paketi geliştirdik.
Neden Geliştirdik?
Neden Geliştirdik?
Kimlik doğrulama zaten mevcut olan bir Laravel uygulamasına entegre olabilecek bir paket istedik ve sonrasında kiracılığı temiz bir şekilde yönetebilmeyi hedefledik.
Hedeflerimiz basitti:
- giriş sonrası kiracıyı tespit et
- otomatik kiracı bağlamı değişimi sağla
- izole kiracı veritabanlarını destekle
- yaygın Laravel kimlik doğrulama yığınlarıyla çalış
- geliştiricilerin yazması gereken özel middleware, dinleyiciler ve bağlantı mantığını azalt
Tek tip bir mimari dayatmak yerine, farklı uygulama akışları ve veri tabanı motorlarıyla çalışabilen bir şey istedim.
Paket Ne Yapar?
Paket Ne Yapar?
Bu paket, Laravel uygulamaları için giriş sonrası çok kiracılılık sağlar.
Bir kullanıcı kimlik doğruladığında, paket doğru kiracıyı otomatik olarak belirler ve uygulamayı o kiracı bağlamına değiştirir. Ayrıca şunları destekler:
- middleware aracılığıyla otomatik kiracı geçişi
- birden fazla kiracı veritabanı bağlantısı
- kiracı bilgisini dikkate alan sorgular için model özellikleri
- kurulum, oluşturma, durum, taşıma, tohumlama ve temizleme için artisan komutları
- MySQL, PostgreSQL, SQLite ve SQL Server desteği
- isteğe bağlı otomatik kiracı oluşturma ve olay temelli kurulum akışları
- güvenlik doğrulama ve kiracı erişim kontrolleri
Sonuç olarak, kiracıya yönelik Laravel uygulamalarını daha kolay uygulanabilir ve bakımının daha basit olmasını sağlayan bir paket geliştirdik.
Bunu Farklı Kılan Nedir?
Bunu Farklı Kılan Nedir?
Bu paketi farklı kılan şey, giriş sonrası odaklanmasıdır.
Laravel’deki çok kiracılılık tartışmalarının çoğu, kullanıcı kimliği doğrulanmadan önce kiracıyı bir alan adı, alt alan adı veya istek bağlamından tanımlamak üzerine döner. Bu geçerli bir yaklaşım olsa da, her sistem bu şekilde çalışmaz.
Bazı sistemler, öncelikle kimliği doğrulanmış kullanıcıyı inceleyerek kiracıyı belirlemeyi gerektirir. Diğerleri bir yedekleme stratejisine ihtiyaç duyar. Başkaları ise, temel uygulama mantığını yeniden yazmadan birden fazla kiracı tespit yöntemi desteğine ihtiyaç duyar.
Bu paket bu gerçeği göz önünde bulundurarak inşa edilmiştir.
Birden fazla tespit stratejisini, middleware destekli geçişi, birden fazla veritabanı sürücüsünü ve kimlik doğrulamanın zaten mevcut olduğu uygulamalara temiz bir şekilde katman eklemeyi sağlayan bir iş akışını destekler.
Kurulum
Kurulum
Başlamak oldukça basit:
composer require worldesports/laravel-auto-tenancy
php artisan tenant:install --force --migrate
Sorular
Sorular
Herhangi bir sorunuz varsa, bu yazıya doğrudan yanıt verebilir veya bana [email protected] adresinden ulaşabilirsiniz.
Kaynak: Orijinal Makale


