Help us understand the problem. What is going on with this article?

Laravel5.3から5.4にあげてみた

More than 3 years have passed since last update.

Laravel5.3から5.4にアップデート メモ

初心者の初めてのフレームワークアップデートなのでトンチンカンなことをしてる可能性があります。
ご指摘等ございましたら、是非コメントお願いします。

5.4へアップデート

プロクジェクトのルートディレクトリ

$ php artisan -V
Laravel Framework version 5.3.30

現在、5.3.30です。これを5.4.*に上げていきました。
composer.jsonのrequireの項目を変えます。

composer.json

"require": {
    "laravel/framework": "5.3.*",
    "illuminate/radis": "5.3.*"
}

を、

composer.json

"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にします。

composer.json

"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

を削除したところ動くようになりました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした