17/01/2025 • Léo Moille
Mettre à jour une application Symfony
Découvrez comment mettre à jour facilement une application Symfony de la version 6.3 à 6.4.

La mise à jour d'une application Symfony vers une version mineure s'effectue en trois étapes clés :
- Mettre à jour les packages via Composer.
- Adapter et mettre à jour le code source.
- Mettre à jour les recipes Symfony.
1. Mettre à jour les packages via Composer
Supposons que vous souhaitiez passer de la version 6.3.*
à la version 6.4.*
. Commencez par identifier les packages ayant pour nomenclature "symfony/*"
et portant la version 6.3.*
dans votre fichier composer.json
:
{
"...",
"require": {
"symfony/asset": "6.3.*",
"symfony/asset-mapper": "6.3.*",
"..."
},
"..."
}
Mettez ensuite à jour la version en remplaçant 6.3.*
par 6.4.*
:
{
"...",
"require": {
"symfony/asset": "6.4.*",
"symfony/asset-mapper": "6.4.*",
"..."
},
"..."
}
N'oubliez pas également de vérifier la section "extra"
de votre fichier, où se situe une partie spécifiant la version de Symfony à utiliser :
{
"...",
"extra": {
"...",
"symfony": {
"require": "6.3.*"
}
},
"..."
}
Adaptez la valeur de la version à 6.4.*
:
{
"...",
"extra": {
"...",
"symfony": {
"require": "6.4.*"
}
},
"..."
}
Une fois ces changements effectués, exécutez la commande suivante pour appliquer la mise à jour avec Composer :
composer update "symfony/*"
Si vous rencontrez des conflits de dépendances (ce qui peut arriver fréquemment), relancez la commande en autorisant Composer à mettre à jour également les dépendances liées :
composer update "symfony/*" --with-all-dependencies
En cas de problèmes persistants, les causes peuvent être diverses. Quelques exemples :
- Votre version de PHP est trop ancienne (ou, plus rarement, trop récente).
- Une dépendance externe ne prend pas encore en charge la version de Symfony que vous ciblez.
- Un package n'est plus maintenu et ne reçoit plus de mises à jour.
Dans ces cas, il est conseillé de chercher une solution spécifique à votre problème sur le web.
Lorsque votre projet est bien passé de 6.3.*
à 6.4.*
, profitez-en pour aussi mettre à jour les packages restants :
composer update
⚠️ Attention : Si vous utilisez des packages définis sur des branches spécifiques comme "dev-master"
, certaines mises à jour pourraient introduire des incompatibilités rétroactives.
2. Mettre à jour son code
Cette étape peut être plus ou moins rapide selon les changements apportés dans la nouvelle version. Heureusement, Symfony fournit une liste détaillée des modifications pour les différentes versions via des documents d'upgrade.
Consultez ces liens pour les versions spécifiques :
La liste complète des documents est disponible sur le dépôt officiel de Symfony.
Prenez le temps de parcourir ces documents afin d'adapter votre code aux changements introduits dans la nouvelle version.
3. Mettre à jour les recipes
Une dernière étape avant de finaliser la mise à jour de votre projet ! Pour vérifier les recipes qui nécessitent une mise à jour, exécutez la commande suivante :
composer recipes:update
Une liste numérotée apparaîtra. Vous pourrez ensuite sélectionner le numéro de la recipe à mettre à jour et suivre les instructions. La mise à jour se déroule généralement sans problème, mais il arrive que certaines recipes modifient des fichiers que vous avez personnalisés. Dans ce cas, un conflit de merge peut survenir.
Corrigez le conflit manuellement, puis effectuez un commit du changement.
⚠️ Note : Vous ne pourrez pas mettre à jour une autre recipe tant que vous n'aurez pas créé un commit pour la précédente mise à jour.
Pour conclure
Mettre à jour une application Symfony vers une version mineure peut sembler intimidant à première vue, mais en suivant ces trois étapes – mise à jour via Composer, adaptation du code, et mise à jour des recipes – cela devient un processus clair et structuré.
Ces mises à jour régulières sont essentielles pour profiter des dernières fonctionnalités, corriger des failles de sécurité, et garantir la pérennité de vos projets Symfony.
Si vous rencontrez des difficultés spécifiques ou souhaitez approfondir certains aspects, n’hésitez pas à consulter la documentation Symfony ou à échanger avec la communauté.
Et maintenant, à vous de jouer : maintenez votre application à jour et profitez au maximum de tout ce que Symfony a à offrir !
Sources