PHP 5.6 → 7.3, Laravel5.4から5.7にアップグレードしたときのまとめ

Laravelバージョンアップ時に行ったことなどのまとめをします。

ぼくが行ったのは以下のphpとLaravelのバージョンアップです。

php 5.6 → 7.3
Laravel 5.4 → 5.7

バージョンアップの基本手順

基本的なバージョンアップ手順としては

composer.jsonのphp,Laravelのバージョンアップさせる
composer update実行

該当するLaravelアップグレードガイドを見てcomposer.jsonの書き換えを行いながらバージョンアップをしていきます。このとき、5.4→5.5, 5.5→5.6といったように順番に上げていきます。

Laravel5.5 アップグレードガイド

バージョンアップの注意点

パッケージの依存関係エラー

composer update実行時に以下のようなエラーが出るときがあります。

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

  Problem 1
    - Conclusion: don't install laravel/framework v6.0.4
    - Conclusion: don't install laravel/framework v6.0.3
    - Conclusion: don't install laravel/framework v6.0.2
    - Conclusion: don't install laravel/framework v6.0.1
    - Conclusion: don't install laravel/framework v6.0.0

使用しているパッケージによってはphp, Laravelをバージョンアップをしたことによるエラーが発生することがあります。
使用しているパッケージのバージョンをPackagistで見ながらエラーを起こしているパッケージのバージョンアップも行ってください

作業中はlaravel debugbarを削除する

バージョンアップ時にlaravel debugbarの情報をcomposer.jsonとconfig/app.phpから削除しておきましょう。

"require-dev": {
        "barryvdh/laravel-debugbar": "^3.0", ←削除
    },
  'providers' => [

        /*
         * Application Service Providers...
         */
        ~中略~
        Barryvdh\Debugbar\ServiceProvider::class, ← 削除
    ],

  'aliases' => [

        ~中略~
        'Debugbar' => Barryvdh\Debugbar\Facade::class,← 削除
    ],

`

debugbarがあると謎のエラーが発生してバグります。
ぼくはこれで2時間苦しみました。

バージョンアップ後の作業

動作確認

アプリ全体の動作確認を行います。php, Laravelのバージョンを上げたことによるエラーが発生すると思うのでエラーをつぶしておきましょう。
Laravelは非推奨にしてから廃止するのではなく、急に廃止になってたりするので結構バグが出たりします。

PHPCompatibilityでphpのバージョンアップで非互換になった関数を見つける

静的解析ツールPHPCompatibilityを使用することでphpのバージョンが上がって使えなくなった関数の修正を行います。
例えばcount関数は7.2からnullが引数に入ると警告が出るようになったのでその修正などを行います。超便利です。

以上、バージョンアップで行ったことでした。
初めてでしたが意外と簡単で楽しかったです。
依存関係で死ぬこともあるので複数人でやるのがいいかもです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA