CheatSheet Symfony6
Vendredi 17 Fevrier 2023 08:30

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

https://symfony.com/doc/current/translation.html

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

https://symfony.com/doc/current/security.html