Readouble

Laravel 10.x リリースノート

バージョニング規約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
End of life
Security fixes only

(*) 対応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 MaduroTaylor 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

HorizonTelescopeは、タイポグラフィー、余白、デザインの改善を含む、新鮮でモダンな外観へ更新しました。Horizon[/docs/{{version}}/horizon] and Telescope[/docs/{{version}}/telescope] have been updated with a fresh, modern look including improved typography, spacing, and design:

章選択

設定

明暗テーマ
light_mode
dark_mode
brightness_auto システム設定に合わせる
テーマ選択
photo_size_select_actual デフォルト
photo_size_select_actual モノクローム(白黒)
photo_size_select_actual Solarized風
photo_size_select_actual GitHub風(青ベース)
photo_size_select_actual Viva(黄緑ベース)
photo_size_select_actual Happy(紫ベース)
photo_size_select_actual Mint(緑ベース)
コードハイライトテーマ選択

明暗テーマごとに、コードハイライトのテーマを指定できます。

テーマ配色確認
スクリーン表示幅
640px
80%
90%
100%

768px以上の幅があるときのドキュメント部分表示幅です。

インデント
無し
1rem
2rem
3rem
原文確認
原文を全行表示
原文を一行ずつ表示
使用しない

※ 段落末のEボタンへカーソルオンで原文をPopupします。

Diff表示形式
色分けのみで区別
行頭の±で区別
削除線と追記で区別

※ [tl!…]形式の挿入削除行の表示形式です。

テストコード表示
両コード表示
Pestのみ表示
PHPUnitのみ表示
和文変換

対象文字列と置換文字列を半角スペースで区切ってください。(最大5組各10文字まで)

本文フォント

総称名以外はCSSと同様に、"〜"でエスケープしてください。

コードフォント

総称名以外はCSSと同様に、"〜"でエスケープしてください。

保存内容リセット

localStrageに保存してある設定項目をすべて削除し、デフォルト状態へ戻します。

ヘッダー項目移動

キーボード操作