Seeders
Initialiser rapidement des données essentielles ou de démonstration dans la base de données avec les seeders de Swell.
Architecture des Seeders
Swell organise ses seeders en deux niveaux pour une flexibilité maximale :
| Seeder | Usage | Commande |
|---|---|---|
DatabaseSeeder | Données essentielles (rôles) | php artisan db:seed |
DemoSeeder | Données de démonstration complètes | php artisan db:seed --class=DemoSeeder |
php artisan db:seedDatabaseSeeder - Données essentielles
Le DatabaseSeeder exécute uniquement le RoleSeeder pour créer les rôles nécessaires au fonctionnement de l'application.
Swell s'appuie sur le package spatie/laravel-permission pour la gestion des rôles et permissions.
Rôles créés
admin: accès complet aux pages Admincustomer: utilisateurs ayant passé commandevisitor: utilisateur de base
Le RoleSeeder utilise firstOrCreate() et peut être exécuté plusieurs fois sans risque de duplication.
DemoSeeder - Données de démonstration
Le DemoSeeder crée un environnement complet pour tester l'application :
Données générées
| Seeder | Description |
|---|---|
RoleSeeder | Rôles de base (admin, customer, visitor) |
AdminUserSeeder | Utilisateur admin (john@doe.com / password) |
BannerSeeder | Messages de bannière promotionnels |
CatalogSeeder | Marques, catégories et produits (thème fashion) |
DashboardSeeder | Utilisateurs et commandes pour les analytics |
Structure des fichiers
database/seeders/
├── DatabaseSeeder.php # Point d'entrée par défaut (RoleSeeder)
├── DemoSeeder.php # Point d'entrée données de démo
├── RoleSeeder.php # Rôles de base
└── Demo/
├── AdminUserSeeder.php # Utilisateur admin
├── BannerSeeder.php # Messages bannière
├── CatalogSeeder.php # Marques, catégories, produits
└── DashboardSeeder.php # Données dashboard (users + orders)Compte admin
Après exécution du DemoSeeder, connecte-toi avec :
- Email :
john@doe.com - Mot de passe :
password
Catalogue de produits
Le CatalogSeeder génère un catalogue fashion complet :
Catégories principales :
- Femme (Hauts, Pantalons, Robes & Jupes, etc.)
- Homme (T-shirts & Polos, Chemises, Sweats, etc.)
- Accessoires (Sacs, Ceintures, Bijoux, etc.)
- Sport (Vêtements, Chaussures, Équipement)
Marques : Zara, H&M, Nike, Adidas, Levi's, Mango, et plus.
Dashboard Analytics
Le DashboardSeeder génère 6 mois de données réalistes :
- 30+ utilisateurs avec dates de création variées
- Commandes distribuées avec revenus réalistes
- Données parfaites pour tester les graphiques du dashboard admin
Seeders par module
Si des modules sont activés, le DemoSeeder exécute automatiquement leurs seeders :
// Dans DemoSeeder.php
if (config('swell.workspace.enabled', false)) {
$this->call(WorkspaceModuleSeeder::class);
}Créer un seeder personnalisé
Pour ajouter tes propres données de test :
php artisan make:seeder CustomSeederPuis ajoute-le au DemoSeeder ou crée ton propre point d'entrée.
Conseils et bonnes pratiques
- Production : Exécute uniquement
php artisan db:seed(RoleSeeder) - Développement : Utilise
php artisan db:seed --class=DemoSeeder - Tests : Le
DemoSeederfournit des données cohérentes pour les tests manuels - Idempotence : Le
RoleSeederpeut être exécuté plusieurs fois sans erreur
Pour aller plus loin, consultez la documentation Laravel sur les seeders : https://laravel.com/docs/seeding