ホームページ  >  記事  >  PHPフレームワーク  >  Laravel拡張機能の推奨:マルチテナント拡張機能パッケージ「multitenancy」

Laravel拡張機能の推奨:マルチテナント拡張機能パッケージ「multitenancy」

青灯夜游
青灯夜游オリジナル
2022-10-10 19:10:001891ブラウズ

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)

2020 年 5 月 20 日

Freek Van der Herten の紹介記事によると:

紹介記事 を見ると、この拡張機能はマルチテナント システムを実装するための基本要素のみをユーザーに提供することが理解できます。

この拡張機能から次の便利な機能が得られます:

  • 現在どのテナントであるかを確認します。

  • テナント構成への変更をカスケードします。

  • 新しいテナント データベースとテナント間のデータ移行ツールを作成します。

  • #詳細な導入と使用法については、特定のドキュメントを参照してください:
laravel-multitenancy ドキュメント

.

テナント モデル

この拡張機能の中心となるのは:

テナント

モデルで、テナント インスタンスの作成に使用されます。この拡張機能が提供するいくつかのトラバーサル メソッドを通じて、現在のテナントをすばやく使用してアクセスできます。

use Spatie\Multitenancy\Models\Tenant;

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

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

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

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

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

テナント顧客のクエリ

拡張機能をインストールすると、データベース内に

tenants

データ テーブルが見つかります。このテーブルはテナント情報を保存するために使用されます。この拡張機能は、ドメイン名による現在のテナントの決定など、いくつかの便利なメソッドを実装しています。DomainTenantFinder クラスは、現在のテナントのクエリと設定に使用されます。もちろん、TenantFinder 抽象クラスを実装している限り、カスタム クエリ メソッドを構成することもできます。 テナントを探すときに、いくつかの必要な決定を考慮する必要がある場合もあります。この拡張機能は、入力パラメータ

NeedsTenant

に基づいて現在のテナントを決定および設定するミドルウェアや、現在のテナント以外のユーザーによるアクセスを防ぐ EnsureValidTenantSession グローバルなど、いくつかのテナント決定ミドルウェアを提供します。テナントのミドルウェア。

テナント対応コンソールとキュー

マルチテナント システムで考慮する必要があるもう 1 つの問題は、コンソール コマンドとキュー範囲の定義です。デフォルトでは、キューの実行はテナントに基づいて区別されません。この拡張機能では、

TenantAware

および NotTenantAware パラメーターを構成して、特定のテナントが特定の要件を使用できるようにすることができます。行列。 もちろん、

tenants:artisan

コマンドを使用して、特定のテナントで移行を実装することもできます。その場合は次のとおりです:

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

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

# #その他の知識

拡張機能の使用とインストールの詳細については、

spatie/laravel-multitenancy

をご覧ください。詳細については、

をお読みください。フリークの投稿

元のアドレス: https://laravel-news.com/spatie-multitenancy-laravel

翻訳アドレス: https://learnku.com/laravel/t/45142

#[関連する推奨事項:

laravel ビデオチュートリアル
]

以上がLaravel拡張機能の推奨:マルチテナント拡張機能パッケージ「multitenancy」の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。