CheatSheet Symfony6
Si comme moi vous avez tendance à parfois mélanger les commandes, je vous propose ma CheatSheet dédiée à Symfony 6. Vous y retrouverez toutes les commandes les plus couramment utilisées. N’hésitez pas à la mettre en favoris !
Pré-requis
Php et ses extensions
Sans PHP, Symfony ne pourra évidemment pas fonctionner.
Personnellement, sous windows, je ne m’ennuie pas. J’installe Xampp même si au final je n’utiliserai qu’une partie de ce qu’il propose. Et en plus, ça me permet d’avoir MySQL installé par la même occasion.
Par contre, on n'oublie pas d’aller activer les extensions php suivantes:
- extension=intl
Composer
Pour gérer nos dépendances Composer est essentiel et facilement utilisable sous windows via l’installeur trouvable à cette adresse: https://getcomposer.org/download/
Scoop
Symfony s’appuie sur Scoop. On va donc commencer par l’installer en passant par PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
Git
Essentiel mais si vous ne l’avez pas encore installé, on va profiter de Scoop pour l’installer:
scoop install git
Symfony CLI
Dernière étape et pas des moindres, installer Symfony CLI.
scoop install symfony-cli
Par sécurité, on peut vérifier si tout est en ordre.
symfony check:requirements
Création du projet
Pour un projet classique
symfony new nomduproject --webapp
Pour une version allégée style API (moins de dépendances)
symfony new nomduproject
Si vous avez besoin de spécifier la version
symfony new nomduproject --webapp--version=”6.1”
Ajout des dépendances
Je vous propose ici une liste de dépendances qui pour moi sont essentielles.
Mais il s’agit bien entendu d’un point de vue personnel et chaque projet a ses spécificités.
Utilitaire Symfony pour la création d’entity, controller, form,...
composer require symfony/maker-bundle --dev;
Outil facilitant le debuggage
composer require symfony/error-handler --dev;
Rector (utilitaire php)
composer require rector/rector --dev;
ORM et Doctrine
composer require orm;
Gestion des logs
composer require symfony/monolog-bundle;
Gestion utilisateur
composer require symfony/security-bundle;
Système de templates basé sur TWIG
composer require twig;
Composant améliorant l’envoi de mail
composer require symfony/mailer;
Gestion de la traduction
composer require symfony/translation;
Utilitaire pour l'intégration des assets dans les templates
composer require symfony/asset;
Amélioration de la gestion des formulaires
composer require symfony/form;
Composant permettant facilement l’ajout de pager
composer require knplabs/knp-paginator-bundle;
Permet de se passer de l’extension intl de php
composer require symfony/intl;
Commande utile
Vider le cache
symfony console cache:clear
Gestion du serveur local
Symfony CLI fournit tout le nécessaire pour faire tourner un serveur web local et son proxy.
Pour plus d’infos, je vous renvoie ici: Comment faire tourner son serveur Symfony local avec proxy.
Serveur proxy
Lancer le serveur en arrière-plan
symfony proxy:start
Lancer le serveur en avant-plan
symfony proxy:start -f
Arrêter le serveur
symfony proxy:stop
Ajouter un domaine local
symfony proxy:domain:attach nomdedomainelocalsansextension
Ajouter un domaine local
symfony proxy:domain:detach nomdedomainelocalsansextension
Serveur web
Lancer le serveur en avant-plan
symfony server:start
Lancer le serveur en arrière-plan
symfony server:start -d
Stopper serveur
symfony server:stop
Accéder au serveur
symfony open:local
Consulter les logs dans le cas d’une utilisation en arrière-plan
symfony server:log
Activer le TLS
symfony server:ca:install
Entity
Génération / Edition
symfony console make:entity MyEntity
Types de champs possibles
Main Types
- string
- text
- boolean
- integer (or smallint, bigint)
- float
Relationships/Associations
- relation (Lance un assistant)
- ManyToOne
- OneToMany
- ManyToMany
- OneToOne
Array/Object Types
- array (or simple_array)
- json
- object
- binary
- blob
Date/Time Types
- datetime (or datetime_immutable)
- datetimetz (or datetimetz_immutable)
- date (or date_immutable)
- time (or time_immutable)
- dateinterval
Other Types
- ascii_string
- decimal
- guid
Regénération des getters/setters
symfony console make:entity --regenerate App
Controller
Génération
symfony console make:controller ConferenceController
Form
Génération
symfony console make:form MyEntityType MyEntity
Translation
Lister les traductions pouvant être générées
symfony console translation:extract --dump-messages fr
Extraire les traductions
symfony console translation:extract --force fr
Extraire les traductions en format .yaml
symfony console translation:extract --force --format=yaml
Extraire les traductions en format .yaml et en utilisant une arborescence à 100 niveaux
symfony console translation:extract --force --format=yaml --as-tree=100 fr
Base de données
Génère le fichier de migration
symfony console make:migration
Mise à jour de la db
symfony console doctrine:migrations:migrate
User
Génère l’entity User
symfony console make:user
Générer mot de passe hashé
symfony console security:hash-password