 (36).png)
Bir uygulamayı birden fazla müşteri (tenant) için tek bir kod tabanıyla yönetmek mi istiyorsunuz? Laravel ile multi-tenant mimariyi nasıl kurabileceğinizi adım adım anlatıyoruz!
Multi-tenancy, tek bir uygulamanın birden fazla kişi/organizasyon tarafından izole şekilde kullanılmasıdır.
Tenant’ı domain, subdomain veya kullanıcı girişine göre belirleyebilirsiniz.
// Middleware ile tenant'ı tespit etme
public function handle($request, Closure $next)
{
$tenant = Tenant::where('domain', $request->getHost())->first();
if (!$tenant) {
abort(404);
}
// Tenant'ı global bir helper'a atayabiliriz
app()->instance('currentTenant', $tenant);
return $next($request);
}
config/database.php’de dinamik bağlantı oluşturabilirsiniz:
'connections' => [
'tenant' => [
'driver' => 'mysql',
'url' => null,
'host' => env('DB_TENANT_HOST', '127.0.0.1'),
'port' => env('DB_TENANT_PORT', '3306'),
'database' => 'tenant_' . app('currentTenant')->id, // Dinamik DB adı
'username' => env('DB_TENANT_USERNAME', 'root'),
'password' => env('DB_TENANT_PASSWORD', ''),
],
];
Her tenant için farklı storage, cache ve config ayarları yapılabilir.
// Tenant'a geçiş yapma
public function switchTenant(Tenant $tenant)
{
config(['database.default' => 'tenant']);
Config::set('filesystems.disks.tenant.root', storage_path('app/tenants/' . $tenant->id));
// Cache prefix'i tenant'a özel yap
config(['cache.prefix' => 'tenant_' . $tenant->id]);
}
Multi-tenant mimari, SaaS projeleri için mükemmel bir çözüm! Laravel’in esnek yapısı sayesinde farklı yaklaşımlarla uygulanabilir.
Siz hangi yöntemi tercih ediyorsunuz? Yorumlarda deneyimlerinizi paylaşın! 👇💬
Bir sonraki yazımız: 🚀 [Laravel’de API Documentation: Swagger ile Otomatik Dokümantasyon] – API’nizi kolayca dokümante edin!**
#Laravel #MultiTenancy #SaaS #WebDevelopment #Backend 🚀