Download the PHP package manggala/tenancy without Composer
On this page you can find all versions of the php package manggala/tenancy. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download manggala/tenancy
More information about manggala/tenancy
Files in manggala/tenancy
Package tenancy
Short Description Universal Multi-Tenancy Engine for Laravel supporting Single-DB (Row-Level), Multi-DB & Hybrid Isolation Modes.
License MIT
Homepage https://github.com/IlhamHattaManggala/tenancy
Informations about the package tenancy
manggala/tenancy (tenancy)
manggala/tenancy adalah Headless Multi-Tenancy Engine serbaguna dan fleksibel untuk aplikasi SaaS Laravel.
Package ini mendukung 3 mode isolasi (Single-DB Row Scoping, Multi-DB Database-per-Tenant, dan Hybrid Mode) dengan 4 metode resolusi tenant otomatis (Subdomain, Custom Domain, HTTP Header, & Path).
๐ Fitur Utama
- Dual & Hybrid Isolation Engine:
- Single-DB Mode (Row-Level Security): Trait
BelongsToTenant&TenantScopeotomatis menyuntikkanWHERE tenant_id = 'xxx'dan mengisitenant_idsecara transparan. - Multi-DB Mode (Database-per-Tenant): Mengubah koneksi PDO & mereset database connection secara runtime.
- Hybrid Mode: Single-DB untuk Tier Standard, Multi-DB terpisah untuk Tier Enterprise.
- Single-DB Mode (Row-Level Security): Trait
- 4 Resolusi Tenant Automatic:
- Subdomain (
acme.app.com) - Custom Domain (
portal.acmecorp.com) - HTTP Header (
X-Tenant-ID: acmeโ untuk REST API & Mobile Apps) - Path (
app.com/t/acme)
- Subdomain (
- Runtime Resource Bootstrappers:
- Isolasi Storage (
storage/app/tenants/{tenant_id}/) - Isolasi Cache & Redis (
tenant:{tenant_id}:) - Isolasi File Log (
storage/logs/tenant-{tenant_id}.log)
- Isolasi Storage (
- Safe Context Switcher (
Tenancy::runFor()):- Jalankan logika di dalam konteks tenant lain dengan aman, lalu otomatis kembali ke tenant asal.
- Tenant Quota & Feature Gates:
- Sistem bawaan untuk membatasi kuota (
max_users,max_storage) dan fitur tiering SaaS.
- Sistem bawaan untuk membatasi kuota (
- 7 Artisan CLI Commands:
- Suite perintah terminal lengkap (
tenancy:install,tenant:create,tenant:migrate,tenant:seed,tenant:list,tenant:run,tenant:doctor).
- Suite perintah terminal lengkap (
๐ Matriks Kompatibilitas Framework & Stack
| Parameter | Dukungan Versi & Framework |
|---|---|
| Package Name | manggala/tenancy |
| PHP Version | ^8.2 || ^8.3 || ^8.4 |
| Laravel Version (4 Major Versions) | ^10.0 || ^11.0 || ^12.0 || ^13.0 |
| Frontend Stack Support | Blade, Livewire (v2/v3), Inertia React, Inertia Vue, REST API / Mobile Apps |
| Testing Suite | Pest PHP (pestphp/pest) |
| Static Analysis | PHPStan Level 5+ (larastan/larastan) |
๐ฆ Instalasi
Pasang package via Composer:
Jalankan perintah instalasi otomatis untuk mempublikasikan file konfigurasi dan migrasi tabel central tenants:
Jalankan migrasi database:
โ๏ธ Cara Penggunaan
1. Memilih Mode Isolasi (config/tenancy.php)
2. Memasang Trait pada Model (Single-DB Mode)
3. Mendaftarkan Middleware Resolusi Tenant
Daftarkan middleware pada grup route yang membutuhkan isolasi tenant:
Untuk REST API & Mobile Apps:
4. Menjalankan Kode dalam Konteks Tenant Lain
5. Memeriksa Fitur & Kuota Tenant
๐ฅ๏ธ Perintah Artisan CLI Suite (10 Perintah)
Package ini menyediakan 10 perintah terminal untuk mengelola tenant:
| Perintah | Deskripsi |
|---|---|
php artisan tenancy:install |
Mempublikasikan config tenancy.php & file migrasi tenants. |
php artisan tenant:create {name} --domain= --db= |
Membuat tenant baru (dan opsional DB terpisah). |
php artisan tenant:delete {id} --drop-db --force |
Menghapus tenant dan opsional drop database. |
php artisan tenant:migrate {--tenant=} |
Menjalankan migrate pada seluruh database tenant (Multi-DB). |
php artisan tenant:rollback {--step=1} |
Rollback migrasi database pada seluruh database tenant. |
php artisan tenant:seed {--class=DatabaseSeeder} |
Menjalankan database seeder ke seluruh tenant. |
php artisan tenant:list |
Menampilkan daftar tenant terdaftar dalam tabel terminal. |
php artisan tenant:run {tenant_id} "{command}" |
Menjalankan perintah artisan pada konteks tenant spesifik. |
php artisan tenant:toggle {tenant_id} |
Mengaktifkan atau mensuspensi (suspend / activate) tenant. |
php artisan tenant:doctor |
Tool diagnostik integritas koneksi DB, isolasi cache, & memory leaks. |
๐งช Pengujian (Testing)
Jalankan pengujian menggunakan Pest PHP:
Jalankan analisis statis PHPStan:
๐ Lisensi
Package ini berlisensi MIT License.
All versions of tenancy with dependencies
illuminate/support Version ^10.0 || ^11.0 || ^12.0 || ^13.0
illuminate/database Version ^10.0 || ^11.0 || ^12.0 || ^13.0
illuminate/http Version ^10.0 || ^11.0 || ^12.0 || ^13.0