Table des matières

Création de l'entité User

Création de l'entité

symfony console make:user

Fichiers créés :

Création src/Entity/User.php
Création src/Repository/UserRepository.php
Mise à jour config/packages/security.yaml

Propriétés de l'entité :

Nom Type
id integer
email string
roles json
password string

Ensuite pour ajouter d'autres champs à l'entité, il suffit de refaire la commande

symfony console make:entity

Sélectionner l'entité User, et ajouter les champs supplémentaires.

Créer la table dans la DB

Créer une migration :

symfony console make:migration

Appliquer la migration :

symfony console doctrine:migrations:migrate

Fixtures

symfony console make:fixtures
Class name UserFixtures
src/DataFixtures/UserFixtures.php
<?php
 
namespace App\DataFixtures;
 
use App\Entity\User;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Persistence\ObjectManager;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
 
class UserFixtures extends Fixture
{
  private $encoder;
 
  public function __construct(
    UserPasswordEncoderInterface $encoder
  ) {
    $this->encoder = $encoder;
  }
 
  public function load(ObjectManager $manager)
  {
    $user = new User();
    $user->setEmail('bubule@email.com');
    $user->setPassword($this->encoder->encodePassword($user, 'x'));
    $user->setRoles(['ROLE_USER', 'ROLE_ADMIN']);
 
    $manager->persist($user);
    $manager->flush();
  }
}

Appliquer les fixtures :

symfony console doctrine:fixtures:load