Heim> PHP-Framework> Laravel> Hauptteil

Empfehlung zur Laravel-Erweiterung: Multi-Tenant-Erweiterungspaket „Multitenancy'

青灯夜游
Freigeben: 2022-10-10 19:10:29
Original
1766 Leute haben es durchsucht

Empfehlung zur Laravel-Erweiterung: Multi-Tenant-Erweiterungspaket „Multitenancy'

Mandantenfähige Systeme sind ein Segen für Webentwickler, die mehrere Clients gleichzeitig auf einer Reihe von Back-End-Programmen verwalten müssen.

Eine von Spatie veröffentlichte Laravel-ErweiterungMultitenancyDiese Erweiterung hilft Ihnen hauptsächlich beim schnellen Aufbau eines Multi-Tenant-Systems:

Veröffentlichungsadresse der Laravel-Multitenancy-Erweiterung:t.co/q9HzfkNw7w
Das Erweiterungskonzept soll Ihnen zur Verfügung gestellt werden mit der Fähigkeit, Mandantenfähigkeit zu erreichen. Grundelemente eines Mandanten.

Dokumentation:t.co/zspuLyt3KN

Videodemo (Fall):t.co/i3QzTezcuYpic.twitter.com/cy2Fk4tIe6

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

Laut Freek Van der Hertens Einführungsartikel:Einführungsbeitragkönnen Sie verstehen, dass diese Erweiterung Benutzern nur die Grundelemente zur Implementierung eines mandantenfähigen Systems bietet.

Mit dieser Erweiterung können Sie folgende Annehmlichkeiten nutzen:

  • Bestimmen Sie, welcher Mieter Sie aktuell sind.

  • Kaskadierende Änderungen an der Mandantenkonfiguration.

  • Erstellen Sie eine neue Mieterdatenbank und ein Datenmigrationstool zwischen Mietern.

Eine ausführliche Einführung und Verwendung finden Sie im jeweiligen Dokument:Laravel-Multitenancy-Dokumentation.

Tenant-Modell

Der Kern dieser Erweiterung ist:Tenant-Modell, das verwendet wird für Mieter Nach der Instanzerstellung können Sie über einige von dieser Erweiterung bereitgestellte Durchquerungsmethoden schnell den aktuellen Mieter verwenden und darauf zugreifen.Tenant模型,该模型用于租户实例的创建,您可以通过该扩展提供的一些遍历方法快速使用和访问当前租户。

use Spatie\Multitenancy\Models\Tenant; // 获取当前租户,不存在返回 null Tenant::current() // 通过容器的方式获取当前租户 app('currentTenant'); // 确认当前是否有租户 Tenant::checkCurrent() // 将某个租户设置为当前租户 $tenant->makeCurrent(); // 忘记当前租户 Tenant::forgetCurrent();
Nach dem Login kopieren

查询租户客户

在安装该扩展之后,在数据库中你会发现tenants数据表,该表用于存储租户信息。该扩展实现了一些便利的方法,包括通过域名来确定当前租户,其中DomainTenantFinder类,就是用于查询并设置当前租户。当然,你也可以配置自定义查询方式,只要实现TenantFinder抽象类即可。

在查找租户时您可能还需要考虑一些必要判定。该扩展提供了一些租户判定的中间件,比如根据入参来确定并设置当前所属租户的中间件NeedsTenant,以及防止非当前租户的用户访问的EnsureValidTenantSession全局中间件。

Tenant-Aware 控制台和队列

多租户系统还需要考虑的问题就是:控制台命令和队列范围的界定。默认情况下,队列的执行与否是不会会根据租户来做区分的,该扩展中,您可以通过配置TenantAwareNotTenantAware参数来实现特定租户可以使用特定队列的需求。

当然,您也可以通过tenants:artisan

# 所有租户执行迁移 php artisan tenants:artisan migrate # 特定租户执行迁移 php artisan tenants:artisan "migrate --seed" --tenant=123
Nach dem Login kopieren

Mieterkunden abfragen

Nach der Installation der Erweiterung finden Sie in der Datenbank die Datentabelletenants, die zum Speichern von Mieterinformationen verwendet wird. Diese Erweiterung implementiert einige praktische Methoden, einschließlich der Bestimmung des aktuellen Mandanten anhand des Domänennamens. Die KlasseDomainTenantFinderwird zum Abfragen und Festlegen des aktuellen Mandanten verwendet. Natürlich können Sie auch eine benutzerdefinierte Abfragemethode konfigurieren, solange Sie die abstrakte KlasseTenantFinderimplementieren.Möglicherweise müssen Sie bei der Suche nach Mietern auch einige notwendige Beurteilungen berücksichtigen. Diese Erweiterung stellt einige Middleware zur Mandantenbestimmung bereit, z. B. die MiddlewareNeedsTenant, die den aktuellen Mandanten basierend auf Eingabeparametern bestimmt und festlegt, und dieEnsureValidTenantSession, die den Zugriff durch andere Benutzer als den verhindert aktueller Mieter. > Globale Middleware.

Mandantenfähige Konsole und Warteschlange

Ein weiteres Problem, das in einem mandantenfähigen System berücksichtigt werden muss, ist: die Definition von Konsolenbefehlen und Warteschlangenbereichen. Standardmäßig wird die Ausführung der Warteschlange nicht nach dem Mandanten unterschieden. In dieser Erweiterung können Sie die Parameter TenantAwareund NotTenantAwarekonfigurieren, um eine bestimmte Warteschlange zu implementieren -spezifische Anforderungen können genutzt werden.

Natürlich können Sie auch den Befehltenants:artisanverwenden, um die Migration unter einem bestimmten Mandanten durchzuführen. Der Fall ist wie folgt:

rrreee

## Mehr Wissen

Über die Verwendung von Erweiterungen und Zur Installation lesen Sie bittespatie/laravel-multitenancy

.Für weitere Details lesen Sie bitte Freeks Beitrag. Originaladresse: https://laravel-news.com/spatie-multitenancy-laravelÜbersetzungsadresse: https://learnku.com/laravel/t/45142[Verwandte Empfehlungen: Laravel-Video-Tutorial 】

Das obige ist der detaillierte Inhalt vonEmpfehlung zur Laravel-Erweiterung: Multi-Tenant-Erweiterungspaket „Multitenancy'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!