こんにちは!トビログ管理人のトビウオです。回は、Laravel10の新機能について詳細に解説していこうと思います。
(記事作成日 2023年7月10日)

この記事では、
Laravel10の新機能について解説してきます!
そもそもLaravelってどのくらいでupdateされているの?
Laravelとその他のファーストパーティパッケージはセマンティックバージョニングに従います。
メジャーフレームワークのリリースは毎年(約Q1)行われ、マイナーリリースとパッチリリースは週に1度リリースされることもあります。
マイナーリリースとパッチリリースには劇的な変更が含まれることはありません。これにより、開発者は安心してアップデートを行うことができます。

メジャーフレームワークのリリースは
毎年行われるので、Laravel11も…
型ヒント
Laravel 10.xでは、全てのアプリケーションスケルトンメソッドとスタブファイルに引数と戻り値の型を導入しました。これにより、フレームワーク全体でクラスを生成するために使用されるスタブファイルに型ヒントが追加されました。これは、PHPの新しい型ヒント機能を最大限に活用するためのもので、コードの可読性と安全性を向上させます。
public function index(): View
{
return view('index');
}
上記の例では、index
メソッドがView
型の値を返すことを示しています。これにより、開発者はメソッドの期待する戻り値を明確に理解することができます。

最近は型を使ってプログラミングする
流れになっている感じがします
Laravel Pennant
新しいファーストパーティパッケージであるLaravel Pennantがリリースされました。
Laravel Pennantは、アプリケーションのフィーチャーフラグを管理するための軽量でストリームライン化されたアプローチを提供します。
これにより、新しい機能を段階的にロールアウトしたり、特定のユーザーグループにのみ新機能を提供したりすることが容易になります。
use Illuminate\Support\Facades\Route;
use Laravel\Pennant\Facades\Pennant;
Route::get('/dashboard', function () {
if (Pennant::enabled('new-dashboard')) {
return view('new-dashboard');
}
return view('dashboard');
});
上記の例では、new-dashboard
フィーチャーフラグが有効化されている場合に新しいダッシュボードを表示し、そうでない場合には既存のダッシュボードを表示しています。

ABテストとかでも使えそうですが、
これについてはまた詳細をまとめます!
プロセスの抽象化
Laravel 10.xでは、新しいProcess facadeを通じて外部プロセスを開始し、それらと対話するための美しい抽象化レイヤーが導入されました。
これにより、プロセスを簡単に開始し、それらと対話することができます。
また、プロセスプールを使用して複数のプロセスを同時に実行し、管理することも可能になりました。
use Illuminate\Support\Facades\Process;
$process = Process::create(['npm', 'install']);
$process->run(function ($type, $line) {
echo $line;
});
上記の例では、npm install
コマンドを実行する新しいプロセスを作成し、その出力をリアルタイムで表示しています。

これはとても便利…!
テストプロファイリング
Artisanテストコマンドには新しい–profileオプションが追加され、アプリケーションの最も遅いテストを簡単に特定することができます。
これにより、パフォーマンスのボトルネックを特定し、テストの効率を向上させることが可能になります。
php artisan test --profile
上記のコマンドを実行すると、テストの実行時間が表示され、最も遅いテストを特定することができます。

テストをしっかり書かなければ…ですね
Pest Scaffolding
新しいLaravelプロジェクトは、デフォルトでPestテストスケルトンを使用して作成することができます。これにより、テスト駆動開発(TDD)を容易に行うことができます。
laravel new example-app --pest
上記のコマンドを実行すると、Pestを使用した新しいLaravelアプリケーションが作成されます。

こちらについても別記事で解説をしたいと思います!
Generator CLI Prompts
Laravelのビルトインmakeコマンドは、入力を必要としないように改善されました。
コマンドが入力なしで呼び出されると、必要な引数をプロンプトで求められます。
これにより、コマンドラインでの開発がより便利になりました。
php artisan make:controller
上記のコマンドを実行すると、作成するコントローラの名前をプロンプトで求められます。

コマンドラインでの開発
便利ですよね
パスワード生成ヘルパー
新しいStr::password
メソッドを使用すると、指定した長さの安全なランダムパスワードを生成することができます。
パスワードは文字、数字、記号、スペースの組み合わせで構成されます。デフォルトでは、パスワードは32文字です。
use Illuminate\Support\Str;
$password = Str::password();
// 'EbJo2vE-AS:U,$%_gkrV4n,q~1xy/-_4'
$password = Str::password(12);
// 'qwuar>#V|i]N'
上記の例では、Str::password
メソッドを使用してランダムなパスワードを生成しています。

randomとの違いがいまいちわかってませんが、
これはこれで便利そうですね
Laravel 9からの非推奨メソッドの削除
Laravel 9で非推奨とされたメソッドは、Laravel 10で削除されます。リリースアップグレードガイドでは、すべての非推奨メソッド、潜在的な影響評価、およびアップグレード方法が詳述される予定です。
Laravel 10へのアップグレード
最も簡単なアップグレード方法は、Laravel Shiftを利用することです。これにより、アプリケーションのアップデートを自動化し、常に最新の状態に保つことができます。また、アップグレードガイドに従うことも可能です。
以上がLaravel 10の主な新機能と改善点になります。さらに詳しい情報は公式のリリースページをご覧ください。

最新のlaravelを使って
どんどん開発をしていきましょう!
参考にしたサイト
今回の記事は以下の記事を参考に作成しました!

コメント