Laravel10がもうすぐリリース
年の暮れ、年明け、今に至るまでとても忙しく何度も禁煙をやめようと思いました。
2023年も禁煙を続けられております、エンジニアの柿添です。
今年も健康のため禁煙を続けたいと思います。
Laravelの次期バージョン
Laravel の次期バージョンである v10
は、
2023年2月にリリースが予定されており、
Laravelの次のメジャーバージョンとなります。
実際は2023年2月7日予定でしたが、
執筆現在もまだリリースされておりません。
Laravel10のリリースはいつになるのでしょうか?
shooting for next week 👍
— Taylor Otwell 🪐 (@taylorotwell) February 8, 2023
Laravel10のリリースはどうやら来週のようですね。
Laravelの今後のバージョンアップ予定
- Laravel 10: 2023 年 2 月
- Laravel 11: 2024 年 2 月
が予定されております。
Laravel 10 のバグ修正は 2024年8月6日まで、
セキュリティ修正は 2025年2月4日までの提供予定です。
Laravel10のドキュメント
Laravel v10 Document
Laravel v10 Upgrade
Laravel10の対応PHPバージョン
Laravel 10は PHP 8.1.0以上が必要です
Laravel 10は PHP 8.0.x以下のサポートを終了します
Laravel 10 で PHP8.x のサポートを終了します。
必要な最小バージョンは PHP^8.1です。
10.x と 9.xを比較すると、readonlyプロパティなどのPHP^8.1.x の機能が確認できます。
Laravel 10 スケルトンコードにネイティブ型宣言が追加
Laravel10ではアプリケーションのすべてのスケルトンメソッドにタイプヒントと戻り値の型が追加される予定で、
フレームワークレベルでの下位互換性を損なうことなく、最新の PHP 型ヒント機能を Laravel プロジェクトにもたらす方法で、型が追加されているとのこと。
C-limber システム事業部は戻り値までしっかり書いているはずなので慣れ親しんだものかと思います。
- Return types
- Method arguments
- Redundant annotations are removed where possible
- Allow user land types in closure arguments
- Does not include typed properties
ex: スケルトンメソッドの戻り値の型がarrayである場合、ネイティブ型では不可能な場合に、型をより明確にするために注釈が存在する。
/**
* Get the host patterns that should be trusted.
*
* @return array<int, string>
*/
public function hosts(): array
{
return [
'laravel.test',
];
}
上記の例では、IDE は配列の形状を認識できます。
さらに、Laravel10よって生成されるすべてのコードは、上記例同様の 型ヒント ガイドラインに従います。
そのため、makeコマンドを使用してファイルを生成すると、上記と同様の ネイティブ型ヒント が出力されます。
Laravel 10 Laravel Pennant リリース
フィーチャーフラグを簡単にを追加するファーストパーティパッケージになります。
このフィーチャーフラグとは、コードを変更することなく、実行時に機能を有効化または無効化するためのものです。
例えば、ある機能を本番環境の一部のユーザーだけにデプロイしたい場合や A/B テストなどに最適です。
また利用しやすい2つのドライバを選択できます。
- すぐに使用できるインメモリarrayドライバ
- 永続的な機能ストレージ用のdatabaseドライバ
定義は Feature::define method:
で簡単に可能です。
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')) {
// ...
}
@feature('new-onboarding-flow')
<div>
<!-- ... -->
</div>
@endfeature
Laravel 10 では呼び出し可能な検証ルールがデフォルトに
Laravel 10 以降、Invokable Validation Ruleがデフォルトになりました。
Laravel 9以前
# Laravel 9 creates a rule class that implements the
# Illuminate\Contracts\Validation\Rule interface
artisan make:rule Uppercase
# Laravel 9 flag to create an invokable and implicit rule
artisan make:rule Uppercase --invokable
artisan make:rule Uppercase --invokable --implicit
Laravel 10以降
# Laravel 10 creates an invokable rule by default
artisan make:rule Uppercase
# Laravel 10 implicit rule
artisan make:rule Uppercase --implicit
Laravel 10 での テスト プロファイル オプション
laravel 10 に追加された新機能である --profile
、
遅いテストを簡単に見つけられるようにするオプションです。
--profile
オプションは、テストを高速に保ち、遅いテストを修正するか、
それらをより適切にグループ化して、実行をスキップするのに役立ちます。
Laravel 9 からの非推奨
Laravel 9 で非推奨とマークされたメソッドは、Laravel 10 で削除されています。
- Remove deprecations
- Remove deprecated dates property
- Remove deprecated method
- Remove deprecated assertTimesSent method
- Remove deprecated ScheduleListCommand’s $defaultName property
- Remove deprecated Route::home method
- Remove deprecated dispatchNow functionality
最後に
破壊的な更新はないかと思います。
laravel new <your-project-name> --dev
で先に触れておくのも良いかもしれません。