Laravel 10.x リリースノート

バージョニング規約

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日
End of life
Security fixes only

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

HorizonTelescopeは、タイポグラフィー、余白、デザインの改善を含む、新鮮でモダンな外観へ更新しました。

ドキュメント章別ページ

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる