Closed3
Laravel 9.0 新機能 キャッチアップ
概要
- PHP 8.0 が最低限必要
- Symfony6系を利用している
- 次のLTSとなる
version | release date |
---|---|
Laravel 9.0 | 2022年1月(January 2022) |
Laravel 10.0 | 2023年1月(January 2023) |
Laravel 11.0 | 2024年1月(January 2024) |
新機能
Anonymous Migtration
そもそもMigration自体にそれぞれ名前をつける必要があるんだっけ?という疑問から生まれた機能。
該当Issueはこちらで参考の書き方は次のとおり。
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('people', function (Blueprint $table)
{
$table->string('first_name')->nullable();
});
}
};
New Query Builder Interface
クエリビルダインターフェースが提供されるようになる。これにより補完周りがかなり便利に。
こちら のプルリクエストにもあるように、補完が効いているときに、「Query\Builder」なのか「Eloquent\Builder」なのか「Eloquent\Relation」なのかによって補完が間違っているせいで一度エラーが出たなんて経験がある程度補完を使ったことがある人なら誰しもあるはず。そのエラーが出なくなるらしい。
return Model::query()
->whereNotExists(function($query) {
// $query is a Query\Builder
})
->whereHas('relation', function($query) {
// $query is an Eloquent\Builder
})
->with('relation', function($query) {
// $query is an Eloquent\Relation
});
PHP 8 String Functions
\Illuminate\Support\Strクラスの内部でのstr_contains() 、 str_starts_with() 、およびstr_ends_with()のphpの標準関数の利用が始まる。今までphpの標準関数に文字列の中に特定nの文字が含まれるのかなどといった関数がなかったため、Laravelでは、独自のラッパーメソッドを実装していた。今回でその独自実装でなくなり、標準関数の利用が始まる
プルリクエストは こちら
Since PHP 8 will be the minimum, Tom Schlick submitted a PR to move to using str_contains(), str_starts_with() and str_ends_with() functions internally in the \Illuminate\Support\Str class.
From SwiftMailer to Symfony Mailer
プルリクエストはこちら
SymfonyがSwiftMailerを非推奨としたため、Laravel9で、すべてのメールトランスポートにSymfonyMailerを使用するように変更された
Symfony deprecated SwiftMailer and Laravel 9 makes the change to use Symfony Mailer for all the mail transports. This does open up a few breaking changes and you can review the PR for all the details. The Laravel 9 upgrade guide will include instructions once it's officially released.
参考
LTSにおけるアップデート(6.x -> 9.x)について
Laravel8での変更が鬼門となりそう
- モデルファクトリが8からクラスベースの書き方に変更があった。しばらくは一旦ヘルパーで捌けるとはいえ、長期的なことを考えると、書き換えておいた方が良さそう
予定されている8.x->9.xのアップグレードガイド
このスクラップは2021/11/29にクローズされました