News

Automatic Tenancy For Your Laravel App

Published
Automatic Tenancy For Your Laravel App image

The stancl/tenancy package provides automatic multi-tenancy for your Laravel application:

  • No model traits to change database connections
  • No replacing Laravel classes with tenancy-aware classes
  • Built-in tenant identification based on hostname, including second-level domains)

It works by using the current hostname as the tenant, switching database and Redis connections, and suffixing things like cache and filesystems.

The stancl/tenancy package comes with artisan commands and an API to do things like creating new tenants:

use Stancl\Tenancy\Tenant;
 
Tenant::new()
->withDomains(['tenant1.yourapp.com', 'tenant1.com'])
->withData(['plan' => 'free'])
->save();

This package also provides a concept of tenant storage, which stores things like the tenant’s IDs, domains, plan, and you can even store tenant-specific application configuration:

$tenant->put($key, $value);
$tenant->set($key, $value); // alias for put()
$tenant->put(['key1' => 'value1', 'key2' => 'value2']);

You can learn more about this package and view the source code on GitHub at stancl/tenancy. Also, check out the stancl/tenancy documentation for full setup and usage instructions.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article