Laravel5.3から5.4にアップデート メモ
初心者の初めてのフレームワークアップデートなのでトンチンカンなことをしてる可能性があります。
ご指摘等ございましたら、是非コメントお願いします。
5.4へアップデート
プロクジェクトのルートディレクトリ
$ php artisan -V
Laravel Framework version 5.3.30
現在、5.3.30です。これを5.4.*に上げていきました。
composer.jsonのrequireの項目を変えます。
"require": {
"laravel/framework": "5.3.*",
"illuminate/radis": "5.3.*"
}
を、
"require": {
"laravel/framework": "5.4.*",
"illuminate/radis": "5.3.*"
}
へ。
$ composer update
を叩きましょう。これでLaravel5.4になるはずです。
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install laravel/framework v5.4.9
- Conclusion: don't install laravel/framework v5.4.8
- Conclusion: don't install laravel/framework v5.4.7
- Conclusion: don't install laravel/framework v5.4.6
- Conclusion: don't install laravel/framework v5.4.5
- Conclusion: don't install laravel/framework v5.4.4
- Conclusion: don't install laravel/framework v5.4.3
- Conclusion: don't install laravel/framework v5.4.2
- Conclusion: don't install laravel/framework v5.4.1
- illuminate/redis v5.3.0 requires illuminate/support 5.3.* -> satisfiable by laravel/framework[v5.3.30], illuminate/support[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- illuminate/redis v5.3.16 requires illuminate/support 5.3.* -> satisfiable by laravel/framework[v5.3.30], illuminate/support[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- illuminate/redis v5.3.23 requires illuminate/support 5.3.* -> satisfiable by laravel/framework[v5.3.30], illuminate/support[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- illuminate/redis v5.3.4 requires illuminate/support 5.3.* -> satisfiable by laravel/framework[v5.3.30], illuminate/support[v5.3.0, v5.3.16, v5.3.23, v5.3.4].
- Can only install one of: laravel/framework[v5.4.0, v5.3.30].
- don't install illuminate/support v5.3.0|don't install laravel/framework v5.4.0
- don't install illuminate/support v5.3.16|don't install laravel/framework v5.4.0
- don't install illuminate/support v5.3.23|don't install laravel/framework v5.4.0
- don't install illuminate/support v5.3.4|don't install laravel/framework v5.4.0
- Installation request for laravel/framework 5.4.* -> satisfiable by laravel/framework[v5.4.0, v5.4.1, v5.4.2, v5.4.3, v5.4.4, v5.4.5, v5.4.6, v5.4.7, v5.4.8, v5.4.9].
- Installation request for illuminate/redis 5.3.* -> satisfiable by illuminate/redis[v5.3.0, v5.3.16, v5.3.23, v5.3.4], laravel/framework[v5.3.30].
ならなかった。
illuminate/radisが対応してないみたいなので5.3から5.4にします。
"require": {
"laravel/framework": "5.4.*",
"illuminate/radis": "5.4.*"
}
もう一度アップデートします。
$ composer update
成功しました。
5.4になっているか確認しましょう。
$ php artisan -V
Laravel Framework 5.4.9
よっしゃ!!
5.4にアップデートしてからやったこと
5.3から色々変わっているみたいです。
Laravel公式ドキュメント 5.4 Upgrade Guide
https://readouble.com/laravel/5.4/en/upgrade.html
Laravel 5.4変更点メモ (qiita)
http://qiita.com/a_yasui/items/2d840ed9f25c1fa92981
とりあえず自分のアプリが動くか試してみました。
ErrorException in bd8da9c618dd865057aa28cddce0ffd60ee405cf.php line 61:
Call to undefined method Illuminate\View\Factory::getFirstLoop()
(View: /home/vagrant/Code/robbin/resources/views/home.blade.php)
動きません。
公式ドキュメントによると、
After upgrading all packages, you should run php artisan view:clear
to avoid Blade errors related to the removal of Illuminate\View\Factory::getFirstLoop().
In addition, you may need to run php artisan route:clear to flush
the route cache.
とのことなので実行します。
$ php artisan view:clear
Compiled views cleared!
とりあえずこれで私のプロジェクトは動くようになりました。
追記
他の環境でアップデートしようとcomposer updateしたところ、こんなエラーが出ました。
PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Call to undefined method Illuminate\Events\Dispatcher::dispatch() in
/home/vagrant/Code/robbin/vendor/laravel/framework/src/Illuminate/Con
sole/Application.php:56
"your app"/bootstrap/cache/compiled.php
を削除したところ動くようになりました。