Pense-bêtes
Démarrer un projet Symfony (de zéro)
symfony new --webapp nomDeVotreProjetcd nomDeVotreProjetgit remote add origin UrlVersLeRepositorygit branch -M maingit 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 dossiervendoret 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 servequi 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 installpour récupérer les dépendances définies dans le.lockcomposer updatepour mettre à jour les dépendances et le.lockcomposer require nomDuPaquetpour installer une dépendance (suivre la doc de la dépendance)
Dé-buguer
dumpoudddans un fichier PHPdumpdans un Twigphp bin/consolemontre l'intégralité des commandes dont dispose Symfony (dont plusieurs commencent pardebug:oulint:)
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
FormTypepour 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 (objetFormView) - Afficher le formulaire et ses différentes lignes avec
form_start,form_endetform_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.
