バージョニング規約
Laravelとファーストパーティパッケージは、セマンティックバージョニングにしたがっています。メジャーなフレームのリリースは、毎年(第1四半期に)リリースします。マイナーとパッチリリースはより頻繁に毎週リリースします。マイナーとパッチリリースは、決してブレーキングチェンジを含みません
あなたのアプリケーションやパッケージから、Laravelフレームワーク、もしくはコンポーネントを参照する場合は、Laravelのメジャーリリースには重大な変更が含まれているため、常に^10.0
などのようにバージョンを指定する必要があります。ただし、私たちは1日かからずに新しいメジャーリリースへ更新できるように、常に努力しています。
名前付き引数
名前付き引数は、Laravelの下位互換性ガイドラインの対象外です。Laravelコードベースを改善するために、必要に応じて関数の引数の名前を変更することもできます。したがって、Laravelメソッドを呼び出すときに名前付き引数を使用する場合は、パラメーター名が将来変更される可能性があることを理解した上で、慎重に行う必要があります。
サポートポリシー
Laravelのすべてのリリースは、バグフィックスは18ヶ月、セキュリティフィックスは2年です。Lumenのようなその他の追加ライブラリでは、最新のメジャーリリースのみでバグフィックスを受け付けています。また、Laravelがサポートするデータベースのサポートについても確認してください。
バージョン | 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.2 | 2023年2月14日 | 2024年8月6日 | 2025年2月4日 |
11 | 8.2 | 2024年第1四半期 | 2025年8月5日 | 2026年2月3日 |
(*) 対応PHPバージョン
Laravel 10
ご存知かもしれませんが、Laravel8のリリース時から、Laravelは年次リリースに移行しました。以前は、メジャーバージョンを6か月ごとにリリースしていました。この変更はコミュニティのメンテナンスの負担を軽減することと、開発チームが互換性を失う変更を加えることなく、驚くべき強力な新機能を出荷する試みができることを目的としています。そのため、下位互換性を損なうことなく、さまざまな堅牢な機能をLaravel9へ取り入れました。
したがって、現在のリリースへ優れた新機能を導入するこの取り組みにより、将来の「メジャー」リリースが主にアップストリームの依存関係のアップグレードなど、「メンテナンス」タスクに使用されるようになります。これは、これらのリリースノートに記載されています。
Laravel10は、Laravel9.xで行った改良を続け、アプリケーションの全スケルトンメソッド、およびフレームワーク全体でクラスを生成するために使用する全スタブファイルへ、引数と戻り値の型を導入しました。また、外部プロセスの開始と操作のために、開発者向けの新しい抽象化レイヤーを導入しました。更に、Laravel Pennantを導入し、アプリケーションの「機能フラグ」を管理するための素晴らしいアプローチを提供しました。
PHP8.1
Laravel10.xは、PHPバージョン8.1以降が必要です。
型
アプリケーションのスケルトンとスタブのタイプヒントは、Nuno Maduroによる貢献です。
最初のリリース時、Laravelは当時のPHPで利用可能なタイプヒントの機能をすべて利用していました。しかし、その後、プリミティブ型ヒントの追加、戻り値型、ユニオン型など、多くの新機能がPHPに追加されました。
Laravel10.xでは、アプリケーションのスケルトン、およびフレームワークが利用するすべてのスタブを徹底的に更新し、すべてのメソッドシグネチャへ引数と戻り値の型を導入しました。また、無関係な「ドックブロック」タイプヒント情報を削除しました。
この変更は、既存のアプリケーションと完全に後方互換性があります。したがって、こうしたタイプヒントを持たない既存のアプリケーションは、引き続き正常に動作します。
Laravel Pennant
Laravel Pennantは、Tim MacDonaldによる貢献です。
新しいファーストパーティパッケージ、Laravel
Pennantをリリースしました。Laravel
Pennantは、アプリケーションの機能フラグを管理するための軽量で合理的なアプローチを提供します。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による貢献です。
Laravel10.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();
更に、テストで便利なように、プロセスをFakeできます。
Process::fake();
// ...
Process::assertRan('ls -la');
プロセスと操作の詳細は、プロセスの包括的なドキュメントを参照してください。
テストプロファイル
テストプロファイルは、Nuno Maduroによる貢献です
Artisan
test
コマンドへ、新しい--profile
オプションを追加し、アプリケーションで最も遅いテストを簡単に特定できるようになりました。
php artisan test --profile
使いやすいように、最も遅いテストはCLI出力内に直接表示します。
Pestスカフォールド
新しいLaravelプロジェクトで、Pest
testをデフォルトでスカフォールドするようになりました。この機能をオプトインするには、Laravelのインストーラで新しいアプリケーションを作成するときに、--pest
フラグを指定します。
laravel new example-application --pest
ジェネレータCLIプロンプト
ジェネレータCLIプロンプトは、Jess Archerによる貢献です。
フレームワークの開発者体験を向上させるため、Laravelの組み込みmake
コマンドは、すべて入力が不要になりました。入力なしでコマンドを呼び出すと、必要な引数を入力するようプロンプトされます。
php artisan make:controller
Horizon/Telescopeの改装
HorizonとTelescopeは、タイポグラフィー、余白、デザインの改善を含む、新鮮でモダンな外観へ更新しました。