Formation PUB030 : Laravel, 2019 Travailler avec Laravel

1.12 Mise à jour de Laravel


Quand doit-on effectuer une mise à jour ?

Lorsqu'une nouvelle version d'un logiciel est disponible, il y a deux écoles de pensées :

  • Ceux qui sont pressés de passer à la nouvelle version afin de bénéficier rapidement des nouvelles fonctionnalités et des problèmes réglés;
  • Ceux qui attendent le moment opportun pour passer à la nouvelle version afin de ne pas briser ce qui fonctionne déjà (peu importe le logiciel que vous mettez à jour, les problèmes de compatibilité sont fréquents).

    Ce moment peut être :

    • la sortie de la prochaine version majeure
    • la sortie d'une version qui règle un problème de sécurité
    • la version qu'ils utilisent actuellement n'est plus supportée

Peu importe dans quel camp vous vous trouvez, il vous faudra probablement un jour passer à une nouvelle version de Laravel. Sachez que pour chaque nouvelle version, vous avez accès à une liste complète des ajustements à apporter à votre code : https://laravel.com/docs/master/upgrade.

Comment effectuer une mise à jour de Laravel ?

Pour effectuer une mise à jour :

  • D'abord, prenez connaissance des notes de mise à jour (voir lien plus haut). Si votre mise à jour traverse plus d'une version (ex : vous passez de Laravel 5.4 à 5.7), prenez soin de lire les notes de mise à jour de chaque version : 5.4 à 5.5, de 5.5 à 5.6 et de 5.6 à 5.7.
  • Ensuite, prenez une copie de sécurité complète de votre projet.
  • Vous pouvez maintenant commencer la mise à jour. Ouvrez votre fichier composer.json et entrez le numéro de version Laravel à utiliser.
    Fichier composer.json

    ...

    "require": {

     

        "laravel/framework": "5.7.*",

        ...

    },

    ...

  • Vérifiez la compatibilité de chacun des paquets que vous utilisez. Vous trouverez les notes de compatibilité sur le site https://packagist.org/. Au besoin, mettez à jour le numéro de version à utiliser pour un paquet, également dans le fichier composer.json.
  • Sous vagrant.ssh, dans le dossier de votre application, lancez la commande de mise à jour.
    Console Vagrant SSH

    composer update

  • Si vous avez mal configuré un numéro de version, composer refusera l'installation et vous indiquera le paquet en problème.

    Ex :

    Résultat à l'écran

    vagrant@homestead:~/code/monprojet$ composer update

    Loading composer repositories with package information

    Updating dependencies (including require-dev)

    Your requirements could not be resolved to an installable set of packages.

     

      Problem 1

        - Conclusion: don't install laravel/framework v5.7.9

        - Conclusion: don't install laravel/framework v5.7.8

        - Conclusion: don't install laravel/framework v5.7.7

        - Conclusion: don't install laravel/framework v5.7.6

        - Conclusion: don't install laravel/framework v5.7.5

        - Conclusion: don't install laravel/framework v5.7.4

        - Conclusion: don't install laravel/framework v5.7.3

        - Conclusion: don't install laravel/framework v5.7.2

        - Conclusion: don't install laravel/framework v5.7.1

        - spatie/laravel-backup 4.17.0 requires illuminate/support ~5.3.28|~5.4.0 -> satisfiable by laravel/framework[v5.4.24], illuminate/support[v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.36, v5.4.9].

    Consultez la documentation du paquet en question (sur packagist.org) puis mettez à jour son numéro de version dans le fichier composer.json avant de relancer le composer update.
  • Finalement, vous devrez probablement ajuster votre code pour remplacer les fonctionnalités modifiées, tel que spécifié dans le guide de mise à jour. Par exemple, sous Laravel 5.7, il n'est plus possible d'utiliser l'opérateur or dans Blade.

    Ex :

    PHP
    // Laravel 5.6...
    {{ $foo or 'default' }}
    
    // Laravel 5.7...
    {{ $foo ?? 'default' }}

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre