首頁  >  文章  >  php框架  >  Laravel擴充推薦:多租戶擴充包 “multitenancy”

Laravel擴充推薦:多租戶擴充包 “multitenancy”

青灯夜游
青灯夜游原創
2022-10-10 19:10:001788瀏覽

Laravel擴充推薦:多租戶擴充包 “multitenancy”

多租用戶系統是那些需要在一套後端程式上同時維護多個客戶的 web 開發者的福音。

 Spatie 發布的一個Laravel 的擴展multitenancy ,該擴充功能主要幫助您快速建立多租戶系統:

laravel-multitenancy 擴展發布地址:t.co/q9HzfkNw7w
此擴充概念是提供您實現多租戶的基本要素。

文件: t.co/zspuLyt3KN

影片示範(案例): t.co/i3QzTezcuY pic.twitter.com /cy2Fk4tIe6

— Freek Van der Herten (@freekmurze) May 20, 2020

根據Freek Van der Herten 的介紹文章:introductory post,可以了解到此擴充只是提供使用者實現多租用戶系統的基本要素。

你可以從該擴充功能取得以下便利:

  • 判斷目前是哪個租用戶。

  • 租戶配置的級聯變更。

  • 建立新租用戶資料庫,並在租用戶間的資料遷移工具。

詳細介紹以及使用方法請看具體文件:laravel-multitenancy documenation.

租戶模型

此擴充功能的核心是: Tenant 模型,該模型用於租用戶實例的創建,您可以透過該擴充功能提供的一些遍歷方法快速使用和存取目前租用戶。

use Spatie\Multitenancy\Models\Tenant;

// 获取当前租户,不存在返回 null
Tenant::current()

// 通过容器的方式获取当前租户
app('currentTenant');

// 确认当前是否有租户
Tenant::checkCurrent()

// 将某个租户设置为当前租户
$tenant->makeCurrent();

// 忘记当前租户
Tenant::forgetCurrent();

查詢租用戶客戶

##在安裝該擴充功能之後,在資料庫中你會發現

tenants 資料表,此表用於儲存租戶資訊。這個擴充實作了一些便利的方法,包括透過網域名稱來確定目前租用戶,其中 DomainTenantFinder 類,就是用於查詢並設定目前租用戶。當然,你也可以配置自訂查詢方式,只要實作 TenantFinder 抽象類別即可。

在尋找租戶時您可能還需要考慮一些必要判定。此擴充功能提供了一些租戶判定的中間件,例如根據入參來確定並設定當前所屬租戶的中間件

NeedsTenant,以及防止非當前租戶的用戶訪問的EnsureValidTenantSession 全局中介軟體.

Tenant-Aware 控制台和佇列

多租用戶系統還需要考慮的問題就是:控制台指令和佇列範圍的界定。預設情況下,佇列的執行與否是不會根據租用戶來做區分的,該擴充功能中,您可以透過設定

TenantAwareNotTenantAware 參數來實現特定租用戶可以使用特定隊列的需求。

當然,您也可以透過

tenants:artisan 指令來實現在特定租用戶下執行遷移的需求,案例如下:

# 所有租户执行迁移
php artisan tenants:artisan migrate

# 特定租户执行迁移
php artisan tenants:artisan "migrate --seed" --tenant=123
# # 更多知識

關於擴充功能的使用以及安裝,請閱讀

spatie/laravel-multitenancy.

想要了解更多細節請閱讀

Freek's post

原文網址:https://laravel-news.com/spatie-multitenancy-laravel

翻譯網址:https://learnku.com/laravel/t/45142

【相關推薦:

laravel影片教學

以上是Laravel擴充推薦:多租戶擴充包 “multitenancy”的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn