Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
prog:symfony:entities:fixtures [09/10/2022 17:01]
thierry [Application des fixtures]
prog:symfony:entities:fixtures [09/10/2022 17:24] (Version actuelle)
thierry [Créer un mot de passe d'utilisateur]
Ligne 50: Ligne 50:
 ===== Cas particuliers ===== ===== Cas particuliers =====
 ==== Créer un mot de passe d'​utilisateur ==== ==== Créer un mot de passe d'​utilisateur ====
 +Il faut hasher le mot de passe avant de le stocker avec ''​$user->​setPassword''​
 +
 +Dans l'​exemple ci dessous :
 +  - Nouvelle clause use :''​use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;''​
 +  - Modification/​Ajout de la function ​ ''​construct''​ pour injecter ''​userPasswordHasherInterface''​
 +  - Hashage du mot de passe avec ''​$this->​userPasswordHasherInterface->​hashPassword($user,'​password'​);''​
 +
 +
 +<code php>
 +use App\Entity\User;​
 +use Doctrine\Persistence\ObjectManager;​
 +use Doctrine\Bundle\FixturesBundle\Fixture;​
 +use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;​
 +
 +class AppFixtures extends Fixture
 +{
 +    private $userPasswordHasherInterface;​
 +    public function __construct (UserPasswordHasherInterface $userPasswordHasherInterface) ​
 +    {
 +        $this->​userPasswordHasherInterface = $userPasswordHasherInterface;​
 +    }
 +
 +    public function load(ObjectManager $manager): void
 +    {
 +        $user = new User;
 +        $user->​setEmail('​test@test.com'​);​
 +        $hashedPassword = $this->​userPasswordHasherInterface->​hashPassword($user,'​password'​);​
 +        $user->​setPassword($hashedPassword);​
 +        $manager->​persist($user);​
 +        $manager->​flush();​
 +    }
 +}
 +
 +</​code>​