Développement web

Symfony 5 : bien débuter

Symfony 5 : bien débuter

Posté le 01/01/2021, à 20:24
Mis à jour le 02/01/2021 à 10:35
citizenz7
Auteur : citizenz7

Lectures : 4828



Quand on débute sur Symfony, c'est souvent un peu compliqué de s'y retrouver tout seul. Mais une fois que l'on a compris la "philosophie" du framework et que l'on connait certaines commandes bien utiles, on se rend compte d'une chose : on ne plus s'en passer et en se dit : "Mais comment j'ai pu galérer à mettre en place telle ou telle partie de projet... alors que Symfony me fait ça les doigts dans le nez, en 2 temps 3 mouvements ?!!"

Voici donc quelques commandes de base (!) pour créer un projet Symfony (5) TRES BASIC (!) mais fonctionnel. Un bon début pour avoir "tout ce qu'il faut".
Rappellez vous que Symfony est basé sur l'architecture MVC (Modèle, Vue, Controlleur) et la POO (Programmation Orientée Objet). Ca serait pas mal d'avoir quelques bases sur ces sujets avant de vous jetez corps et âme dans Symfony :)

Créer un nouveau projet

Après avoir installé COMPOSER (https://getcomposer.org/) puis SYMFONY cli (https://symfony.com/download), pour créer un projet rien de plus simple :

symfony new MON_SUPER_PROJET --full

L'option --full ajoutera "tout ce qu'il faut", surtout si vous commencez un projet de type blog, site web, etc.

Configurer la base de données

Avec Symfony, pas la peine d'utiliser phpMyAdmin (ou Adminer) pour créer la base. Tout est "géré" dans le fichier .env, à la racine du site (cd MON_SUPER_PROJET).
Voici la ligne qui va vous permettre d'utiliser MySQL (ou Mariadb) :

DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=mariadb-10.4.10"

Il vous suffit de remplacer :

  • db_user par votre utilisateur MySQL
  • db_password par le mot de passe de votre utilisateur MySQL
  • db_name : le nom de votre base de données

serverVersion et :3306 (port MySQL) sont facultatifs. Vous pouvez très bien vous en passer et au final avoir cette configuration :

DATABASE_URL="mysql://db_user:db_password@127.0.0.1/db_name

Créer la base de données

Pour créer la base de données, utilisez un terminal. Placez-vous dans le répertoire de votre projet :

php bin/console doctrine:database:create

... et Hop! votre base de données est crée !

Création des utilisateurs (users)

Commençons par créer les utilisateurs, c'est à dire la ou les personnes qui aurons accès à l'administration du site ou du projet :

php bin/console make:user

Cette commande va créer la classe User qui est le nom par défaut. Vous pourrez aussi choisir n'importe quel autre nom.
Grâce au "résultat" de cette commande, on va pouvoir aussi créer la table user (ou users ou... le nom que vous avez choisi...).
Pour cela on va passer par deux étapes obligatoire : la préparation d'un fichier de "migration" et la création de la table SQL.
Ca se passe comme suit :

php bin/console make:migration
php bin/console doctrine:migrations:migrate

Creation de l'authentification

En une seule commande, on va pouvoir créer toute la partie authentification pour le site, c'est à dire le formulaire de connexion :

php bin/console make:auth

On peut aussi créer rapidement le formulaire d'enregistrement :

php bin/console make:registration-form

Créer les autres tables

Imaginez que vous ayez d'autres tables à créer : categories, commentaires, etc.
C'est ausi très simple. On va utiliser la commande suivante. Il vous suffira de répondre à quelques questions (est-ce un champ de type string, date, integer, ... ?). Pour info STRING 255 correspond à VARCHAR 255 :

php bin/console make:entity

Une fois terminé, il faut une nouvelle fois créer un fichier de migration et créer la/les table(s) avec les deux commandes suivantes :

php bin/console make:migration
php bin/console doctrine:migrations:migrate

Création des CRUD

CRUD ca signifie : Create, Read, Update, Delete autrement dit : Créer, Lire, Mettre à jour, Supprimer
Il s'agit de tous les fichiers utiles au fonctionnement d'un site classique type blog... Ils seront générés "automatiquement", aussi bien au niveau des controller (partie controleur), que des repository (partie modèle), que des templates (partie Vue) :

php bin/console make:crud

Le cache de Symfony

Symfony utilise un système de cache pour les divers environnements de travail (dev, prod). Il peut être important de vider le cache de temps à autres. Ca peut même vous sauvez la vie dans certaines situations :D

php bin/console cache:clear

PS : ca marche aussi avec

php bin/console c:c

La suite au prochain numéro !

Commentaires de l'article 0

Vous devez être connecté(e) pour écrire un commentaire.
Pas encore de compte ? Enregistrez-vous gratuitement.