Das Paket „archtechx/tenancy“ ist ein flexibles und leistungsstarkes Tool zur Implementierung von Multi-Tenancy in Laravel-Anwendungen. Hier sind einige wichtige Funktionen und Unterschiede im Vergleich zu anderen Paketen wie „spatie/laravel-multitenancy“:
Hauptmerkmale von „archtechx/tenancy“:
1. Automatische Mandantenfähigkeit: Das Paket richtet die Mandantenfähigkeit automatisch ein, ohne dass wesentliche Codeänderungen erforderlich sind. Es verwaltet Datenbankverbindungen, Caches, Dateisysteme, Warteschlangen und Redis-Speicher für jeden Mandanten[3].
2. Ereignisbasierte Architektur: Das Paket verwendet eine ereignisgesteuerte Architektur, die eine individuelle Anpassung und Flexibilität bei der Handhabung mietvertragsbezogener Ereignisse ermöglicht[3].
3. Einzel- oder Mehrfachdatenbank-Mandantenfunktion: Es werden sowohl Einzeldatenbank- als auch Mehrfachdatenbank-Mandantenmodelle unterstützt. Für Multi-Datenbank-Mandanten stellt es Modellmerkmale für die Festlegung des Gültigkeitsbereichs von Modellen für den aktuellen Mandanten bereit[3].
4. Integration mit anderen Paketen: Das Paket lässt sich nahtlos in andere Laravel-Pakete integrieren, einschließlich Laravel Nova, das zur Verwaltung von Mandantenressourcen verwendet werden kann[3].
5. Testbarkeit: Das Paket ist so konzipiert, dass es in hohem Maße testbar ist, sodass Sie einfacher sicherstellen können, dass Ihre mandantenfähige Implementierung gründlich getestet wird[3].
6. Anpassung: Das Paket bietet durch seine ereignisbasierte Architektur und Modellmerkmale umfangreiche Anpassungsoptionen, sodass Entwickler es an ihre spezifischen Bedürfnisse anpassen können[3].
Installation und Schnellstart:
1. Installation: Das Paket kann mit Composer installiert werden: „composer require stancl/tenancy“.
2. Schnellstart: Das Paket enthält ein Schnellstart-Tutorial, das Sie durch die Einrichtung von Multi-Datenbank-Mandantenfähigkeit und Domänenidentifizierung führt. Dieses Tutorial ist auf der Dokumentationsseite des Pakets verfügbar[4].
Vergleich mit „spatie/laravel-multitenancy“:
- Automatische Einrichtung: Beide Pakete bieten automatische Einrichtungsoptionen, aber „archtechx/tenancy“ ist in der automatischen Einrichtung umfassender und behandelt sofort mehr Aspekte der Mandantenfähigkeit.
- Ereignisbasierte Architektur: „archtechx/tenancy“ verwendet eine ereignisgesteuerte Architektur, die im Vergleich zu „spatie/laravel-multitenancy“ mehr Flexibilität und Anpassungsoptionen bietet.
- Integration mit anderen Paketen: Beide Pakete lassen sich gut mit anderen Laravel-Paketen integrieren, aber „archtechx/tenancy“ unterstützt Pakete wie Laravel Nova expliziter.
- Testbarkeit: Beide Pakete sind so konzipiert, dass sie testbar sind, aber „archtechx/tenancy“ konzentriert sich mehr auf Testbarkeit und bietet mehr Tools, um gründliche Tests sicherzustellen.
Zusammenfassend bietet „archtechx/tenancy“ eine umfassendere und flexiblere Lösung für Multi-Tenancy in Laravel, mit umfangreichen Anpassungsmöglichkeiten und besserer Integration mit anderen Paketen. Die Wahl zwischen den beiden Paketen hängt jedoch letztendlich von den spezifischen Anforderungen und Bedürfnissen Ihres Projekts ab.
Zitate:[1] https://stackoverflow.com/questions/74005556/archtechx-tenancy-vs-spatie-laravel-multitenancy
[2] https://github.com/archtechx/tenancy/actions
[3] https://tenancyforlaravel.com
[4] https://tenancyforlaravel.com/docs/v3/quickstart/
[5] https://github.com/stancl/tenancy/releases