Comment mettre à jour Laravel
Published: 2022-08-08 11:44:00

**_Cet article a été écrit à l'origine pour [Larabiz](https://larabiz.fr), qui est une communauté francophone de développeurs Laravel._**

## Quand mettre à jour un projet Laravel ?

Sachez que **mettre un jour un projet Laravel n'est pas toujours utile**. **Tout dépend du contexte**. Dans le cas où il s'agit d'un petit site ne générant pas de revenus et n'ayant pas beaucoup d'utilisateurs, vous pouvez vous épagner des efforts. Cela n'en vaut pas la peine.

En revanche, si vous avez la charge d'un gros projet générant des revenus et ayant une base d'utilisateurs conséquente, alors vous pouvez trancher de cette manière :

- Recevez-vous encore des mises à jour de sécurité ? Alors vous n'êtes pas obligés d'aller plus loin. Comment en être sûr ? Voici [un petit site](https://laravelversions.com/fr) très pratique pour ça ;
- Vous ne recevez plus de mises à jour de sécurité et les packages tiers commencent à délaisser votre version de Laravel ? Alors il va sérieusement falloir penser à se lancer dans l'aventure.

Ci-dessous, je vous donne (dans les grandes lignes) la marche à suivre.

## Attendez le support des packages tiers

Quel projet basé sur Laravel n'utilise pas de packages tiers ? Ils nous permettent de livrer plus vite en nous faisant gagner un temps de développement considérable.  
Ceci étant dit, toutes ces merveilles sont open source et 99% des mainteneurs travaillent gratuitement. Il n'y a donc aucune raison pour eux d'être réactifs à chaque nouvelle version de Laravel.  
Si vous êtes assez chevronnés, **vous pouvez temporairement forker le code** en espérant que vous n'oublierez jamais de re-basculer sur la source originale.  
**Autrement, prenez votre mal en patience**.

C'est la première étape, quelle que soit la méthode avec laquelle vous continuerez.

## Mise à jour manuelle

Une fois que vos packages tiers sont à jour, **rendez-vous dans l'[upgrade guide](https://laravel.com/docs/upgrade)** de Laravel. De là, **suivez les instructions**. (Pour rappel, elles sont différentes pour chaque version.)

Dans le cas où vous n'avez qu'un seul site à mettre à jour, cela ne devrait pas vous poser trop de problèmes. En partant du principe que vous connaissez bien la base de code ou que vous avez des tests automatisés, vous devriez pouvoir corriger les erreurs engendrées par les breaking changes sans trop de difficultés.  
Sinon, cela peut rapidement devenir une tâche chronophage et pénible. Heureusement, il existe une solution pour ça.

## Mise à jour automatisée grâce à Laravel Shift

Le principe de [Laravel Shift](https://laravelshift.com) est simple :

1. Identifiez-vous avec (par exemple) votre compte GitHub où est hébergé le dépôt Git de votre projet ;
2. Indiquez à Laravel Shift que vous souhaitez mettre à jour un projet en particulier ;
3. Laissez la moulinette tourner et vous recevrez une Pull Request après quelques minutes d'attente vous indiquant précisément ce qui a été fait et reste à faire (lorsque Shift n'est pas sûr de lui, il sera prudent et demandera votre intervention).
4. Appréciez l'efficacité du service et allez donc profiter du temps gagné pour prendre un bon bol d'air frais.

Étant donné que ce service s'adresse à des professionnels, je trouve les prix des shifts absolument dérisoires. De Laravel 8 à 9, comptez ~19€ par projet. Comparés aux quelques centaines ou milliers d'euros que vous coûterait un développeur en chair et en os, c'est donné.

J'ai personnellement eu l'occasion d'utiliser ce service avec succès plusieurs fois dans le cadre de mon travail et je le recommande à quiconque essayerait de gagner du temps.

(Je suis au regret de vous informer que cet article n'est malheureusement pas sponsorisé !)

## Conclusion

Laravel est un framework PHP, pas un CMS clé en main comme WordPress. Il a été conçu pour les développeurs souhaitant concevoir des applications web poussées avec un certain niveau de customisation. Cela requiert donc des efforts supplémentaires pour le maintenir à jour, surtout dans le cas où votre projet est âgé, non-testé et a beaucoup de dépendances.

Heureusement, l'initiative de certains développeurs comme Jason McCreary avec Laravel Shift nous sauvent la vie.