Laravel8へバージョンアップ:全14個の変更点と新機能まとめ

Laravelバージョンアップ・ニュース

Laravel8が2020年9月8日にリリースされました。

Laravel7との違い、便利な新機能情報、旧バージョンのサポートなど、まとめました。

下記の公式ブログに書かれた項目はすべて網羅しております。

実体験レポートも掲載しておりますので、Laravelユーザーの方、使ってみようかなと思っている方は、参考にしてください。

Laravel8の新機能

公式ファイルに書かれていたアップデート項目は、下記の通りです。

私の目線ですが、影響が多きそうな項目にだけ★をつけておきました。

すべてチェックするのが面倒な場合には、部分だけご確認ください。

  • Laravel Jetstream :新たな認証機能追加
  • Models Directory :モデルファイルの場所変更
  • Models Factory Classes :ダミーデータ作成がより便利に
  • Migration Squashing : 不要なマイグレーションファイルの処理
  • Job Batching :ジョブのバッチ機能追加
  • Rate Limitingの改善 :アクセス制限などが便利に
  • Improved Maintenance Mode :メンテナンスモード改良
  • Closure Dispatch / Chain :失敗したときの処理
  • Dynamic Blade Components :コンポーネントを便利に指定
  • Event Listener Improvements :イベントリスナー処理の改良
  • Time Testing Helpers :新たな時間変更の関数が利用可能に
  • Artisan serve Improvements: Artisan Serveコマンドの改良
  • Tailwind Pagination Views:ページネーションビュー変更
  • Routing Namespace Updates:ルートファイルの名前空間の変更

Laravel Jetstream :新たな認証機能追加

ログイン・認証機能です。

使用する際には、コンポーザーを使ってインストールします。

このあと、LivewireまたはInertiaのどちらかのライブラリを選択します。

LivewireはBlade、InertiaはVue.jsを使用します。

ユーザーログイン・登録・メール認証・2段階認証・セッション管理などを便利にしてくれる機能ながら、どうも使いにくいという声もあり。

とりあえずはこれまでおりの方法を使っていこうとおもいます。

Models Directory :モデルファイルの場所変更

これまでモデルファイルはappフォルダの直下にありました。

コントローラーやビューファイルはちゃんと「Controller」フォルダ、「View」フォルダに入っているのにどうして?

って感じしますよね。

同じように感じたユーザーが多かったようで、今回のアップデートにより、モデルファイルも app/Modelsフォルダの中に格納されるようになりました。

Models Factory Classes :ダミーデータ作成がより便利に

Laravelには、ダミーデータを作れる機能があります。

モデルファクトリを使うと、大量のダミーデータを作ることができます。

今回のバージョンアップで、モデルファクトリを非常に便利に作れるようになりました。

特にリレーションがある場合に、便利です。

たとえばuserモデルがpostsモデルとの間にリレーションがある場合、下記のように【hasPosts】という関数が使えます。

なおLaravel8でダミーデータを作成する方法については、こちらの記事に詳細を解説しています。

Migration Squashing : 不要なマイグレーションファイルの処理

マイグレーションを度々実行すると、マイグレーションファイルの量が増えていきますよね。

Laravel 8では、 マイグレーションファイルを圧縮保存するコマンドができました。

コマンドを実行すると、database/shemaディレクトリにshemaファイルができ、このなかにマイグレーションのデータが格納されます。

マイグレーション実行時には最初にshcemaファイルのマイグレーションを実行します。

こうすることで、処理の高速化が可能に。

実行時に既存のマイグレーションファイルを削除したい場合は、–prune を付けます。

Job Batching :ジョブのバッチ機能追加

then, catch, finally の三段階で処理を指定したりもできます。

どこかでうまくいかなくても処理を継続させることも可能。

 Rate Limitingの改善 :アクセス制限などが便利に

Laravelでは、RouteにURLにアクセスしたときの処理を記述します。

Rate limitingを使えば、このRouteで設定されたアクセスにレート制限をかけることができます。

たとえばIPアドレスごとに1分間に100回のアクセスを可能にすることも可能。

レート制限を超えたときのレスポンスも独自に設定できます。

Improved Maintenance Mode :メンテナンスモード改良

これまでも php artisan down とするとメンテナンスモードにできました。

今回はここに secretオプションを使って、メンテナンス中もページを見れるトークンを特定できるようになりました。

工事中の場所を迂回してサイトにアクセスするような感じですね。

Closure Dispatch / Chain :失敗したときの処理

新たな catchメソッドを使うことで、もしClosure処理が無事行えなかった場合に実行する処理を設定できます。

Dynamic Blade Components :コンポーネントを便利に指定

コンポーネントファイルとは、テンプレートファイルのようなものです。

コンポーネントを使うとき、場合によってはどのコンポーネントが使われるか判断できない場合があります。

下記のように【dynemic-component】を使って指定しておけば、実行時の変数や値をもとにコンポーネントが受け渡されます。

Event Listener Improvements :イベントリスナー処理の改良

イベントリスナー機能を使う際、Laravelがそのタイプのイベントをリスナーが処理するか、調べられるようになりました。

Time Testing Helpers :新たな時間変更の関数が利用可能に

Time Testing Helpersが使えるようになりました。

Ruby on Railsの機能だったようですね。

現在時刻をもとに、設定した時間に変更して、テストができる機能。

Artisan serve Improvements: Artisan Serveコマンドの改良

PHP Artisan Serveコマンドを実行すると、自動で.envファイルの変更を読み込んでくれるようになりました。

Tailwind Pagination Views:ページネーションビュー変更

Laravelのページネーターは、Thaiwindページネーションビューをデフォルトで使用するようになりました。

Bootstrap3と4のビューもこれまでどおり利用可能です。

Routing Namespace Updates:ルートファイルの名前空間の変更

以前はRouteServiceProviderファイルに、 コントローラーのパスがデフォルトで入っていました。

そのため、ルートファイルに記入する必要はありませんでした。

Laravel 8ではデフォルトではデフォルトでこの設定が無効になっています。そのため、ルートファイルにコントローラーのパスの記述が必要です。

これまでの方法がよければ、RouteServiceProviderファイルの設定を変えれば、毎回ルートファイルにパスを入れる必要はなくなります。

処理方法は、こちらで解説しています。

Laravelの旧バージョンのサポート

Laravelは6か月ごとにバージョンを更新します。

新しいバージョンが出たら、古いバージョンのサポートはどうなるのか?

しばらくはサポートを継続してくれますが、期限付きです。

あまり古いバージョンは更新していったほうが良さそうですね。

なおLaravel バージョン6はLTS版(長期間サポート版)であるため、サポート期間が長めに設定されています。

!2021年2月追記:今後のバージョンはアップは1年に1度ペースになるとのこと!

詳しくはこちらをどうぞ。

Laravelバージョンアップ・ニュース

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel11版テキストに加え、Laravel8版・Laravel9版・Laravel10版もご用意しています♪

【AWS関連・Webアプリ開発・生成AIのAPI活用のご相談承ってます】
お気軽にお声がけください。
御社にとって、最善の方法をご一緒に考えてまいります。
Zoomミーティング実施中。サンプルアプリご利用可能です。

お問合せフォーム

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。
Laravel10対応。Laravel11サポートガイドもご用意しています。詳しくは下記ボタンをクリック♪

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

最新版Laravel11用のサポートガイドご用意しています。

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました