deha magazine / PHP / 【徹底説明】PHP WebフレームワークLaravelバージョン 8対応版の機能・変更した点
【徹底説明】PHP WebフレームワークLaravelバージョン 8対応版の機能・変更した点
2021/08/31
Laravelは、PHPのWebフレームワークの中では、現在一番人気があります。
2011年に公開されてからアップデートを繰り返しており、2020年9月にはLaravelバージョン8が公開されました。
今回は、Laravelバージョン8の機能についてまとめます。
Laravelバージョン8で追加変更された機能一覧
Laravelは、symfonyをベースに作られたWebフレームワークで、「コードが読みやすい」「MVCモデルを採用している」「拡張性と自由度が高い」と言った特徴があります。
バージョン8では、以下のような機能が追加・変更されました。
- Laravel Jetstream
- モデルファイルの場所変更
- ダミーデータ作成がより便利に
- 不要なマイグレーションファイルの処理
- ジョブのバッチ機能追加
- Rate Limitingの改善
- メンテナンスモード改良
- Closure Dispatch / Chain
- Dynamic Blade Components
- イベントリスナー処理の改良
- 新たな時間変更の関数が利用可能に
- Artisan Serveコマンドの改良
- ページネーションビュー変更
- ルートファイルの名前空間の変更
Laravelバージョン8の主要な変更点
一部の変更点について抜粋して解説します。
Laravel Jetstream
Laravel Jetstreamは、ログイン・認証機能です。使うことで、以下のような機能が簡単に実装できます。
- ログイン
- ユーザー登録
- メール認証(本人確認、本登録メール)
- 2段階認証
- セッション管理
- API(Laravel Sanctum)
- チーム管理
ログイン機能自体はlaravel/uiという別パッケージとして、以前から存在していましたが、Laravel Jetstreamから「チーム管理」が追加されています。
これにより、マイグレーションの変更なしに、各ユーザーのカテゴリ分けが可能です。
またLaravel Jetstreamでは、以下のような内部的な変更もありました。
- 利用しているCSSフレームワークがbootstrapからTailwind CSSになった
- JavaScriptのシステムとして、LivewireまたはInertiaのどちらかのライブラリを選択できるようになった
モデルファイルの場所変更
従来のLaravelでは、モデルファイルがappディレクトリ直下に存在していましたが、バージョン8からはapp/Modelsディレクトリ下に変更となりました。
ファイルをモデル(データベースの操作などを行う部分)、ビュー(画面を操作する部分)、コントローラー(データの処理を行う部分)の3つに分ける考え方を、MVCモデルと言います。
MVCモデルを採用するメリットは、ソースコードの管理や拡張がしやすくなり開発効率が良くなるという点です。
これまでのLaravelでは、コントローラーファイルは「Controller」ディレクト、ビューファイルは「View」ディレクトリに入っているのに、モデルファイルだけ変な場所にあるという状態でした。
ディレクトリ構成が変わったことで、よりソース管理しやすくなると思われます。
Rate Limitingの改善
Rate Limiting(レート制限)とは、アクセス制限のことです。
繰り返しの制限など、条件を定めてアクセス制限を行うことができます。
PHPはサーバーサイドで主に使われる言語ですが、サーバー側ではサーバーの負荷軽減や総当り攻撃(ブルートフォース攻撃)対策などのために、アクセス制限を行います。
以前から、Laravelにはレート制限機能が存在しましたが、更に使いやすく改善されています。
ルートファイルの名前空間の変更
RouteServiceProviderファイルのファイル設定が変更されています。
従来のLaravelでは、RouteServiceProviderファイルにコントローラーのパスが予め指定されていましたが、その記述がなくなりました。
より自由に開発することができるようになった反面、記述が増えてしまったというデメリットもあります。
従来の使い方の方が良い場合は、RouteServiceProviderファイルにコントローラーのパスを追記することで、元に戻せます。
Web開発ならdehaにご相談ください
ここまで見てきたように、Laravelバージョン8では、より開発がしやすいように多くの変更が加えられています。
2022年1月には、PHP8に対応したバージョン9がリリースされると言われていますし、今後もLaravelの改良は進んでいくでしょう。
dehaでは、5年間に渡りベトナムオフショア開発を行ってきました。ベトナムオフショアは、低コストで高品質なのが特徴です。
Web開発での実績も多数ありますので、Web開発案件で、エンジニアのリソースが足りないという場合は、ぜひdehaにご相談くださいませ。