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