La multi-location est une architecture logicielle dans laquelle une seule instance d'une application sert plusieurs locataires ou clients.
Les données de chaque locataire sont isolées et restent invisibles pour les autres locataires. Cette approche est couramment utilisée dans les applications Software as a Service (SaaS). Dans ce didacticiel, nous allons jeter les bases d'une application SaaS multi-tenant utilisant Laravel et Neon.
À la fin de ce didacticiel, vous disposerez d'une application SaaS multi-locataires entièrement fonctionnelle dans laquelle les locataires peuvent gérer leurs propres livres, utilisateurs et paramètres, tout en maintenant l'isolation des données entre les locataires.
Avant de commencer, assurez-vous d'avoir les éléments suivants :
Commençons par créer un nouveau projet Laravel et configurer les composants nécessaires.
Ouvrez votre terminal et exécutez la commande suivante pour créer un nouveau projet Laravel :
composer create-project laravel/laravel laravel-multi-tenant-saas cd laravel-multi-tenant-saasPour notre application SaaS multi-tenant, nous utiliserons le package suivant :
stancl/location: Un package multi-tenant flexible pour LaravelCommencez par installer lestancl/locationemballer:
le compositeur a besoin d'un stancl/locationAprès avoir installé le package, configurons la location :
location php artisan:installerEnregistrez leFournisseur de services de locationdans lebootstrap/providers.phpdéposer:
return [ // ... App\Providers\TenancyServiceProvider::class, ],Installons Laravel Breeze avec les vues Blade :
composer nécessite laravel/breeze --dev php artisanbreeze: installer la lameEnsuite, installez les packages NPM requis :
npm installer npm exécuter le développementMettez à jour votre.envfichier avec vos informations d'identification de base de données Neon :
DB_CONNECTION=pgsql DB_HOST=votre-nom d'hôte-neon.neon.tech DB_PORT=5432 DB_DATABASE=votre_nom_de base de données DB_USERNAME=votre_nom d'utilisateur DB_PASSWORD=votre_mot de passeAprès avoir mis à jour le.envfichier, exécutez les migrations de base de données :
php artisan migrerMaintenant que nous avons notre configuration de base, implémentons la multilocation dans notre application.
Créer unLocatairemodèle:
php artisan make:modèle LocataireMettre à jour leapp/Modèles/Tenant.phpdéposer:
?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Stancl\Tenancy\Database\Models\Tenant as BaseTenant; use Stancl\Tenancy\Contracts\TenantWithDatabase; use Stancl\Tenancy\Database\Concerns\HasDatabase; use Stancl\Tenancy\Database\Concerns\HasDomains; class Tenant extends BaseTenant implements TenantWithDatabase { use HasFactory, HasDatabase, HasDomains; } Ce modèle étend la baseLocatairemodèle fourni par le package de location et met en œuvre leLocataireAvecDatabaseinterface. Nous avons également défini les attributs à remplir et les colonnes personnali...
[Courte citation de 8% de l'article original]