#バージョニングスキーム
Laravel とその他の公式パッケージは セマンティックバージョニング に従っています。メジャーフレームワークのリリースは毎年(おおよそ第1四半期)行われ、マイナーおよびパッチリリースは週単位で行われることもあります。マイナーおよびパッチリリースには決して破壊的変更を含めません。
アプリケーションやパッケージから Laravel フレームワークやそのコンポーネントを参照する際は、^10.0 のようなバージョン制約を常に使用してください。Laravel のメジャーリリースには破壊的変更が含まれるためです。ただし、新しいメジャーリリースへのアップデートは1日以内で完了できるよう努めています。
#名前付き引数
名前付き引数 は Laravel の後方互換性ガイドラインの対象外です。Laravel のコードベース改善のために、必要に応じて関数の引数名を変更することがあります。そのため、Laravel メソッドを呼び出す際に名前付き引数を使う場合は、将来的にパラメータ名が変わる可能性があることを理解した上で慎重に行ってください。
#サポートポリシー
すべての Laravel リリースでは、バグ修正は18ヶ月間、セキュリティ修正は2年間提供されます。Lumen を含む追加ライブラリについては、最新のメジャーリリースのみバグ修正が提供されます。さらに、Laravel がサポートするデータベースのバージョンもご確認ください。/docs/10.x/database#introduction
| バージョン | PHP (*) | リリース日 | バグ修正終了日 | セキュリティ修正終了日 |
|---|---|---|---|---|
| 8 | 7.3 - 8.1 | 2020年9月8日 | 2022年7月26日 | 2023年1月24日 |
| 9 | 8.0 - 8.2 | 2022年2月8日 | 2023年8月8日 | 2024年2月6日 |
| 10 | 8.1 - 8.3 | 2023年2月14日 | 2024年8月6日 | 2025年2月4日 |
| 11 | 8.2 - 8.4 | 2024年3月12日 | 2025年9月3日 | 2026年3月12日 |
<div class="end-of-life">
<div class="color-box"></div>
<div>サポート終了</div>
</div>
<div class="security-fixes">
<div class="color-box"></div>
<div>セキュリティ修正のみ</div>
</div>
(*) サポート対象の PHP バージョン
#Laravel 10
ご存知の通り、Laravel は Laravel 8 のリリースから年1回のリリースサイクルに移行しました。以前はメジャーバージョンが6ヶ月ごとにリリースされていました。この変更はコミュニティのメンテナンス負担を軽減し、破壊的変更を避けつつ素晴らしい新機能を提供するための開発チームへの挑戦でもあります。そのため、Laravel 9 では後方互換性を壊さずに多くの堅牢な機能を提供しました。
このリリースでの新機能提供へのコミットメントにより、将来の「メジャー」リリースは主に上流依存関係のアップグレードなどの「メンテナンス」作業に使われる可能性が高いことが、このリリースノートからも見て取れます。
Laravel 10 は Laravel 9.x の改善を引き継ぎ、アプリケーションスケルトンのすべてのメソッドとフレームワーク全体でクラス生成に使われるすべてのスタブファイルに引数と戻り値の型を導入しました。さらに、外部プロセスの起動と操作のための開発者に優しい新しい抽象レイヤーを導入しました。また、Laravel Pennant によりアプリケーションの「機能フラグ」を管理する素晴らしい方法が提供されます。
#PHP 8.1
Laravel 10.x は PHP 8.1 以上が必要です。
#型
アプリケーションスケルトンとスタブの型ヒントは Nuno Maduro による貢献です。
初期リリース時、Laravel は当時の PHP の型ヒント機能をすべて活用していました。しかし、その後の数年間でプリミティブ型ヒント、戻り値の型、ユニオン型など多くの新機能が PHP に追加されました。
Laravel 10.x ではアプリケーションスケルトンとフレームワークで使用されるすべてのスタブを徹底的に更新し、すべてのメソッドシグネチャに引数と戻り値の型を導入しました。不要な「doc block」の型情報は削除されています。
この変更は既存のアプリケーションとの後方互換性を完全に保っています。そのため、型ヒントがない既存アプリケーションも通常通り動作します。
#Laravel Pennant
Laravel Pennant は Tim MacDonald による開発です。
新しい公式パッケージ Laravel Pennant がリリースされました。Laravel Pennant はアプリケーションの機能フラグを管理するための軽量でシンプルなアプローチを提供します。標準でインメモリの array ドライバーと永続的な機能ストレージ用の database ドライバーが含まれています。
機能は Feature::define メソッドで簡単に定義できます:
use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
Feature::define('new-onboarding-flow', function () {
return Lottery::odds(1, 10);
});
機能を定義したら、現在のユーザーがその機能にアクセスできるか簡単に判定できます:
if (Feature::active('new-onboarding-flow')) {
// ...
}
もちろん、利便性のために Blade ディレクティブも利用可能です:
@feature('new-onboarding-flow')
<div>
<!-- ... -->
</div>
@endfeature
Pennant はさらに多くの高度な機能と API を提供します。詳細は 包括的な Pennant ドキュメント をご覧ください。
#プロセス操作
プロセス抽象レイヤーは Nuno Maduro と Taylor Otwell による貢献です。
Laravel 10.x では新しい Process ファサードを通じて外部プロセスの起動と操作のための美しい抽象レイヤーを導入しました:
use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');
return $result->output();
プロセスはプールで起動でき、同時実行プロセスの便利な実行と管理が可能です:
use Illuminate\Process\Pool;
use Illuminate\Support\Facades\Process;
[$first, $second, $third] = Process::concurrently(function (Pool $pool) {
$pool->command('cat first.txt');
$pool->command('cat second.txt');
$pool->command('cat third.txt');
});
return $first->output();
さらに、テストの利便性のためにプロセスをフェイクすることもできます:
Process::fake();
// ...
Process::assertRan('ls -la');
プロセス操作の詳細は 包括的なプロセスドキュメント をご覧ください。
#テストプロファイリング
テストプロファイリングは Nuno Maduro による貢献です。
Artisan の test コマンドに新しい --profile オプションが追加され、アプリケーション内で最も遅いテストを簡単に特定できます:
php artisan test --profile
利便性のため、最も遅いテストは CLI 出力内に直接表示されます:
<img width="100%" src="https://user-images.githubusercontent.com/5457236/217328439-d8d983ec-d0fc-4cde-93d9-ae5bccf5df14.png"/>
#Pest スキャフォールディング
新しい Laravel プロジェクトはデフォルトで Pest テストスキャフォールディングを使って作成できます。この機能を利用するには、Laravel インストーラーで新規アプリケーション作成時に --pest フラグを指定してください:
laravel new example-application --pest
#ジェネレーター CLI プロンプト
ジェネレーター CLI プロンプトは Jess Archer による貢献です。
フレームワークの開発者体験を向上させるため、Laravel の組み込み make コマンドは入力なしで実行可能になりました。入力がない場合は必要な引数をプロンプトで尋ねます:
php artisan make:controller
#Horizon / Telescope のデザイン刷新
Horizon と Telescope は、タイポグラフィ、間隔、デザインが改善された新しくモダンな外観に更新されました: