ArchTechx/Tenancy adalah paket multi-tenancy yang komprehensif dan fleksibel yang dirancang untuk aplikasi Laravel. Ini memungkinkan pengembang untuk mengimplementasikan multi-tenancy tanpa memerlukan perubahan kode yang signifikan dalam aplikasi yang ada, memberikan cara otomatis dan mulus untuk mengelola beberapa penyewa dalam satu instalasi Laravel tunggal.
Paket ini beroperasi dengan pendekatan multi-tenancy otomatis, yang berarti bahwa ia menangani konfigurasi khusus penyewa seperti koneksi basis data, cache, sistem file, antrian, dan toko Redis di belakang layar. Otomatisasi ini memungkinkan pengembang untuk mengonversi aplikasi penyewa tunggal ke platform SaaS multi-tenant dengan intervensi minimal dalam basis kode.
Fitur utama ArchTechx/Tenancy meliputi:
- Identifikasi Penyewa Otomatis: Ini mengidentifikasi penyewa berdasarkan nama host, termasuk dukungan untuk domain tingkat kedua. Ini memungkinkan routing dan switching konteks berdasarkan domain penyewa tanpa konfigurasi manual.
- Tidak diperlukan perubahan kode: Manajemen sewa tidak mengharuskan Anda untuk memodifikasi model Anda dengan sifat-sifat spesifik atau mengganti kelas inti Laravel seperti cache atau penyimpanan dengan versi yang sadar sewa. Ini menghasilkan integrasi bersih yang menghormati konvensi Laravel.
-Mendukung model penyewa tunggal dan multi-database: Anda dapat memisahkan data penyewa dengan database atau menggunakan database bersama dengan model penyewa-scoped. Untuk pendekatan multi-database, paket ini menawarkan sifat-sifat untuk cakupan model ke database penyewa yang sesuai secara otomatis.
- Arsitektur berbasis acara: Paket ini dibangun di sekitar acara yang ditembakkan selama tindakan siklus hidup penyewa seperti penciptaan, inisialisasi, dan penghancuran. Desain ini memungkinkan pengembang untuk menghubungkan ke acara -acara ini dan menyesuaikan perilaku sesuai kebutuhan, menciptakan sistem yang sangat dapat diperluas.
- Integrasi dengan paket Laravel lainnya: ArchTechx/Tenancy terintegrasi dengan lancar dengan paket ekosistem Laravel lainnya, termasuk Laravel Nova, sehingga memudahkan untuk mengelola sumber daya khusus penyewa dari alat yang akrab.
- Testability: Ini dirancang dengan mempertimbangkan testabilitas. Paket ini memungkinkan pengujian menyeluruh dari aliran pendaftaran penyewa, pengalihan konteks penyewa, dan operasi khusus penyewa, memastikan pengaturan multi-tenancy yang stabil dan andal.
- Berbagi Pengguna dan Sumber Daya: Paket mendukung skenario di mana pengguna mungkin termasuk beberapa penyewa. Ini memiliki kemampuan sinkronisasi sumber daya yang memungkinkan sinkronisasi data di seluruh database penyewa jika diperlukan.
- Peniruan Pengguna: Ini mencakup fitur untuk peniruan pengguna, memungkinkan pengguna administratif untuk menyamar sebagai pengguna penyewa di seluruh sistem untuk tujuan debugging atau dukungan.
- Kompatibilitas Basis Data: Ini bekerja dengan beberapa sistem database, termasuk MySQL, PostgreSQL, SQLite, dan mendukung skema postgresql, menawarkan fleksibilitas dalam bagaimana data penyewa dipisahkan.
- Mode Manual dan Otomatis: Sementara mode default secara otomatis beralih konteks, paket ini juga mendukung manajemen tenancy manual, di mana pengembang dapat menentukan konteks penyewa secara eksplisit jika mereka lebih suka mengendalikan koneksi basis data.
-Dikemas dengan fitur: Paket ini dianggap paling kaya fitur di antara paket sewa Laravel, menyediakan beragam alat di luar kotak untuk mencakup kebutuhan SaaS umum seperti perlindungan domain, manajemen siklus hidup penyewa, dan isolasi sumber daya.
Paket ini sangat dihormati di komunitas Laravel, mempertahankan lebih dari 4.000 bintang di GitHub dan digunakan dalam banyak aplikasi produksi di berbagai platform hosting. Ini sedang dalam pengembangan aktif, dengan rilis reguler dan basis kontributor yang ramah.
Perbandingan dengan paket sewa Laravel lainnya seperti Spatie/Laravel-Multitenancy menunjukkan bahwa ArchTechx/Tenancy menawarkan kemampuan pengaturan otomatis yang lebih luas dan arsitektur yang digerakkan oleh acara yang lebih fleksibel. Ini membuatnya cocok untuk proyek yang mengharapkan persyaratan sewa yang kompleks atau yang menginginkan gangguan minimal dari struktur aplikasi yang ada.
Instalasi biasanya melibatkan mendaftarkan paket melalui komposer, menerbitkan file konfigurasi, dan mengatur rute dan middleware penyewa dan middleware. Setelah pengaturan, penyewa dapat dibuat secara terprogram atau melalui antarmuka administratif, dan paket mengelola lingkungan penyewa secara otomatis selama setiap permintaan.
Paket ini juga menawarkan API dan panduan yang terdokumentasi dengan baik, bersama dengan dukungan masyarakat melalui GitHub dan saluran lainnya, membuatnya dapat diakses untuk pendatang baru dan pengembang Laravel yang berpengalaman.
Singkatnya, ArchTechx/Tenancy adalah solusi multi-tenancy yang kuat, fleksibel, dan sangat otomatis yang dirancang untuk membantu pengembang Laravel membangun aplikasi SaaS yang dapat diskalakan dengan modifikasi kode minimal dan ekstensibilitas maksimum, mendukung skenario sewa sederhana dan canggih dengan mudah. Modelnya yang digerakkan oleh acara, dukungan multi-database, dan integrasi Laravel yang dalam membedakannya sebagai pilihan utama untuk proyek Laravel multi-tenant.