Le package `archtechx/tenancy` est un outil flexible et puissant pour implémenter la multi-location dans les applications Laravel. Voici quelques fonctionnalités et différences clés par rapport à d'autres packages comme `spatie/laravel-multitenancy` :
Principales caractéristiques de « archtechx/tenancy » :
1. Multi-location automatique : le package configure automatiquement la multi-location sans nécessiter de modifications significatives du code. Il gère les connexions aux bases de données, les caches, les systèmes de fichiers, les files d'attente et les magasins Redis pour chaque locataire[3].
2. Architecture basée sur les événements : le package utilise une architecture basée sur les événements, permettant une personnalisation et une flexibilité dans la gestion des événements liés à la location[3].
3. Location à base de données unique ou multi-bases de données : il prend en charge les modèles de location à base de données unique et multi-bases de données. Pour la location multi-bases de données, il fournit des caractéristiques de modèle pour étendre les modèles au locataire actuel[3].
4. Intégration avec d'autres packages : le package s'intègre de manière transparente avec d'autres packages Laravel, y compris Laravel Nova, qui peuvent être utilisés pour gérer les ressources des locataires[3].
5. Testabilité : le package est conçu pour être hautement testable, ce qui permet de garantir plus facilement que votre implémentation multi-tenant est minutieusement testée[3].
6. Personnalisation : le package offre des options de personnalisation étendues grâce à son architecture basée sur les événements et aux caractéristiques de son modèle, permettant aux développeurs de l'adapter à leurs besoins spécifiques[3].
Installation et démarrage rapide :
1. Installation : Le package peut être installé à l'aide de Composer : `composer require stancl/tenancy`.
2. Démarrage rapide : le package comprend un didacticiel de démarrage rapide qui vous guide dans la configuration de la location multi-bases de données et de l'identification de domaine. Ce tutoriel est disponible sur la page de documentation du package[4].
Comparaison avec `spatie/laravel-multitenancy` :
- Configuration automatique : les deux packages offrent des options de configuration automatique, mais `archtechx/tenancy` est plus complet dans sa configuration automatique, gérant davantage d'aspects de la multi-location dès le départ.
- Architecture basée sur les événements : `archtechx/tenancy` utilise une architecture basée sur les événements, qui offre plus de flexibilité et d'options de personnalisation par rapport à `spatie/laravel-multitenancy`.
- Intégration avec d'autres packages : les deux packages s'intègrent bien avec d'autres packages Laravel, mais `archtechx/tenancy` est plus explicite dans sa prise en charge de packages comme Laravel Nova.
- Testabilité : les deux packages sont conçus pour être testables, mais `archtechx/tenancy` est plus axé sur la testabilité et fournit plus d'outils pour garantir des tests approfondis.
En résumé, « archtechx/tenancy » offre une solution plus complète et flexible pour la multi-location dans Laravel, avec des options de personnalisation étendues et une meilleure intégration avec d'autres packages. Cependant, le choix entre les deux forfaits dépend en fin de compte des exigences et des besoins spécifiques de votre projet.
Citations :[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