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

Laravel5.6へアップグレード

More than 1 year has passed since last update.

結局大きな新機能はないまま5.6リリース。その分更新作業もすぐ終わるけど慌てなくていい。

まず5.6にするか決める

5.5は長期サポート版なのでもうしばらく使い続けてもいい。PHP7.1が用意できないとか半年ごとのリリースペースが早すぎて着いて行けねぇよって場合は留まるのもあり。

5.1の頃と比べると5.5で困ることもないだろうし。

5.6にしたらその後もバージョンアップを追い続けることになる。

準備

これ見ればいいだけなので書くことはあまりない。

composer.json

色々メジャーバージョンが上がってるので書き換える。

書かれてないけど昔からのプロジェクトではまだ使ってるかもしれないBrowserKit Testingは4.0が出てない。
https://github.com/laravel/browser-kit-testing

config

hashing.phplogging.php をコピーしてくる。
https://github.com/laravel/laravel/tree/master/config

Trusted Proxies

前はarrayだったけど指定方法が変わった。

protected $headers = Request::HEADER_X_FORWARDED_ALL;

ページネーション

これなー。なるべく少ない手間で更新できる案があったけど上手く説明できずに失敗した…。

Bootstrap 4

今回はLaravelよりもBootstrap3から4への移行が一番大変だから移行するつもりの人は覚悟したほうがいい…。

5.5でこう設定して使ってた場合は消せる。

Paginator::defaultView('pagination::bootstrap-4');
Paginator::defaultSimpleView('pagination::simple-bootstrap-4');

4初期から使っててカスタムページネーションで対応してる場合も消せる。

Bootstrap 3

こう設定するように書いてるけど実はなくても影響は少ない。Bootstrap3から4はclassが少し増えただけなので3で自分でclass作ってなければ4用のページネーションで問題なく表示できる。

Paginator::useBootstrapThree();

他のCSS + カスタムページネーション

問題はここ。そのままだとぶっ壊れるはず。
カスタムページネーションは views/vendor/pagination/default.blade.php に置いて使う。default.blade.php の名前に依存している。これを5.6でbootstrap4をデフォルトにするために安易に bootstrap-4.blade.php に変更しただけだからカスタムページネーションに影響が出る。

対応としてはdefaultViewで設定。

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Pagination\Paginator;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Paginator::defaultView('vendor.pagination.default');
    }

最近はBootstrap以外を使うことが多いから全部でこの設定することになって面倒…。
解決案としては default.blade.php をBootstrap4用にして3用には bootstrap-3.blade.php を作る。
これが一番影響少ないはず。Bootstrap 3を厳密に使いたい人以外は何もしなくていい。
5.6はBootstrap 4がデフォルトなので優先度は4>=カスタムページネーション>3。

アップグレードガイドにも書いてないくらいなので全く考慮してない…。

終わり

無理に更新する必要はなさそう。

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