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

Pense-bêtes

  • Démarrer un projet Symfony (de zéro)
  • Récupérer un projet (clone)
  • Travailler sur un projet
  • Créer une page
  • Commandes composer
  • Dé-buguer
  • Générer des entités et des migrations
  • Doctrine
  • Formulaires
  • Bundles utiles

Démarrer un projet Symfony (de zéro)

  • symfony new --webapp nomDeVotreProjet
  • cd nomDeVotreProjet
  • git remote add origin UrlVersLeRepository
  • git branch -M main
  • git push -u origin main

Récupérer un projet (clone)

  • git clone UrlVersLeRepository chemin/vers/le/repository (exemple : git clone git@github.com:Dreeckan/symfony-computer.git symfony-computer)
  • cd chemin/vers/le/repository (exemple : cd symfony-computer)
  • composer install (pour mettre à jour le contenu du dossier vendor et récupérer les dépendances, telles que Symfony)
  • Vous êtes prêts à travailler

S'il a déjà une BdD initialisée (avec des migrations), il faut aussi les appliquer (pour mettre à jour votre BdD) :

  • php bin/console doctrine:database:create (si vous n'avez pas déjà la BdD)
  • php bin/console doctrine:migrations:migrate -n

Si le projet a des Fixtures, les appliquer avec :

  • php bin/console doctrine:fixtures:load -n

Travailler sur un projet

  • Ouvrir Wamp/Mamp pour la BdD et PhpMyAdmin (ou les avoir installés)
  • Ouvrir un terminal (dans votre IDE par exemple)
  • symfony serve qui vous dira sur quelle adresse vous connecter pour tester votre site

Créer une page

  • Créer un controller ou une action dans un controller existant
  • Ajouter/modifier la ou les routes liées à votre action
  • Adapter le contenu de l'action (s'assurer que les noms sont cohérents)
  • Créer/modifier le template associé, s'il y en a un.

Commandes composer

  • composer install pour récupérer les dépendances définies dans le .lock
  • composer update pour mettre à jour les dépendances et le .lock
  • composer require nomDuPaquet pour installer une dépendance (suivre la doc de la dépendance)

Dé-buguer

  • dump ou dd dans un fichier PHP
  • dump dans un Twig
  • php bin/console montre l'intégralité des commandes dont dispose Symfony (dont plusieurs commencent par debug: ou lint:)

Générer des entités et des migrations

  • Pour générer/modifier une entité : php bin/console make:entity
  • Répéter autant que nécessaire
  • Générer une migration php bin/console make:migration
  • Appliquer les migrations php bin/console doctrine:migrations:migrate -n
  • Votre BdD est à jour

Doctrine

  • Pour faire des requêtes SELECT, utiliser un repository (lié à une table/entité)
  • Pour les UPDATE / DELETE, utiliser l'Entity Manager (EntityManagerInterface)

Formulaires

  • Souvent lié à une classe / entité
  • Un FormType pour gérer les différents champs, leurs types et leurs options
  • Des assertions directement dans la classe / entité pour la validation
  • Dans un controller, utiliser $this->createForm() pour générer un formulaire (objet de traitement), puis utiliser ->createView() sur ce formulaire pour le transmettre à une vue Twig (objet FormView)
  • Afficher le formulaire et ses différentes lignes avec form_start, form_end et form_row

Bundles utiles

  • VichUploader pour utiliser des images liées à vos entités
  • EasyAdmin pour générer un espace d'administration pour vos entités
  • Doctrine extensions pour ajouter des comportements à vos entités (Timestampable, Sluggable, etc.)
  • Knp Paginator pour gérer la pagination de vos listes
  • Knp Menu pour gérer vos menus sous forme d'objets propres
  • ApiPlatform vous permet de créer une API rapidement dans votre Symfony, à partir de vos entités.
Dernières mise à jour :
Prev
API Platform
Next
Symfony au quotidien