Cours de Rémi JarjatCours de Rémi Jarjat
  • Liste des cours
  • Culture numérique
  • Git
    • Terminologie
    • Avant de commencer
    • Créer un dépôt (local)
    • Enregistrer des changements
    • Des branches
    • Mise en commun du travail
    • Annuler des changements
    • Réécrire l'historique
    • Des outils pour se simplifier Git
    • Exercices
    • Exemples pratiques
  • Linux
    • Installation
    • Historique
    • Rangement des fichiers
    • Les processus
    • Commandes de base
    • Commandes avancées
    • /linux/6-other-technologies.html
    • Exercices
    • Correction des exercices
  • PHP
    • Environnement de travail
    • Bases du PHP
    • Tests et boucles
    • Procédures et fonctions
    • Interagir avec l'utilisateur
    • La temporisation de sortie
    • PHP Doc et PSR
    • PHP Orienté objet
    • Héritage et objets
    • Factorisation
    • Manipuler la BdD avec PDO (PHP Data Object)
    • Architecture MVC
    • Webservices REST
    • Exercices - Bases
    • Exercices - Séparer en plusieurs fichiers
    • Exercices - POST et SESSION
    • Exercices - Panier et validation
    • Exercices - Objets
    • Exercices - BdD avec PDO
    • Projet - montage d'ordinateurs
    • Projet - Personnages de Jeux de Rôle
  • Symfony
    • Installer Symfony et son environnement de travail
    • Structure et utilisation d'un projet
    • Le routing
    • Les controllers
    • Twig
    • Les services et l'injection de dépendances
    • Doctrine et la BdD
    • Formulaires
    • Les traductions
    • Event listeners/subscribers
    • Connexion et sécurisation
    • Bundles
    • Easy Admin Bundle
    • API Platform
    • Pense-bêtes
    • Symfony au quotidien
    • Travailler avec Docker
    • Projet : annonces de SPA / éleveurs
    • Exercices
  • Javascript
    • Les bases du langage
    • Manipulation logique
    • Le DOM
    • JQuery
    • Ajax
    • Programmation orientée objet
    • Webpack
    • Outils utiles
    • Révisions
  • Serveur Lamp
  • Déploiement
    • Des outils et manières de faire
    • Déploiement par FTP
    • Wordpress
    • Intégrer Git dans le processus
    • GitHub Pages pour déployer facilement
    • Symfony et Angular
  • Docker
  • Intégration continue
  • Sécurité informatique

Symfony au quotidien

  • Que faire devant un bug ?
  • Créer un nouveau projet
  • Git et les projets Symfony
  • Démarrer le serveur Symfony au démarrage
    • En cas de soucis
    • Processus de travail en groupe

Que faire devant un bug ?

Créer un nouveau projet

Dans un terminal (Powershell par exemple, sous Windows), aller dans le dossier où vous voulez créer votre projet et lancer la commande :

  symfony new --webapp my_project

Remplacer my_project par le nom de votre projet. Vous aurez alors un dossier my_project, que vous pouvez ouvrir dans votre IDE.

Git et les projets Symfony

Par défaut, le programme en ligne de commande de Symfony crée un projet avec un repository (local uniquement) Git. Vous pouvez donc le lier à un projet sur Github, Gitlab, Bitbucket ou autre.

git remote add origin urlDeVotreRepository
git push --all origin

Noter également la présence d'un fichier .gitignore à la racine du projet. Il pourra servir si vous voulez éviter de versionner certains fichiers. Si vous utilisez PHPStorm, je vous recommande de toujours ajouter le dossier .idea à votre fichier .gitignore (c'est un dossier de PHPStorm qui retient vos recherches, certains éléments de configuration locale, etc.).

Démarrer le serveur Symfony au démarrage

Après avoir ouvert un projet Symfony dans votre IDE, faites quelques étapes simples et vous êtes prêts à travailler.

  • Ouvrir un terminal (Sur PHPStorm : cliquer sur terminal en bas de la fenêtre, sur VSCode, dans le menu du haut, cliquer sur Terminal > New Terminal ou "tirer" le terminal depuis le bas de l'écran)
  • Lancer la commande symfony serve

Vous pouvez la laisser tourner en tâche de fond (et y revenir de temps en temps si vous avez des erreurs) et pour utiliser la ligne de commande, vous pouvez ouvrir un nouveau terminal (avec les deux IDE, il y a un bouton +). Et vous pouvez utiliser votre site à l'adresse indiquée par le serveur (en général http://127.0.0.1:8000 ou https://127.0.0.1:8000).

Pour utiliser un nom de domaine, ajouter dans le fichier /etc/hosts (Linux et Mac) ou C:\windows\system32\drivers\etc\hosts sous Windows :

127.0.0.1       www.test.test

et votre site sera accessible sur www.test.test:8000

En cas de soucis

Si votre site local n'est pas accessible (ni sur http://127.0.0.1:8000 ou https://127.0.0.1:8000), vérifiez :

  • que vous avez lancé votre serveur dans le bon dossier (la racine de votre projet Symfony)
  • qu'il n'y a pas (trop) d'erreurs lors du lancement de la commande symfony serve
  • l'url sur laquelle le serveur doit répondre (ce serveur permet également d'avoir plusieurs serveurs en parallèle, chacun aura son propre port)

Si vous avez vérifié tout ça, essayer de redémarrer le serveur :

  • symfony server:stop pour l'arrêter
  • symfony serve pour le relancer

Processus de travail en groupe

Au quotidien, je travaille sur des tickets, afin de savoir les tâches à effectuer.

Quand je commence à travailler sur un nouveau ticket,

  • Je marque le ticket comme "en cours"
  • Je crée une branche contenant le numéro et le but du ticket (ex : 42-connexion-utilisateur)

Lorsque je crée des commits, j'inclus le numéro de ticket dans le message de commit (ex : 42 - Création de l'entité User)

Je push quand je le souhaite, la fonctionnalité terminée ou non.

Une fois la fonctionnalité terminée, je crée une PR, que je m'assigne, et je demande à mes collègues de la relire (je peux les ajouter en tant que reviewers).

Si la branche principale a été modifiée entre temps ou si des conflits sont indiqués par GitHub, je mets à jour ma branche :

  • Je mets à jour la branche principale git checkout main et git pull
  • Je retourne sur ma branche git checkout -
  • Je rebase ma branche sur la branche principale git rebase main

Si des conflits apparaissent pendant le rebase :

  • Je les vois avec git status, ce sont les fichiers en rouge modifié des deux côtés/both modified
  • Je les corrige dans mon IDE
  • Je signale à git que les conflits sont corrigés git add nomDuFichier
  • Je continue le rebase (je passe au commit suivant) git rebase --continue

Une fois le rebase fait, je push le nouvel historique git push --force

⚠️ Vérifiez bien que vous n'avez rien cassé avant de push en force.

J'attends que mes collègues aient relu et validé ma PR. C'est en général le moment pour moi de relire les PR de mes collègues ou commencer un nouveau ticket.

⚠️ Quand vous souhaitez fusionner des branches, n'hésitez pas à le faire en groupe, pour gérer les conflits ensemble.

Dernières mise à jour :
Prev
Pense-bêtes
Next
Travailler avec Docker