バージョニング規約Versioning Scheme
Laravelとファーストパーティパッケージは、セマンティックバージョニングにしたがっています。メジャーなフレームのリリースは、毎年(第1四半期に)リリースします。マイナーとパッチリリースはより頻繁に毎週リリースします。マイナーとパッチリリースは、決してブレーキングチェンジを含みませんLaravel and its other first-party packages follow Semantic Versioning[https://semver.org]. Major framework releases are released every year (~Q1), while minor and patch releases may be released as often as every week. Minor and patch releases should never contain breaking changes.
あなたのアプリケーションやパッケージから、Laravelフレームワーク、もしくはコンポーネントを参照する場合は、Laravelのメジャーリリースには重大な変更が含まれているため、常に^10.0
などのようにバージョンを指定する必要があります。ただし、私たちは1日かからずに新しいメジャーリリースへ更新できるように、常に努力しています。When referencing the Laravel framework or its components from your application or package, you should always use a version constraint such as ^10.0
, since major releases of Laravel do include breaking changes. However, we strive to always ensure you may update to a new major release in one day or less.
名前付き引数Named Arguments
名前付き引数は、Laravelの下位互換性ガイドラインの対象外です。Laravelコードベースを改善するために、必要に応じて関数の引数の名前を変更することもできます。したがって、Laravelメソッドを呼び出すときに名前付き引数を使用する場合は、パラメーター名が将来変更される可能性があることを理解した上で、慎重に行う必要があります。Named arguments[https://www.php.net/manual/en/functions.arguments.php#functions.named-arguments] are not covered by Laravel's backwards compatibility guidelines. We may choose to rename function arguments when necessary in order to improve the Laravel codebase. Therefore, using named arguments when calling Laravel methods should be done cautiously and with the understanding that the parameter names may change in the future.
サポートポリシーSupport Policy
Laravelのすべてのリリースは、バグフィックスは18ヶ月、セキュリティフィックスは2年です。Lumenのようなその他の追加ライブラリでは、最新のメジャーリリースのみでバグフィックスを受け付けています。また、Laravelがサポートするデータベースのサポートについても確認してください。For all Laravel releases, bug fixes are provided for 18 months and security fixes are provided for 2 years. For all additional libraries, including Lumen, only the latest major release receives bug fixes. In addition, please review the database versions supported by Laravel[/docs/{{version}}/database#introduction].
バージョンVersion | PHP (*)PHP (*) | リリースRelease | バグフィックス期日Bug Fixes Until | セキュリティ修正期日Security Fixes Until |
---|---|---|---|---|
88 | 7.3 - 8.17.3 - 8.1 | 2020年9月8日September 8th, 2020 | 2022年7月26日July 26th, 2022 | 2023年1月24日January 24th, 2023 |
99 | 8.0 - 8.28.0 - 8.2 | 2022年2月8日February 8th, 2022 | 2023年8月8日August 8th, 2023 | 2024年2月6日February 6th, 2024 |
1010 | 8.1 - 8.38.1 - 8.3 | 2023年2月14日February 14th, 2023 | 2024年8月6日August 6th, 2024 | 2025年2月4日February 4th, 2025 |
1111 | 8.2 - 8.38.2 - 8.3 | 2024年3月12日March 12th, 2024 | 2025年8月5日August 5th, 2025 | 2026年2月3日February 3rd, 2026 |
(*) 対応PHPバージョン(*) Supported PHP versions
Laravel 10Laravel 10
ご存知かもしれませんが、Laravel8のリリース時から、Laravelは年次リリースに移行しました。以前は、メジャーバージョンを6か月ごとにリリースしていました。この変更はコミュニティのメンテナンスの負担を軽減することと、開発チームが互換性を失う変更を加えることなく、驚くべき強力な新機能を出荷する試みができることを目的としています。そのため、下位互換性を損なうことなく、さまざまな堅牢な機能をLaravel9へ取り入れました。As you may know, Laravel transitioned to yearly releases with the release of Laravel 8. Previously, major versions were released every 6 months. This transition is intended to ease the maintenance burden on the community and challenge our development team to ship amazing, powerful new features without introducing breaking changes. Therefore, we have shipped a variety of robust features to Laravel 9 without breaking backwards compatibility.
したがって、現在のリリースへ優れた新機能を導入するこの取り組みにより、将来の「メジャー」リリースが主にアップストリームの依存関係のアップグレードなど、「メンテナンス」タスクに使用されるようになります。これは、これらのリリースノートに記載されています。Therefore, this commitment to ship great new features during the current release will likely lead to future "major" releases being primarily used for "maintenance" tasks such as upgrading upstream dependencies, which can be seen in these release notes.
Laravel10は、Laravel9.xで行った改良を続け、アプリケーションの全スケルトンメソッド、およびフレームワーク全体でクラスを生成するために使用する全スタブファイルへ、引数と戻り値の型を導入しました。また、外部プロセスの開始と操作のために、開発者向けの新しい抽象化レイヤーを導入しました。更に、Laravel Pennantを導入し、アプリケーションの「機能フラグ」を管理するための素晴らしいアプローチを提供しました。Laravel 10 continues the improvements made in Laravel 9.x by introducing argument and return types to all application skeleton methods, as well as all stub files used to generate classes throughout the framework. In addition, a new, developer-friendly abstraction layer has been introduced for starting and interacting with external processes. Further, Laravel Pennant has been introduced to provide a wonderful approach to managing your application's "feature flags".
PHP8.1PHP 8.1
Laravel10.xは、PHPバージョン8.1以降が必要です。Laravel 10.x requires a minimum PHP version of 8.1.
型Types
アプリケーションのスケルトンとスタブのタイプヒントは、Nuno Maduroによる貢献です。Application skeleton and stub type-hints were contributed by Nuno Maduro[https://github.com/nunomaduro].
最初のリリース時、Laravelは当時のPHPで利用可能なタイプヒントの機能をすべて利用していました。しかし、その後、プリミティブ型ヒントの追加、戻り値型、ユニオン型など、多くの新機能がPHPに追加されました。On its initial release, Laravel utilized all of the type-hinting features available in PHP at the time. However, many new features have been added to PHP in the subsequent years, including additional primitive type-hints, return types, and union types.
Laravel10.xでは、アプリケーションのスケルトン、およびフレームワークが利用するすべてのスタブを徹底的に更新し、すべてのメソッドシグネチャへ引数と戻り値の型を導入しました。また、無関係な「ドックブロック」タイプヒント情報を削除しました。Laravel 10.x thoroughly updates the application skeleton and all stubs utilized by the framework to introduce argument and return types to all method signatures. In addition, extraneous "doc block" type-hint information has been deleted.
この変更は、既存のアプリケーションと完全に後方互換性があります。したがって、こうしたタイプヒントを持たない既存のアプリケーションは、引き続き正常に動作します。This change is entirely backwards compatible with existing applications. Therefore, existing applications that do not have these type-hints will continue to function normally.
Laravel PennantLaravel Pennant
Laravel Pennantは、Tim MacDonaldによる貢献です。Laravel Pennant was developed by Tim MacDonald[https://github.com/timacdonald].
新しいファーストパーティパッケージ、Laravel Pennantをリリースしました。Laravel Pennantは、アプリケーションの機能フラグを管理するための軽量で合理的なアプローチを提供します。Pennantには、メモリ内のarray
ドライバと、永続的な機能ストレージを使用するdatabase
ドライバが含まれており、導入してすぐに使えます。A new first-party package, Laravel Pennant, has been released. Laravel Pennant offers a light-weight, streamlined approach to managing your application's feature flags. Out of the box, Pennant includes an in-memory array
driver and a database
driver for persistent feature storage.
機能は、Feature::define
メソッドで簡単に定義できます。Features can be easily defined via the Feature::define
method:
use Laravel\Pennant\Feature;
use Illuminate\Support\Lottery;
Feature::define('new-onboarding-flow', function () {
return Lottery::odds(1, 10);
});
機能を定義すると、現在のユーザーがその機能へアクセスできるかを簡単に判定できるようになります。Once a feature has been defined, you may easily determine if the current user has access to the given feature:
if (Feature::active('new-onboarding-flow')) {
// ...
}
もちろん、Bladeディレクティブでも使用可能で、便利に使えます。Of course, for convenience, Blade directives are also available:
@feature('new-onboarding-flow')
<div>
<!-- ... -->
</div>
@endfeature
Pennantは、さらに高度な多くの機能とAPIを提供しています。詳しくは、Pennantの完全なドキュメントを参照してください。Pennant offers a variety of more advanced features and APIs. For more information, please consult the comprehensive Pennant documentation[/docs/{{version}}/pennant].
プロセス操作Process Interaction
プロセス抽象レイヤは、Nuno MaduroとTaylor Otwellによる貢献です。The process abstraction layer was contributed by Nuno Maduro[https://github.com/nunomaduro] and Taylor Otwell[https://github.com/taylorotwell].
Laravel10.xでは、新しいProcess
ファサードを介して外部プロセスを起動し、操作するための美しい抽象化レイヤーを導入しています。Laravel 10.x introduces a beautiful abstraction layer for starting and interacting with external processes via a new Process
facade:
use Illuminate\Support\Facades\Process;
$result = Process::run('ls -la');
return $result->output();
プロセスはプールで開始することもでき、便利に並行プロセスの実行と管理が可能です。Processes may even be started in pools, allowing for the convenient execution and management of concurrent processes:
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できます。In addition, processes may be faked for convenient testing:
Process::fake();
// ...
Process::assertRan('ls -la');
プロセスと操作の詳細は、プロセスの包括的なドキュメントを参照してください。For more information on interacting with processes, please consult the comprehensive process documentation[/docs/{{version}}/processes].
テストプロファイルTest Profiling
テストプロファイルは、Nuno Maduroによる貢献ですTest profiling was contributed by Nuno Maduro[https://github.com/nunomaduro].
Artisan test
コマンドへ、新しい--profile
オプションを追加し、アプリケーションで最も遅いテストを簡単に特定できるようになりました。The Artisan test
command has received a new --profile
option that allows you to easily identify the slowest tests in your application:
php artisan test --profile
使いやすいように、最も遅いテストはCLI出力内に直接表示します。For convenience, the slowest tests will be displayed directly within the CLI output:
PestスカフォールドPest Scaffolding
新しいLaravelプロジェクトで、Pest testをデフォルトでスカフォールドするようになりました。この機能をオプトインするには、Laravelのインストーラで新しいアプリケーションを作成するときに、--pest
フラグを指定します。New Laravel projects may now be created with Pest test scaffolding by default. To opt-in to this feature, provide the --pest
flag when creating a new application via the Laravel installer:
laravel new example-application --pest
ジェネレータCLIプロンプトGenerator CLI Prompts
ジェネレータCLIプロンプトは、Jess Archerによる貢献です。Generator CLI prompts were contributed by Jess Archer[https://github.com/jessarcher].
フレームワークの開発者体験を向上させるため、Laravelの組み込みmake
コマンドは、すべて入力が不要になりました。入力なしでコマンドを呼び出すと、必要な引数を入力するようプロンプトされます。To improve the framework's developer experience, all of Laravel's built-in make
commands no longer require any input. If the commands are invoked without input, you will be prompted for the required arguments:
php artisan make:controller
Horizon/Telescopeの改装Horizon / Telescope Facelift
HorizonとTelescopeは、タイポグラフィー、余白、デザインの改善を含む、新鮮でモダンな外観へ更新しました。Horizon[/docs/{{version}}/horizon] and Telescope[/docs/{{version}}/telescope] have been updated with a fresh, modern look including improved typography, spacing, and design: