🐕

Laravelリリースノートを振り返る

2023/12/22に公開

この記事は「 めぐろLTのアドベントカレンダー 」の22日目の記事です。

こんにちは、にかわどりです!今年も残すところあとわずかですね。
今年からエンジニアとしてフロントからバックエンドまで幅広く経験を積ませてもらい、自分のできる幅も広がって成長を感じています。最近はLaravelを使った開発をしています🙌

今回「めぐろLT」のイベントでアドベントカレンダーが行われたので、今年最初で最後の記事に挑戦です!
普段「めぐろLT」では、半径100km以内ならどこからでも参加OKなオフラインイベントを開催してるのでぜひ足を運んでみてください!

Laravel振り返る

開発に使用しているLaravelですが、これまでバージョンについて意識を向けたことがありませんでした。エンジニア2年目を迎える前に使用しているフレームワークの歴史くらいは振り返ろうと思い記事にしてみます。

公式ドキュメント:https://laravel.com/
日本語ドキュメント:https://readouble.com/

現在のプロダクトでは一番古くてLaravel 7.0を使用しています。1つ前のバージョン6.0~10.0まで触れたいと思います。※量が多かったので気になった変更点のみ記載しました。

Laravel 6.0

主な変更点
Semantic Versioning: セマンティックバージョニング規約に準拠
Gate::inspect: 認証周りのエラーメッセージ取得方法を改善
LazyCollection: メモリ使用量を効率的に管理可能な機能
Eloquent Subquery Enhancements: サブクエリSELECTなどの追加による機能強化
Laravel UI: パッケージとして独立化

Laravel 7.0

主な変更点
Laravel Sanctum: SPAやトークンベース向けの認証機能
Custom Eloquent Casts: 組み込みキャストタイプのカスタム
Blade Component Tags & Improvements: Blade内でのコンポーネントの使用が向上
HTTP Client: HTTPリクエストの取り扱いが簡単かつ効率的に
Route Caching Speed Improvements: ルートキャッシングの速度が向上
CORS Support: クロスオリジンリソースシェアリング(CORS)のサポート
Artisan test Command: テスト実行のためのArtisanコマンドの追加

Laravel 8.0

主な変更点
Laravel Jetstream: laravel/uiから認証周りやUIなどの改善
Models Directory: デフォルトでapp/Modelsの追加
Model Factory Classes: ファイルベースからクラスベースに変更
Job Batching: 複数のジョブを一つのバッチとして処理し、成功や一部の失敗を管理
Improved Rate Limiting: リクエスト制限などの機能強化
Routing Namespace Updates: ルーティングの名前空間の更新

Laravel 9.0

主な変更点
PHP 8.0: Laravel 6.0から使用可能でしたが、PHP 8.0以上が必要に
Improved Eloquent Accessors/Mutators: Eloquentのアクセサーとミューテーターの改善
Enum Eloquent Attribute Casting: Enumを使ったEloquent属性のキャストがサポート
Improved Validation Of Nested Array Data: 入れ子の配列データのバリデーションが改善
Test Coverage Using Artisan test Command: testコマンドでテストカバレッジの計測がサポート
Improved Collections IDE Support: コレクションのIDEサポートが改善。効率的な開発が可能に

Laravel 10.0

主な変更点
Types: 型システムが強化され、より厳密で安全なコーディングが可能に
Laravel Pennant: フィーチャーフラグ管理システム「Laravel Pennant」が導入され、機能の段階的なデプロイやテストが改善
Test Profiling: テストのパフォーマンス分析と最適化が改善
Pest Scaffolding: テスト環境の改善
Generator CLI Prompts: LaravelのジェネレータツールがCLIプロンプトをサポート
Horizon / Telescope Facelift: リッチな外観に更新

Laravel6~10を振り返り

上記を図にしてみるとこんな感じになりました。

変更点などは、だいぶ省略していますがこうしてみると年を重ねるごとに機能が充実していっているのがわかりますね。
個人的にLazyCollectionTest Profilingの機能を使ってみたいなと思いました。
特にLazyCollectionがデータを小分けして読み込めるのでめちゃめちゃ有能。普通のcollectionと評価されるタイミングが違うので使い方に慣れないといけなそうです。次記事の題材にさせてください笑

最後に

リリースノート見るだけでも、知らなかった機能がたくさん知れたので記事を書くきっかけになった「めぐろLT」と「社内のメンバー」に感謝です🙏
来年は、技術記事を書くことやLT登壇に挑戦したいです。
ここまで読んでいただきありがとうございました〜!

Discussion