Laravelを5.8→6.0にアップデートしただけの話

別案件でLaravelから１ヶ月半ほど離れて戻ってきたところ、Laravel6.0がリリースされていました。
[laravel 6.0 アップグレードガイド](https://readouble.com/laravel/6.0/ja/upgrade.html)

ver5.5以来のLTSということで、つい３ヶ月ほど前にver5.8で作成したプロジェクトも早速6.0にアップグレードすることにしました。

初めてLaravelのバージョンアップ作業を行うので、メモ代わりに作業の流れを書きました。
面倒な感じになるかと思いきや、簡単にバージョンアップできて驚きました。


## とりあえずやってみる
バージョンアップの方法ですが、composer.jsonの `laravel/framework` のバージョンを引き上げて `composer update` するらしいです。
（え、それだけ？）

早速やってみます。
PHPのバージョンも7.2以降が必要とのことなので一緒に修正。

```composer.json
"require": {
    - "php": "^7.1.3",
    - "laravel/framework": "5.8.*",
    + "php": "^7.2",
    + "laravel/framework": "^6.0",
}
```

↓
`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

...以下延々とエラーメッセージ
```

そう簡単にはいかんか(´・ω・｀)

## パッケージの整理
調べてみると、エラーのこの部分が肝のよう。

```
    - Installation request for laravel/framework ^6.0 -> satisfiable by laravel/framework[6.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4].
    - Installation request for laralib/l5scaffold ^1.0 -> satisfiable by laralib/l5scaffold[1.0, 1.0.1, 1.0.10, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9].
```

当プロジェクトではスキャフォールドを行うために[laralib/l5scaffold](https://github.com/laralib/l5scaffold)というパッケージを入れていたのですが、これがver6.0に非対応ということでした。
こちらのパッケージを一旦composer.jsonから削除して再度実行します。

すると今度は

```
    - Installation request for laravel/framework ^6.0 -> satisfiable by laravel/framework[6.x-dev, v6.0.0, v6.0.1, v6.0.2, v6.0.3, v6.0.4].
    - Installation request for laravelcollective/html ^5.8 -> satisfiable by laravelcollective/html[5.8.x-dev, v5.8.0, v5.8.1].
```

[laravelcollective](https://github.com/LaravelCollective/html)で怒られたので修正。
こちらは6.0対応のバージョンが出ていたのでバージョンを `^5.8` から `^6.0` に書き換えました。

再び実行。

```
composer update
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 0 installs, 3 updates, 1 removal
  - Removing laralib/l5scaffold (1.0.10)
  - Updating monolog/monolog (1.25.1 => 2.0.0): Downloading (100%)         
  - Updating laravel/framework (v5.8.35 => v6.0.4): Downloading (100%)         
  - Updating laravelcollective/html (v5.8.1 => v6.0.2): Downloading (100%)         
Writing lock file
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: barryvdh/laravel-debugbar
Discovered Package: beyondcode/laravel-dump-server
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: laravelcollective/html
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Discovered Package: olssonm/l5-very-basic-auth
Package manifest generated successfully.
```

お、通りましたね。
バージョン確認してみましょう。

```
php artisan --version
Laravel Framework 6.0.4
```

そう簡単に…いったわ(・ω・*)

## まとめ
・バージョンアップ自体は非常に簡単
・laravel/framework以外の各パッケージのバージョンもちゃんと確認しようね

という、それだけでした。
ここからテスト走らせるなどしてバージョンアップの影響出ていないか確認していきます。

スキャフォールドのパッケージはアプデ待ちか代替パッケージ探しが必要そうですね(´・ω・｀)