Laravel 8.80の登場
昨年末にLaravel 8.77がリリースされましたが、年明け早々に8.78・8.79・8.80と立て続けに製品リリースがされています。ここでは、リリースノートから読み取れる新機能をできる限りお伝えしていきます。同様に、延期されていたLaravel 9も2022年2月8日のリリースを目途に準備しています。こちらの実装予定についてもお伝えしていきます。
そもそもLaravelとは
Laravelとは、PHPを用いたウェブアプリケーションフレームワークのことです。blogやニュース・動画を通じて啓蒙活動を行っていることが特色となります。PHPのフレームワークはいくつかありますが、GitHubでの星の獲得数は最も多く人気があります。 【参考】:Laravel
ここで言うウェブアプリケーションフレームワークとは、ウェブを用いたアプリケーションのフレームワークを指します。フレームワークとは、ソフトウェア開発の効率を高めるためにあらかじめ標準的な利用方法を定義することです。フレームワークに必要な手順を標準化し、ライブラリとして提供します。
Laravelでは、ソフトウェア開発言語としてPHPを用いており、PHPをベースとして、アプリケーション開発に必要な共通フレームワークとソフトウェアコンポーネントを提供します。アプリケーション開発者は、最低限のコード開発でウェブアプリケーションの開発・構築が可能です。
PHPとは
PHPとは、サーバーサイドで動的ウェブページを作成する際に用いる言語です。動的なウェブページを生成するCGIを起源としているため、ウェブアプリケーション開発に最適な言語の1つです。従来はテンプレート的な用途に用いられていましたが、現在汎用スクリプト言語として利用拡大しています。 【参考】:php
Laravelのサポートポリシー
Laravelはあらかじめ定義されたサポートポリシーに基づき、リリース・提供されます。具体的には、LTS(Long Term Support)版は、不具合修正が2年間・セキュリティ修正が3年間に設定されています。通常版は不具合修正が18カ月・セキュリティ修正が2年間とやや短くなります。
以下に、現行製品のLTS版と通常版を整理しておきます。 ・LTS版 Laravel 6(2019年9月3日公開)、不具合修正:2022年1月25日まで、セキュリティ修正:2022年9月6日まで Laravel 9(2022年2月8日予定)、不具合修正:2024年2月8日まで、セキュリティ修正:2025年2月8日まで
・通常版 Laravel 8(2020年9月8日公開)、不具合修正:2022年7月26日まで、セキュリティ修正:2023年1月24日まで Laravel 10(2023年2月7日予定)、不具合修正:2024年8月7日まで、セキュリティ修正:2025年2月7日まで
Laravel 7は2020年3月3日公開でLaravel 6より後のリリースですが、通常版につきすでにサポートが終了しています。LTS版のLaravel 6についても不具合修正が2022年1月25日までで終了するため、Laravel 9の登場が待たれるところです。 【参考】:Laravel Support Policy
Laravelの新機能
Laravelの新機能はリリースノートに記載され、記載されるバージョンはメジャーリリース単位です。Laravel 8.xでリリースされた代表的な機能は、リリースノートにまとめて記載されています。直近のバージョンアップに関しては以降で紹介します。 【参考】:Laravel Release Notes
Laravelの利用方法
Laravelを簡単に利用するには、Dockerを用いることがおすすめです。利用はプロジェクト単位で進め、Laravel Sailという軽量なコマンドラインインターフェースを用いて、Docker開発環境を利用します。導入にはComposerパッケージマネージャを用います。 【参考】:Laravel Installation
直接Laravelを利用する場合はPHPとComposerが導入された環境で、ComposerからLaravelプロジェクトを作成します。Laravelのアプリケーションは、ArtisanCLIのserveコマンドを用います。
あるいは、Composerのグローバル依存関係としてインストールします。
Laravelのデータベースサポート構成
他のウェブアプリケーションフレームワーク同様に、Laravelにおいてもサポートするデータベースが指定されています。 【参考】:Laravel Database: Getting Started
具体的には、MySQL 5.7以降・PostgreSQL 9.6以降・SQLite 3.8.8以降・SQL Server 2017以降がサポートされます。データベースのコマンドラインインターフェースに接続するには、ArtisanCLIのdbコマンドで接続できます。
Laravel 8.77のリリース概要
まず最初に、2021年12月22日掲載のLaravelニュースから8.77リリースの要点をお伝えします。 【参考】:Laravel 8.77 Released
具体的なLaravel 8.77の主要変更点は以下の通りです。 ・AttributeのCast・Accessor改善 Accessors・MutatorsのAtrtribute定義において単一メソッドで動作が定義可能です。 ・DateTime ParsingのRequestインスタンスへの追加 date()メソッドがRequestインスタンスに追加され、日付取得が簡単にできます。 ・MACアドレスの検証ルール"mac_address"が、Validator()で提供されます。 ・テンポラリURLメソッドがストレージ向けに提供 getTemporaryUrl()のロジックを追加可能です。
Laravel 8.78のリリース概要
次に、2022年1月5日掲載のLaravelニュースから8.78リリースの要点をお伝えします。 【参考】:Laravel 8.78 Released
具体的なLaravel 8.78の主要変更点は以下の通りです。 ・追加のデフォルトパスワード検証ルールが定義可能 rules()で、デフォルトパスワードルールに追加実行できるカスタム検証ルールが定義できます。 ・欠損データの処理追加 HTTPリクエストの欠損データがある場合に、マージするメソッドmergeIfMissing()が提供されます。 ・バッチ数のAssertメソッド追加 バッチの実際のディスパッチ数が、assertBatchCount()でAssertされます。 ・HTMLのStringメソッド追加 HtmlString()の記述を、Strでシンプルにコーディングできます。
Laravel 8.79のリリース概要
続いて、2022年1月13日掲載のLaravelニュースから8.79リリースの要点をお伝えします。 【参考】:Laravel 8.79 Released
具体的なLaravel 8.79の主要変更点は以下の通りです。 ・onLastPage()メソッドのPaginator追加 最終ページのロジック記述が可能です。 ・可変個数引数のメソッドサポート Callableを呼び出す際に可変個数を引数に使用できます。 ・MySQLとPostgreSQLでのフルテキストサーチサポート whereFulltext()メソッドがサポートされます。 ・Stringableメソッドの追加 whenContains()とwhenContainsAll()が追加されました。
Laravel 8.80のリリース概要
最後に、2022年1月19日掲載のLaravelニュースから8.80リリースの要点をお伝えします。 【参考】:Define a Route Group Controller in Laravel 8.80
具体的なLaravel 8.80の主要変更点は以下の通りです。 ・ルートグループコントローラの定義 グループが同じコントローラーを使用する際に、ルートグループのコントローラーを定義可能です。 ・BladeコンパイラでStringをレンダリング Blade Templatingの文字列をレンダリングされた文字列に変換可能です。 ・PHPRedisのシリアライズと圧縮の構成サポート シリアライズオプションは、NONE・PHP・JSON・IGBINARY・MSGPACK 圧縮オプションは、NONE・LZF・ZSTD・LZ4
Laravel 9の新機能
Laravel 9はリリース計画がSymfony 6.0のリリースに合わせて延期され、2022年1月に変更されました。公式リリースノートによると、現在2月8日がリリース日として予定されています。 【参考】:A look at what is coming to Laravel 9 【参考】:Laravel Release Notes
Laravel 9ではLaravel 8.xから継続して改善を進めており、Symfony 6.0コンポーネント・Symfony Mailer・Flysystem 3.0・route:list出力のデザイン変更・Laravel Scoutデータベースドライバー・Eloquent Accessor / Mutator構文・Enumによる暗黙のルートバインディング等の実装を予定しています。
なおLaravel 9ではSymfony 6.0を用いるため、PHP 8が必須要件となります。Laravel 9以降のリリースは年次で行うことが決まっており、次期リリースのLaravel 10は2023年2月7日の予定です。
※Laravel 9は2022年2月8日にリリース済です。
開発言語に応じてフレームワークを選択しましょう
2022年現在、ウェブアプリケーションフレームワークは、Laravel・Ruby on Rails・Djangoが3強と言われています。通常PHPを使う場合はLaravel、RubyではRuby on Rails、Pythonの場合はDjangoが用いられます。いずれもフルスタックのウェブアプリケーションフレームワークです。
PHPではこれまで多数のフレームワークがリリースされていましたが、この数年Laravelの利用が急上昇しています。データベースと親和性の高いPHPを用い最新のトレンドに対応するには、Laravelが最適なフレームワークと言えます。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから