From 0b3e9bebb9206b9080ca7f2da9ca581d579e1633 Mon Sep 17 00:00:00 2001 From: maurine Date: Mon, 16 Mar 2026 13:08:31 +0100 Subject: [PATCH] creation des fixtures part2 --- src/DataFixtures/AppFixtures.php | 49 ++++++++++++++++++++++++++++++-- 1 file changed, 47 insertions(+), 2 deletions(-) diff --git a/src/DataFixtures/AppFixtures.php b/src/DataFixtures/AppFixtures.php index 987f6fe..2d293a6 100644 --- a/src/DataFixtures/AppFixtures.php +++ b/src/DataFixtures/AppFixtures.php @@ -2,16 +2,61 @@ namespace App\DataFixtures; +use App\Entity\User; use Doctrine\Bundle\FixturesBundle\Fixture; use Doctrine\Persistence\ObjectManager; +use Faker\Factory; +use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface; class AppFixtures extends Fixture { + # Initialisation de l'outil de hachage de Symfony + private UserPasswordHasherInterface $hasher; + + # Injection de dépendance pour récupérer le service de sécurité + public function __construct(UserPasswordHasherInterface $hasher) + { + $this->hasher = $hasher; + } + + # Méthode principale qui génère les données en base public function load(ObjectManager $manager): void { - // $product = new Product(); - // $manager->persist($product); + # Initialisation de Faker en français + $faker = Factory::create('fr_FR'); + # Boucle pour créer 10 utilisateurs + for ($i = 0; $i < 10; $i++) { + # Instanciation d'un nouvel utilisateur (Adhérent) + $user = new User(); + + # Attribution d'un email aléatoire et unique + $user->setEmail($faker->unique()->safeEmail()); + + # Définition des droits d'accès de l'utilisateur + $user->setRoles(['ROLE_USER']); + + # Hachage sécurisé du mot de passe "password" + $user->setPassword($this->hasher->hashPassword($user, 'password')); + + # Définition d'un NOM et Prénom + $user->setFirstname($faker->firstName()); + $user->setLastname($faker->lastName()); + + # autres fixtures à modifier plus tard + $user->setNextcloudQuota($faker->numberBetween(1, 20) . 'G'); + $user->setQuota($faker->numberBetween(1, 10) . 'G'); + $user->setEmailQuota('1G'); + $user->setEmailDeSecours($faker->unique()->safeEmail()); + $user->setHasAgoraAccess($faker->boolean(70)); // 70% de chance d'avoir accès + $user->setHasMobilizon($faker->boolean(50)); + $user->setHasNextcloudAccess($faker->boolean(90)); + $user->setIdentifiantKaz($faker->uuid()); + + # Préparation de l'enregistrement de l'objet en base de données + $manager->persist($user); + } + # Exécution réelle des requêtes SQL (envoi vers la base), une fois la bouche finie $manager->flush(); } }