Symfony8 min

Symfony CLI : la commande qui change tout (cheatsheet)

Par Pierre-Arthur Demengel
SymfonyCLIProductiviteDevTools

La CLI Symfony est l'outil en ligne de commande officiel qui simplifie radicalement le quotidien des developpeurs Symfony. Serveur local, gestion des certificats TLS, verification de securite - cette cheatsheet regroupe toutes les commandes essentielles, classees par usage.

Installation de la CLI

Avant d'utiliser les commandes ci-dessous, installez la CLI sur votre systeme :

# macOS (Homebrew)
brew install symfony-cli/tap/symfony-cli

# Linux (APT)
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
sudo apt install symfony-cli

# Windows (Scoop)
scoop install symfony-cli

# Verification
symfony version

Si vous debutez avec Symfony, notre guide d'installation complet couvre tous les prerequis en detail.

Commandes de creation de projet

Ces commandes servent a initialiser un nouveau projet Symfony. Elles remplacent avantageusement composer create-project en ajoutant des verifications automatiques.

# Creer un projet webapp (Twig, Doctrine, Security...)
symfony new mon-site --webapp

# Creer un projet minimal (skeleton)
symfony new mon-api

# Specifier la version de Symfony
symfony new mon-site --version=7.2

# Creer un projet avec une version LTS
symfony new mon-site --version=lts

# Utiliser un autre template
symfony new mon-site --demo

Le flag --webapp est le plus courant pour les sites web complets. Il installe automatiquement les bundles les plus utilises. Pour savoir quelle version LTS choisir, consultez notre article sur les versions Symfony LTS en 2026.

Serveur local de developpement

Le serveur integre a la CLI est probablement sa fonctionnalite la plus utilisee. Il genere automatiquement un certificat TLS local pour travailler en HTTPS sans configuration.

# Demarrer le serveur (premier plan, avec logs)
symfony serve

# Demarrer en arriere-plan (daemon)
symfony serve -d

# Specifier un port
symfony serve --port=8080

# Specifier la version de PHP
symfony serve --php-version=8.3

# Arreter le serveur daemon
symfony server:stop

# Voir le statut du serveur
symfony server:status

# Consulter les logs du serveur
symfony server:log

# Ouvrir le projet dans le navigateur
symfony open:local

Le serveur detecte automatiquement si votre projet utilise un public/ directory et le configure comme document root. Il gere aussi le routing vers index.php pour les URLs clean de Symfony.

Certificats TLS locaux

Pour que le HTTPS local fonctionne sans alertes du navigateur, la CLI installe une autorite de certification locale :

# Installer l'autorite de certification locale
symfony server:ca:install

# Voir les informations du certificat CA
symfony server:ca:show

# Desinstaller le CA local (rare)
symfony server:ca:uninstall

Cette operation est necessaire une seule fois par machine. Tous vos projets Symfony beneficieront ensuite du HTTPS local automatiquement.

Verification des prerequis et securite

Ces commandes diagnostiques vous evitent de perdre du temps sur des problemes de configuration :

# Verifier que PHP et les extensions requises sont installes
symfony check:requirements

# Auditer les vulnerabilites des dependances
symfony check:security

# Lister les versions PHP disponibles sur le systeme
symfony local:php:list

# Afficher la configuration PHP active
symfony local:php:config

L'audit de securite (check:security) interroge la base de donnees FriendsOfPHP/security-advisories. Integrez-le dans votre CI/CD - une dependance vulnerable ne devrait jamais atteindre la production.

Proxy local et noms de domaine

Le proxy local permet d'acceder a vos projets via des noms de domaine plutot que des ports. C'est particulierement utile quand vous travaillez sur plusieurs projets simultanement.

# Demarrer le proxy
symfony proxy:start

# Attacher un domaine au projet courant
symfony proxy:domain:attach mon-site

# Resultat : https://mon-site.wip accessible dans le navigateur

# Lister les domaines configures
symfony proxy:domain:list

# Detacher un domaine
symfony proxy:domain:detach mon-site

# Arreter le proxy
symfony proxy:stop

# Voir le statut du proxy
symfony proxy:status

Le suffixe par defaut est .wip (Work In Progress). Votre projet devient accessible a https://mon-site.wip - avec TLS fonctionnel. C'est nettement plus lisible que localhost:8000, localhost:8001, etc.

Execution de commandes PHP et console

La CLI Symfony peut servir de wrapper autour de PHP pour garantir que la bonne version est utilisee :

# Executer une commande avec la bonne version de PHP
symfony php -v
symfony php bin/console cache:clear

# Equivalent de "php bin/console" avec la version PHP du projet
symfony console cache:clear
symfony console debug:router
symfony console make:controller

# Executer Composer avec la bonne version de PHP
symfony composer install
symfony composer require doctrine/orm

La commande symfony console est un raccourci pour symfony php bin/console. Elle garantit que c'est la version PHP definie dans .php-version qui est utilisee, pas celle du systeme.

Gestion de la version PHP par projet

Chaque projet peut specifier sa version de PHP via un fichier a la racine :

# Creer le fichier .php-version
echo "8.3" > .php-version

# Verifier quelle version sera utilisee
symfony local:php:list

# La CLI utilisera desormais PHP 8.3 pour ce projet
symfony php -v
# PHP 8.3.x

C'est essentiel quand vous maintenez des projets legacy en PHP 8.1 et de nouveaux projets en PHP 8.3 sur la meme machine.

Variables d'environnement et secrets

# Lister les variables d'environnement du projet
symfony var:export

# Exposer les variables dans le shell courant
eval $(symfony var:export)

# Gestion des secrets (Symfony Secrets)
symfony console secrets:set DATABASE_URL
symfony console secrets:list
symfony console secrets:reveal DATABASE_URL

Commandes cloud (Platform.sh / Upsun)

La CLI integre des commandes pour les plateformes de deploiement compatibles. Ces commandes ne sont utiles que si vous deployez sur Platform.sh ou Upsun :

# Se connecter a la plateforme
symfony cloud:login

# Lister les projets
symfony cloud:project:list

# Deployer
symfony cloud:deploy

# Voir les logs de production
symfony cloud:log

# Ouvrir le tunnel SSH
symfony cloud:tunnel:open

# Se connecter en SSH
symfony cloud:ssh

Pour le deploiement sur vos propres serveurs, notre checklist de deploiement Symfony couvre les configurations Apache, Nginx et Docker.

Commandes utilitaires

# Ouvrir la documentation Symfony dans le navigateur
symfony open:docs

# Voir la version de la CLI
symfony version

# Mettre a jour la CLI (self-update)
symfony self:update

# Afficher l'aide d'une commande
symfony help serve
symfony serve --help

Recapitulatif : les 10 commandes a retenir

Si vous ne devez retenir que l'essentiel, voici les commandes que vous utiliserez au quotidien :

  1. symfony new mon-projet --webapp - creer un projet
  2. symfony serve -d - demarrer le serveur en arriere-plan
  3. symfony server:stop - arreter le serveur
  4. symfony console cache:clear - vider le cache
  5. symfony console debug:router - lister les routes
  6. symfony console make:controller - generer un controller
  7. symfony console make:entity - generer une entite
  8. symfony check:security - audit de securite
  9. symfony check:requirements - verifier les prerequis
  10. symfony local:php:list - voir les versions PHP

La CLI Symfony est un outil de productivite qui s'integre naturellement dans le workflow de tout developpeur PHP. Elle ne remplace pas la ligne de commande Symfony (bin/console), mais la complete avec des fonctionnalites cote infrastructure locale.

Besoin d'aide pour configurer votre environnement de developpement Symfony ou pour lancer un projet ? En tant que developpeur freelance specialise Symfony, base a Metz et Strasbourg, je peux vous accompagner. Consultez mes services ou decouvrez mes tarifs, et contactez-moi pour discuter de votre projet.

Questions fréquentes

13 projets livrésGrand-Est & BelgiqueLighthouse >90Disponible immédiatement

Un projet en tête ?

Discutons de votre site web. Réponse garantie sous 24h.

Ou appelez directement :06 95 41 30 25

WhatsApp
Appeler