はじめに
PHPのフレームワークを勉強しようと、Laravelを触っていたときの話。
どうやらバージョン毎に使えるコード・使えないコードがあるらしい...
そんなわけで初めてのLaravelバージョンアップ!
必要なファイルがインストールされていなかったり、エラーが発生したり...
それでも数十分で解決できて、とても簡単でした。
とりあえずやってみる
バージョンアップには、どうやらcomposer.jsonを編集する必要があるらしい。
しかし...それらしきファイルがない!
Composerのインストール
Composerをインストールしてみたを参考にインストールしました。
composer.jsonを編集
調べてみると、バージョンアップは、composer.jsonでバージョンを引き上げて composer update するだけみたい。
Laravelを5.8→6.0にアップデートしただけの話を参考にやってみます。
エラー その1
5.x→7.xへの大幅アップデートのため、ひたすらエラーが流れていきます。
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 v7.24.0
- Conclusion: don't install laravel/framework v7.23.2
...中略
- Installation request for laravel/framework ^7.0 -> satisfiable by laravel/framework[v7.0.0, v7.0.1...以下略].
- Installation request for laravel/tinker ^1.0 -> satisfiable by laravel/tinker[v1.0.0, v1.0.1...以下略].
どうやら、最後の方に出るエラーが肝のようです。
- Installation request for laravel/framework ^7.0 -> satisfiable by laravel/framework[v7.0.0, v7.0.1...以下略].
- Installation request for laravel/tinker ^1.0 -> satisfiable by laravel/tinker[v1.0.0, v1.0.1...以下略].
composer.jsonでlaravel/tinkerのバージョンを^2.0に変更。
無事アップデートが始まりました。
エラー その2
しかし、今度は別のエラーが発生
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255を参考に対処していきます。
エラー その3
上記エラーは解決しましたが、また別のエラー発生
In cache.php line 91:
Call to undefined function str_slug()
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
Laravel6へのアップグレードで Call to undefined function str_slug()を参考に進めます。
composer require laravel/helpers
を実行したところ、別のエラーメッセージが...
In Auth.php line 56:
In order to use the Auth::routes() method, please install the laravel/ui pa
ckage.
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
【Laravel6系】php artisan make:authが使えない問題の対処法を参考に進めていきます。
composer require laravel/ui
を実行し、無事エラーが消えました!
php artisan --version
Laravel Framework 7.24.0
まとめ
初めてのバージョンアップでしたが、とても簡単にできました!
composer.jsonで各パッケージのバージョンを変えて、あとはエラーメッセージを基に対処していくだけでした。