1. HOME
  2. ブログ
  3. IT技術
  4. Laravel 8.x のアップデート内容まとめ
Laravel 8.x のアップデート内容まとめ

Laravel 8.x のアップデート内容まとめ

Laravel 8.x 実装!

2020年9月8日、Laravel が半年ぶりにアップデートされ、「バージョン8.x」が実装されました。

ネットでは俄然 6.x の人気が高いようですが、最新バージョンの話題もちらほら見かけるようになりました。

今回は、「Laravel 8.x のアップデート内容」について、コードも含めて紹介していきます!

Laravel 8.x の主なアップデート項目

今回取り上げる Laravel 8.x のアップデート内容は、以下の通りです。

  1. Laravel Jetstream
  2. Models ディレクトリの配置変更
  3. Model Factory がクラスに変更
  4. レート制限の改善
  5. route の変更
  6. .env の反映が即時に変更

サポート期間

Laravel 8.x のサポート期間は General です。

LTS の最新バージョン 6.x と比較すると、サポート期間は以下のようになります。

バージョンバグ修正サポートセキュリティサポート
8.x2021年3月8日2021年9月8日
6.x2021年9月3日2022年9月3日

プロジェクト作成

Laravel 8.x の新機能を実際に試していくため、あらかじめプロジェクトを作っておきましょう!

こちらの記事もオススメ!


Laravel Jetstream

Laravel 8 では、新しい認証パッケージ「Laravel Jetstream」が追加されました。

以前からあった LaravelUI を改善したもので、以下のような新機能を備えています。

  1. ログイン
  2. ユーザー登録
  3. メール認証
  4. チーム管理
  5. CSS フレームワークが TailwindCSS に変更

Bootstrap に代わって採用された「TailwindCSS」は、class でスタイル指定する部分は同じものの、よりカスタマイズ性に重きを置いたフレームワークです。

Jetstreamをインストール

まずは、以下のコマンドで Jetstream を入れます。

テンプレート言語の選択

Jetstream では、フロントエンドを「Inertia」と「Livewire」から選択できます。

フロントエンド使用するテンプレート言語
InertiaVue.js
LivewireLaravel Blade

どちらも便利ですが、今回は SPA 向けの Inertia で進めていきましょう。

ファイル構成は普通の Vue.js ですが、vue router ではなく、Laravel の route を使用します。

Inertia をインストール

マイグレーション

resources/js/jetstream 下に .vue コンポーネントがたくさん作成されているので、確認してみましょう!

teams を設定

続いて、チーム機能を有効にします。

インストール時に teams オプションを有効にしている場合は、初期状態からコメントアウトが外れています。

コマンドは以下です。

メール認証を設定

こちらも同様に、emailVerification() のコメントアウトを外しましょう。

完了!

これで、jetstream の導入は完了です!

registar から登録し、dashboard や profileを覗いてみましょう。

Laravel 8.x 新機能の素晴らしさを実感できますよ!

models ディレクトリパスが変更された

Laravel 7.x 以前は、以下のように model を作成すると、 app 直下に MyModel が配置されていました。

デフォルトでは Http やその他ディレクトリがある中にモデルファイルが生成されるので、とても違和感があるんですよね…。

8.x では app/Models が初期フォルダ

しかし、8.x では、初期状態から app/Models ディレクトリ が配置されています。

そのため、上記のコマンドを使用すると、app/Models 直下に MyModel が生成されます。

前の仕様に戻したい時は?

この機能が気に入らない場合は、app/Models を削除してください。

上記コマンド実行で、以前のように app 直下に MyModel が生成されます。

Model Factory がクラスになった

Model Facotry は、DB にデータをシーディングするためにあります。

以前は function として定義されていましたが、クラスとして再定義されました。

比べてみよう!

7.x 以前

8.x

7.x 以前は factory ファイルで実装していたため、シーダー以外では使用できませんでした。

しかし、8.x からはクラスベースでの実装となったため、他のファイルでも使用できるようになっています。

新しく Factory を作る

レート制限の改善

レート制限とは、アクセス制限のことです。

総当たり攻撃(Brute-force attack)対策や、API を配信している側のサーバー負荷対策などで多く使われています。

こちらも、かなり使いやすくなっていますよ!

比べてみよう!

7.x 以前は、以下のように Route::middleware で設定していました。

8.x

8.x では「RateLimiter::for」での設定に変更されました。

こちらの方が分かりやすいですね!

route の記述が変更

route の記述も、以下のように変更されました。

改めて考えてみると、7.x 以前の記述は冗長だったような気もしますね…

ちなみに、ネームスペースさえ付ければ 7.x 以前の指定でも大丈夫です!

.env の変更が php artisan serve 時に自動で読み込まれる

これまでは、php artisan serve でサーバーを実行した場合、.env の変更内容がすぐに反映されないため、手動で再起動する必要がありました。

しかし、今回の変更により、再起動なしで .env の内容を自動で読み取ってくれるようになりました。

git clone で Laravel プロジェクトの動作確認をする場合など、大いに役立ちそうな機能ですね!

さいごに

8.x では Laravel Jetstream を筆頭に、様々な追加や修正が行われています。

今回紹介したもの以外にも、「タイムテストヘルパー」や「動的ブレードコンポーネント」などが実装されています。

みなさんもぜひ、Laravel 8.x にトライしてみてくださいね!

記事を書いた人

\ 3度のメシより技術が好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!


ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事

初心者が3ヶ月でどれくらいプログラミングができるようになるのか

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界はお前の手の中に・・・ /

モバイルエンジニア

\ サービスの守り神! /

インフラエンジニア

初心者が3ヶ月でどれくらいプログラミングができるようになるのか

初心者が3ヶ月でどれくらいプログラミングができるようになるのか