バージョニング規約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のメジャーリリースにはブレークチェンジが含まれるため、常に^11.0
のようなバージョン制約を使用する必要があります。しかし、常に1日かからずに新しいメジャーリリースへアップデートできるように、私たちは努めています。When referencing the Laravel framework or its components from your application or package, you should always use a version constraint such as ^11.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 |
---|---|---|---|---|
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.48.2 - 8.4 | 2024年3月12日March 12th, 2024 | 2025年9月3日September 3rd, 2025 | 2026年3月12日March 12th, 2026 |
1212 | 8.2 - 8.48.2 - 8.4 | 2025年第1四半期Q1 2025 | 2026年第3四半期Q3 2026 | 2027年第1四半期Q1 2027 |
(*) 対応PHPバージョン(*) Supported PHP versions
Laravel 11Laravel 11
Laravel11は、Laravel10.xで行われた改善を引き継ぎ、アプリケーション構造を合理化し、秒単位のレート制限、ヘルスルーティング、グレースフル暗号化キーローテーション、キューテストの改善、Resendメールトランスポート、Promptとバリデータの統合、新しいArtisanコマンドなどを導入しました。さらに、ファーストパーティのスケーラブルなWebSocketサーバであるLaravel Reverbを導入し、アプリケーションに堅牢なリアルタイム機能を提供します。Laravel 11 continues the improvements made in Laravel 10.x by introducing a streamlined application structure, per-second rate limiting, health routing, graceful encryption key rotation, queue testing improvements, Resend[https://resend.com] mail transport, Prompt validator integration, new Artisan commands, and more. In addition, Laravel Reverb, a first-party, scalable WebSocket server has been introduced to provide robust real-time capabilities to your applications.
PHP 8.2PHP 8.2
Laravel11.xには、最低でPHP8.2のバージョンが必要です。Laravel 11.x requires a minimum PHP version of 8.2.
合理化したアプリケーション構造Streamlined Application Structure
Laravelの合理化したアプリケーション構造は、Taylor OtwellとNuno Maduroが開発しました。Laravel's streamlined application structure was developed by Taylor Otwell[https://github.com/taylorotwell] and Nuno Maduro[https://github.com/nunomaduro].
Laravel11では、既存のアプリケーションに変更を加えることなく、新しいLaravelアプリケーション向けに合理化したアプリケーション構造を導入しました。新しいアプリケーション構造は、Laravel開発者がすでに慣れ親しんでいるコンセプトの多くを保持しながら、よりスリムでモダンなエクスペリエンスを提供することを目的としています。以降で、Laravelの新しいアプリケーション構造のハイライトについて説明します。Laravel 11 introduces a streamlined application structure for new Laravel applications, without requiring any changes to existing applications. The new application structure is intended to provide a leaner, more modern experience, while retaining many of the concepts that Laravel developers are already familiar with. Below we will discuss the highlights of Laravel's new application structure.
アプリケーションの初期起動処理ファイルThe Application Bootstrap File
bootstrap/app.php
ファイルは、コード・ファーストのアプリケーション設定ファイルとして復活しました。このファイルから、アプリケーションのルーティング、ミドルウェア、サービスプロバイダ、例外処理などをカスタマイズできます。このファイルは、以前はアプリケーションのファイル構造全体に散らばっていたさまざまな高レベルのアプリケーション動作設定を統一しています。The bootstrap/app.php
file has been revitalized as a code-first application configuration file. From this file, you may now customize your application's routing, middleware, service providers, exception handling, and more. This file unifies a variety of high-level application behavior settings that were previously scattered throughout your application's file structure:
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();
サービスプロバイダService Providers
デフォルトのLaravelアプリケーション構造には5つのサービスプロバイダを持っていましたが、Laravel11では1つのAppServiceProvider
しかありません。以前のサービスプロバイダの機能は、bootstrap/app.php
に組み込まれたり、フレームワークが自動的に処理したり、アプリケーションのAppServiceProvider
へ配置されたりしました。Instead of the default Laravel application structure containing five service providers, Laravel 11 only includes a single AppServiceProvider
. The functionality of the previous service providers has been incorporated into the bootstrap/app.php
, is handled automatically by the framework, or may be placed in your application's AppServiceProvider
.
例えば、イベントディスカバリはデフォルトで有効になり、イベントとそのリスナを手作業で登録する必要をほぼ無くしました。しかし、イベントを手作業で登録する必要がある場合は、AppServiceProvider
に登録するだけです。同様に、以前 AuthServiceProvider
で登録していた、ルートモデル結合や認証ゲートも、AppServiceProvider
に登録できます。For example, event discovery is now enabled by default, largely eliminating the need for manual registration of events and their listeners. However, if you do need to manually register events, you may simply do so in the AppServiceProvider
. Similarly, route model bindings or authorization gates you may have previously registered in the AuthServiceProvider
may also be registered in the AppServiceProvider
.
オプトインAPIとブロードキャストルーティングOpt-in API and Broadcast Routing
多くのアプリケーションがこうしたファイルを必要としないため、api.php
とchannels.php
ルートファイルは、デフォルトでもはや存在しなくなりました。代わりに、簡単なArtisanコマンドを使用して、生成できます。The api.php
and channels.php
route files are no longer present by default, as many applications do not require these files. Instead, they may be created using simple Artisan commands:
php artisan install:api
php artisan install:broadcasting
ミドルウェアMiddleware
以前は、新しいLaravelアプリケーションは、9つのミドルウェアを持っていました。これらのミドルウェアは、リクエストの認証、入力文字列のトリミング、CSRFトークンの検証など、さまざまなタスクを実行していました。Previously, new Laravel applications included nine middleware. These middleware performed a variety of tasks such as authenticating requests, trimming input strings, and validating CSRF tokens.
Laravel11では、これらのミドルウェアをフレームワーク自体に移しました。これらのミドルウェアの動作をカスタマイズするための新しいメソッドをフレームワークへ追加しており、アプリケーションのbootstrap/app.php
ファイルから呼び出せます。In Laravel 11, these middleware have been moved into the framework itself, so that they do not add bulk to your application's structure. New methods for customizing the behavior of these middleware have been added to the framework and may be invoked from your application's bootstrap/app.php
file:
->withMiddleware(function (Middleware $middleware) {
$middleware->validateCsrfTokens(
except: ['stripe/*']
);
$middleware->web(append: [
EnsureUserIsSubscribed::class,
])
})
すべてのミドルウェアは、アプリケーションのbootstrap/app.php
から簡単にカスタマイズできるため、HTTP "kernel"クラスを別に用意する必要がなくなりました。Since all middleware can be easily customized via your application's bootstrap/app.php
, the need for a separate HTTP "kernel" class has been eliminated.
スケジュールScheduling
新しいSchedule
ファサードを使用して、タスクのスケジュールをアプリケーションのroutes/console.php
ファイルで直接定義できるようになりました。Using a new Schedule
facade, scheduled tasks may now be defined directly in your application's routes/console.php
file, eliminating the need for a separate console "kernel" class:
use Illuminate\Support\Facades\Schedule;
Schedule::command('emails:send')->daily();
例外処理Exception Handling
ルーティングやミドルウェアと同様に、例外処理も、例外ハンドラクラスを個別に作成する代わりに、アプリケーションの bootstrap/app.php
ファイルからカスタマイズできるようになり、新しいLaravelアプリケーションに含まれるファイル全体の数を減らせました。Like routing and middleware, exception handling can now be customized from your application's bootstrap/app.php
file instead of a separate exception handler class, reducing the overall number of files included in a new Laravel application:
->withExceptions(function (Exceptions $exceptions) {
$exceptions->dontReport(MissedFlightException::class);
$exceptions->report(function (InvalidOrderException $e) {
// ...
});
})
Controller
ベースクラスBase Controller
Class
新しいLaravelアプリケーションのベースコントローラを簡素化しました。Laravel内部のController
クラスを継承しなくなり、AuthorizesRequests
とValidatesRequests
トレイトを削除しました。これらは、必要に応じてアプリケーションの個々のコントローラで含めてください。The base controller included in new Laravel applications has been simplified. It no longer extends Laravel's internal Controller
class, and the AuthorizesRequests
and ValidatesRequests
traits have been removed, as they may be included in your application's individual controllers if desired:
<?php
namespace App\Http\Controllers;
abstract class Controller
{
//
}
アプリケーションのデフォルトApplication Defaults
新しいLaravelアプリケーションはデフォルトで、データベースストレージにSQLiteを使用し、Laravelのセッション、キャッシュ、キューにdatabase
ドライバを使用します。これにより、追加のソフトウェアをインストールしたり、追加のデータベースマイグレーションを作成したりする必要がなく、新しいLaravelアプリケーションを作成した後、すぐにアプリケーションの構築を開始できます。By default, new Laravel applications use SQLite for database storage, as well as the database
driver for Laravel's session, cache, and queue. This allows you to begin building your application immediately after creating a new Laravel application, without being required to install additional software or create additional database migrations.
加えて、これらのLaravelサービスのデータベース
ドライバは、多くのアプリケーションコンテキストで本番環境で使用するのに十分な堅牢性を持つようになり、ローカルアプリケーションとプロダクションアプリケーションの両方に対し、理にかなった統一した選択を提供しています。In addition, over time, the database
drivers for these Laravel services have become robust enough for production usage in many application contexts; therefore, they provide a sensible, unified choice for both local and production applications.
Laravel ReverbLaravel Reverb
Laravel Reverbは、Joe Dixonが、開発しました。Laravel Reverb was developed by Joe Dixon[https://github.com/joedixon].
Laravel Reverbは、高速でスケーラブルなリアルタイムWebSocket通信をLaravelアプリケーションに直接もたらし、Laravel EchoのようなLaravelの既存のイベントブロードキャストツール群とのシームレスな統合を提供します。Laravel Reverb[https://reverb.laravel.com] brings blazing-fast and scalable real-time WebSocket communication directly to your Laravel application, and provides seamless integration with Laravel’s existing suite of event broadcasting tools, such as Laravel Echo.
php artisan reverb:start
さらに、ReverbはRedisのPub/Sub機能により、水平スケーリングをサポートし、WebSocketトラフィックを複数のバックエンドReverbサーバへ分散して、単一の高需要アプリケーションをサポートします。In addition, Reverb supports horizontal scaling via Redis's publish / subscribe capabilities, allowing you to distribute your WebSocket traffic across multiple backend Reverb servers all supporting a single, high-demand application.
Laravel Reverbの詳細は、完全なReverbドキュメントを参照してください。For more information on Laravel Reverb, please consult the complete Reverb documentation[/docs/{{version}}/reverb].
秒単位のレート制限Per-Second Rate Limiting
秒単位のレート制限は、Tim MacDonaldが貢献しました。Per-second rate limiting was contributed by Tim MacDonald[https://github.com/timacdonald].
Laravelは、HTTPリクエストやキュー投入したジョブを含む全てのレートリミッタで、「秒単位」のレート制限をサポートするようになりました。以前、Laravelのレートリミッタは 「分単位」で制限していました。Laravel now supports "per-second" rate limiting for all rate limiters, including those for HTTP requests and queued jobs. Previously, Laravel's rate limiters were limited to "per-minute" granularity:
RateLimiter::for('invoices', function (Request $request) {
return Limit::perSecond(1);
});
Laravelのレート制限の詳細は、レート制限ドキュメントをチェックしてください。For more information on rate limiting in Laravel, check out the rate limiting documentation[/docs/{{version}}/routing#rate-limiting].
ヘルスルートHealth Routing
ヘルスルートは、Taylor Otwellが貢献しました。Health routing was contributed by Taylor Otwell[https://github.com/taylorotwell].
新しいLaravel11アプリケーションは、単純なヘルスチェックエンドポイントを定義するようLaravelに指示する、health
ルートディレクティブが含まれています。このエンドポイントは、サードパーティのアプリケーションヘルスモニタリングサービスやKubernetesなどのオーケストレーションシステムから呼び出される可能性があり、デフォルトでこのルートは/up
で提供しています。New Laravel 11 applications include a health
routing directive, which instructs Laravel to define a simple health-check endpoint that may be invoked by third-party application health monitoring services or orchestration systems like Kubernetes. By default, this route is served at /up
:
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
このルートに対し、HTTPリクエストが行われると、LaravelはDiagnosingHealth
イベントもディスパッチし、アプリケーションに関連する追加のヘルスチェックを実行できるようにします。When HTTP requests are made to this route, Laravel will also dispatch a DiagnosingHealth
event, allowing you to perform additional health checks that are relevant to your application.
優しい暗号化キーのローテーションGraceful Encryption Key Rotation
優しい暗号化キーのローテーションは、Taylor Otwellが貢献しました。Graceful encryption key rotation was contributed by Taylor Otwell[https://github.com/taylorotwell].
Laravelはアプリケーションのセッションクッキーを含むすべてのクッキーを暗号化するため、基本的にLaravelアプリケーションへのリクエストはすべて暗号化に依存しています。しかし、このため、アプリケーションの暗号化キーをローテーションすると、すべてのユーザーがアプリケーションからログアウトすることになります。さらに、以前の暗号化キーで暗号化されたデータを復号化できなくなります。Since Laravel encrypts all cookies, including your application's session cookie, essentially every request to a Laravel application relies on encryption. However, because of this, rotating your application's encryption key would log all users out of your application. In addition, decrypting data that was encrypted by the previous encryption key becomes impossible.
Laravel11では、APP_PREVIOUS_KEYS
環境変数を使って、アプリケーションの以前の暗号化キーをカンマ区切りのリストとして定義することができます。Laravel 11 allows you to define your application's previous encryption keys as a comma-delimited list via the APP_PREVIOUS_KEYS
environment variable.
値を暗号化するとき、Laravelは常にAPP_KEY
環境変数の「現在の」暗号化キーを使用します。値を復号化するとき、Laravelはまず現在のキーを試します。現在のキーで復号化に失敗した場合、Laravelは値を復号化できるキーが見つかるまで、以前のキーをすべて試します。When encrypting values, Laravel will always use the "current" encryption key, which is within the APP_KEY
environment variable. When decrypting values, Laravel will first try the current key. If decryption fails using the current key, Laravel will try all previous keys until one of the keys is able to decrypt the value.
この優しい復号化アプローチにより、暗号化キーがローテーションされていても、ユーザーはアプリケーションを中断なく使い続けられます。This approach to graceful decryption allows users to keep using your application uninterrupted even if your encryption key is rotated.
Laravelでの暗号化の詳細は、暗号化のドキュメントをチェックしてください。For more information on encryption in Laravel, check out the encryption documentation[/docs/{{version}}/encryption].
パスワードの自動再ハッシュAutomatic Password Rehashing
パスワードの自動再ハッシュは、Stephen Rees-Carterが貢献しました。Automatic password rehashing was contributed by Stephen Rees-Carter[https://github.com/valorin].
Laravelのデフォルトのパスワードハッシュアルゴリズムはbcryptです。bcryptハッシュの「ワークファクター」は、config/hashing.php
設定ファイル、またはBCRYPT_ROUNDS
環境変数で調整できます。Laravel's default password hashing algorithm is bcrypt. The "work factor" for bcrypt hashes can be adjusted via the config/hashing.php
configuration file or the BCRYPT_ROUNDS
environment variable.
通常、bcryptのワークファクターは、CPU/GPUの処理能力が向上するにつれて、増加させ時間をかける必要があります。アプリケーションのbcryptワークファクターを上げると、Laravelはユーザーがアプリケーションで認証する際に、ユーザーパスワードをうまく自動的に再ハッシュするようになります。Typically, the bcrypt work factor should be increased over time as CPU / GPU processing power increases. If you increase the bcrypt work factor for your application, Laravel will now gracefully and automatically rehash user passwords as users authenticate with your application.
プロンプトバリデーションPrompt Validation
プロンプトのバリデーション統合は、Andrea Marco Sartoriが貢献しました。Prompt validator integration was contributed by Andrea Marco Sartori[https://github.com/cerbero90].
Laravel Promptsは、美しくユーザーフレンドリーなフォームをコマンドラインアプリケーションへ追加するためのPHPパッケージで、プレースホルダテキストやバリデーションなどのブラウザライクな機能を備えています。Laravel Prompts[/docs/{{version}}/prompts] is a PHP package for adding beautiful and user-friendly forms to your command-line applications, with browser-like features including placeholder text and validation.
Laravel Promptsはクロージャによる入力バリデーションをサポートしています。Laravel Prompts supports input validation via closures:
$name = text(
label: 'What is your name?',
validate: fn (string $value) => match (true) {
strlen($value) < 3 => 'The name must be at least 3 characters.',
strlen($value) > 255 => 'The name must not exceed 255 characters.',
default => null
}
);
しかし、多くの入力や複雑なバリデーションシナリオを扱う場合、これは面倒です。そこでLaravel11では、プロンプト入力のバリデーションを行う際に、Laravelのバリデータをフルに活用できるようになりました。However, this can become cumbersome when dealing with many inputs or complicated validation scenarios. Therefore, in Laravel 11, you may utilize the full power of Laravel's validator[/docs/{{version}}/validation] when validating prompt inputs:
$name = text('What is your name?', validate: [
'name' => 'required|min:3|max:255',
]);
キュー操作のテストQueue Interaction Testing
キュー操作のテストは、Taylor Otwellが貢献しました。Queue interaction testing was contributed by Taylor Otwell[https://github.com/taylorotwell].
以前は、キュー投入したジョブがリリースされたり、削除されたり、失敗したりを手作業でテストしようとすると面倒で、カスタムキューFakeやスタブを定義する必要がありました。しかし、Laravel11では、withFakeQueueInteractions
メソッドを使用することで、これらのキューのやり取りを簡単にテストできます。Previously, attempting to test that a queued job was released, deleted, or manually failed was cumbersome and required the definition of custom queue fakes and stubs. However, in Laravel 11, you may easily test for these queue interactions using the withFakeQueueInteractions
method:
use App\Jobs\ProcessPodcast;
$job = (new ProcessPodcast)->withFakeQueueInteractions();
$job->handle();
$job->assertReleased(delay: 30);
キューに投入したジョブのテストの詳細は、キューのドキュメントを参照してください。For more information on testing queued jobs, check out the queue documentation[/docs/{{version}}/queues#testing].
新しいArtisanコマンドNew Artisan Commands
クラス生成Artisanコマンドは、Taylor Otwellが貢献しました。Class creation Artisan commands were contributed by Taylor Otwell[https://github.com/taylorotwell].
新しいArtisanコマンドを追加し、クラス、列挙型、インターフェイス、トレイトを素早く作成できるようになりました。New Artisan commands have been added to allow the quick creation of classes, enums, interfaces, and traits:
php artisan make:class
php artisan make:enum
php artisan make:interface
php artisan make:trait
モデルのキャストの向上Model Casts Improvements
モデルのキャストの向上は、Nuno Maduroが貢献しました。Model casts improvements were contributed by Nuno Maduro[https://github.com/nunomaduro].
Laravel11では、モデルのキャストをプロパティではなくメソッドで定義できるようになりました。これにより、特に引数を持つキャストを使用する場合に、合理的で流暢なキャスト定義が可能になりました。Laravel 11 supports defining your model's casts using a method instead of a property. This allows for streamlined, fluent cast definitions, especially when using casts with arguments:
/**
* キャストする属性を取得
*
* @return array<string, string>
*/
protected function casts(): array
{
return [
'options' => AsCollection::using(OptionCollection::class),
// AsEncryptedCollection::using(OptionCollection::class),
// AsEnumArrayObject::using(OptionEnum::class),
// AsEnumCollection::using(OptionEnum::class),
];
}
属性のキャストの詳細は、Eloquentのドキュメントを参照してください。For more information on attribute casting, review the Eloquent documentation[/docs/{{version}}/eloquent-mutators#attribute-casting].
once
関数The once
Function
once
ヘルパはTaylor OtwellとNuno Maduroが貢献しました。The once
helper was contributed by Taylor Otwell[https://github.com/taylorotwell] and Nuno Maduro[https://github.com/nunomaduro].
once
ヘルパ関数は、指定したコールバックを実行し、リクエストの間、結果をメモリにキャッシュします。以降、同じコールバックでonce
関数を呼び出すと、以前にキャッシュした結果を返します。The once
helper function executes the given callback and caches the result in memory for the duration of the request. Any subsequent calls to the once
function with the same callback will return the previously cached result:
function random(): int
{
return once(function () {
return random_int(1, 1000);
});
}
random(); // 123
random(); // 123 (cached result)
random(); // 123 (cached result)
once
ヘルパの詳細は、ヘルパのドキュメントを参照してください。For more information on the once
helper, check out the helpers documentation[/docs/{{version}}/helpers#method-once].
内部メモリデータベースを使ったテストのパフォーマンス向上Improved Performance When Testing With In-Memory Databases
内部メモリデータベースを使ったテストのパフォーマンス向上は、Anders Jenboが貢献しました。Improved in-memory database testing performance was contributed by Anders Jenbo[https://github.com/AJenbo]
Laravel11では、テスト中に:memory:
SQLiteデータベースを使用する際のスピードが大幅に向上しました。これを実現するために、LaravelはPHPのPDOオブジェクトへの参照を保持し、接続をまたいで再利用するようになりました。大抵、テスト時間の合計が半分になりました。Laravel 11 offers a significant speed boost when using the :memory:
SQLite database during testing. To accomplish this, Laravel now maintains a reference to PHP's PDO object and reuses it across connections, often cutting total test run time in half.
MariaDBのサポート向上Improved Support for MariaDB
MariaDBのサポート向上は、Jonas StaudenmeirとJulius Kiekbuschが貢献しました。Improved support for MariaDB was contributed by Jonas Staudenmeir[https://github.com/staudenmeir] and Julius Kiekbusch[https://github.com/Jubeki]
Laravel11では、MariaDBのサポートを改善しました。以前のLaravelリリースでは、LaravelのMySQLドライバ経由でMariaDBを使用できました。しかし、Laravel11では専用のMariaDBドライバが搭載され、このデータベースシステムのデフォルトが改善されました。Laravel 11 includes improved support for MariaDB. In previous Laravel releases, you could use MariaDB via Laravel's MySQL driver. However, Laravel 11 now includes a dedicated MariaDB driver which provides better defaults for this database system.
Laravelのデータベースドライバの詳細は、データベースドキュメントをチェックしてください。For more information on Laravel's database drivers, check out the database documentation[/docs/{{version}}/database].
データベースの調査とスキマ操作の向上Inspecting Databases and Improved Schema Operations
データベースの調査とスキマ操作の向上は、Hafez Divandariが貢献しました。Improved schema operations and database inspection was contributed by Hafez Divandari[https://github.com/hafezdivandari]
Laravel11では、カラムのネイティブな変更、リネーム、削除を含む、データベーススキーマの操作と検査メソッドを追加しています。さらに、高度な空間型、デフォルト以外のスキーマ名、テーブル、ビュー、カラム、インデックス、外部キーを操作するためのネイティブスキーマメソッドを提供しています。Laravel 11 provides additional database schema operation and inspection methods, including the native modifying, renaming, and dropping of columns. Furthermore, advanced spatial types, non-default schema names, and native schema methods for manipulating tables, views, columns, indexes, and foreign keys are provided:
use Illuminate\Support\Facades\Schema;
$tables = Schema::getTables();
$views = Schema::getViews();
$columns = Schema::getColumns('users');
$indexes = Schema::getIndexes('users');
$foreignKeys = Schema::getForeignKeys('users');