Laravel’da çoklu kiracılık (multi-tenancy) yeni bir kavram değil, ancak birçok uygulama kiracının kimliğini doğrulama öncesi belirleyeceğini varsayıyor. Bu, bazı mimariler için iyi çalışıyor, özellikle alt alan adı (subdomain-first) sistemler için, ancak her uygulamaya uymuyor.
Pek çok gerçek dünya SaaS platformunda, kiracı bağlamı bir kullanıcının giriş yaptıktan veya kayıt olduktan sonra belirleniyor. 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 gerekiyor. Benim çözmek istediğim problem buydu.
Bu nedenle, otomatik kiracı tespiti, veritabanı değiştirme, middleware desteği, model kapsamı ve kiracı yönetimi araçları ile odaklanmış bir Laravel paketi geliştirdik.
Neden Bunu Geliştirdik
Neden Bunu Geliştirdik
Giriş işlemi yapılmış bir Laravel uygulamasına entegre edilebilecek ve kiracılığı temiz bir şekilde yönetebilecek bir paket istedik.
Hedefler sade ve netti:
- giriş yapıldıktan sonra kiracıyı tespit et
- otomatik kiracı bağlamını değiştir
- 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 zorlamak yerine, farklı uygulama akışları ve veritabanı motorları ile çalışabilecek bir çözüm geliştirmek istedim.
Paket Neler Yapıyor
Paket Neler Yapıyor
Bu paket, Laravel uygulamaları için doğrulama sonrası çoklu kiracılık sunmaktadır.
Bir kullanıcı kimliğini doğruladığında, paket otomatik olarak doğru kiracıyı belirleyebilir ve uygulamayı o kiracı bağlamına geçirebilir. Ayrıca şunları içerir:
- middleware aracılığıyla otomatik kiracı geçişi
- birden fazla kiracı veritabanı bağlantısı
- kiracı bilinci olan sorgular için model özellikleri
- kurulum, oluşturma, durum, taşınma, 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 odaklı kurulum akışları
- güvenlik doğrulama ve kiracı erişim kontrolleri
Sonuç olarak, kiracı bilinci olan Laravel uygulamalarını daha kolay uygulamak ve korumak için tasarlanmış bir paket oluşturulmuştur.
Bunu Farklı Kılan Nedir
Bunu Farklı Kılan Nedir
Bu paketi farklı kılan, doğrulama sonrası odak olmasıdır.
Laravel’de çoklu kiracılık tartışmaları, genellikle kiracının kimliğini bir alan adı, alt alan adı veya istek bağlamından, kullanıcı kimliği doğrulanmadan önce belirlemek etrafında dönüyor. Bu geçerli, ancak her sistem bu şekilde çalışmıyor.
Bazı sistemler, kiracıyı önce kimliği doğrulanmış kullanıcıyı inceleyerek belirlemek zorundadır. Diğerleri bir geri dönüş stratejisine ihtiyaç duyar. Bazıları da, 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 stratejisi, middleware destekli geçiş, çoklu veritabanı sürücüleri ve kimlik doğrulamanın zaten bulunduğu uygulamalara kiracılığı katmanlı bir şekilde entegre etmeyi sağlayan bir iş akışıyla desteklenmektedir.
Kurulum
Kurulum
Başlamak son derece basit:
composer require worldesports/laravel-auto-tenancy
php artisan tenant:install --force --migrate
Sorular
Sorular
Herhangi bir sorunuz varsa, bu gönderiye doğrudan cevap verebilir veya bana [email protected] adresinden e-posta atabilirsiniz.
Kaynak: Orijinal Makale


