Laravel 11がリリースされました。
Laravel 11は、Laravel 10.xでの改善を続け、アプリケーション構造を合理化し、秒単位のレートリミット, ヘルスルーティング、暗号化キーのローテーション,キューテストの改善、プロンプトバリデータの統合、新しいArtisanコマンドなどを導入しました。さらに、リアルタイム機能をアプリケーションに提供するために、ファーストパーティーのスケーラブルなwebsocketサーバーであるLaravel Reverbが導入されました。
PHP 8.2
Laravel 11.xは、最低限PHPバージョン8.2が必要です。
合理化したアプリケーション構造
Laravel 11は、既存のアプリケーションに変更を加えることなく、新しいLaravelアプリケーションのためにシンプル化されたアプリケーション構造を導入しました。この新しい構造は、より現代的でスリムな体験を提供することを目的としていますが、Laravel開発者がすでに慣れ親しんでいる多くのコンセプトを維持しています。
Laravel Reverb
Laravel Reverb は、Laravelアプリケーション向けの新しい公式WebSocketサーバーで、クライアントとサーバー間のリアルタイムコミュにケーションを実現します。
ブートストラップ ファイル
Laravel 11のbootstrap/app.php
ファイルは、中心的な設定ファイルとして強化されました。このファイルから、開発者はルーティング、ミドルウェア、サービスプロバイダー、例外処理などのアプリケーションの設定を直接カスタマイズできるようになります。この更新により、さまざまな設定が一つのファイルに統合され、アプリケーション構造が簡素化されました。
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
//
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();
モデルキャストの変更
モデルのキャストはプロパティではなく、メソッドとして定義されるようになりました。メソッドとして定義することで、他のメソッドをキャストから直接呼び出すなど、他のこともできるようになります。以下は新しいLaravel 11のAsEnumCollectionを使用した例です:
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'options' => AsEnumCollection::of(UserOption::class),
];
}
Console Kernel の削除
コンソールカーネルは削除され、代わりにコンソールコマンドをroutes/console.phpに直接定義できるようになります。
新しいArtisanコマンド
クラス、Enum、インターフェース、およびトレイトを簡単に作成するための新しいArtisanコマンドが追加されました。
php artisan make:class
php artisan make:enum
php artisan make:interface
php artisan make:trait
Doctrine DBALの削除
LaravelはもはやDoctrine DBALに依存しておらず、カスタムタイプの登録が不要になりました。
Laravel11の新機能について詳しく知るために、Laravelリリースノートをチェックしてください。
本記事についてのご感想をお聞かせください。読者の皆様の意見を反映させて、今度の内容改善につなげたいと考えております。