Symfony 4 : Gestion utilisateurs sans FOSUserBundle v2018 : Chapitre 1

Cet article est écrit en 3 parties :

J’avais écrit l’année dernière une série d’articles sur comment gérer les utilisateurs sans FOSUserBundle, il me restait encore à publier « comment modifier son mot de passe et comment faire un « J’ai oublié mon mot de passe ».

Vu que les choses ont pas mal bougé en 1 an j’ai décidé de repartir de 0 (mais en reprenant les grandes lignes de l’ancien article).

Mon environnement :

  • Linux Mint 19
  • Php 7.2.10
  • MariadB 10.2.18
  • Symfony 4.1.6

On va évidemment commencé par creer le projet :

Et tout de suite lancer le serveur :

Il suffit maintenant de se rendre sur http://127.0.0.1:8000, et voilà !

Une des nouveautés du bundle maker c’est la possibilité de créer une classe user en ligne de commande ! C’est déjà inclus dans la version que nous avons installé, mais sinon il aurait suffit de faire :

Nous allons maintenant passer à la création de la classe :

Vous pourrez, sauf si exception, sélectionner tout le temps le choix par défaut.

Nous voilà donc avec une classe toute propre contenant quelques champs (email, roles, mot de passe) :

Mais ce n’est pas tout, le maker a aussi créer le fichier repository ainsi que le fichier /config/packages/security.yaml

Pour ajouter un champ, il suffit d’utiliser le maker entity :

Avant de créer la base n’oubliez pas de modifier le fichier env et d’y mettre à jour les identifiants pour accès à votre base de données.

On va lancer l’update du schema :

On va déjà créer quelques utilisateurs fake, grâce aux fixtures, pour ça il faut ajouter un composant puis la librairie faker :

Puis toujours avec ce puissant maker, on va créer la classe que l’on appellera UserFixtures :

Ce qui donnera :

Il suffit maintenant de créer les fixtures :

Ce qui nous donne dans la base 10 magnifiques users :

Nous allons maintenant créer le controller, et là aussi on va utiliser le maker :

Nous l’appellerons simplement SecurityController :

Ce maker créé le controller mais aussi la vue (le fichier twig), on peut donc se rendre sur http://127.0.0.1:8001/security

Nous aurons pas besoin de cette route (/security) on pourra la supprimer, on va créer à la place /login qui va se charger d’afficher un formulaire de connexion :

Et la le fichier twig security/login.html.twig :

Voilà pour cette partie ! Dans la prochaine partie nous rentrerons dans le dur avec la création du formulaire et la connexion de l’utilisateur.

Vous pourrez retrouver le code de l’ensemble du projet sur github : https://github.com/gponty/userDemo2018