Laravel:バージョン5から今日まで

Laravelは単に変化したのではない。成長したのだ。

古いLaravel 5のプロジェクトを開くと、異なる年代の部屋が混在する家のようなものが見えてくる。動作はするが、コントローラーは多くの役割を担いすぎている。ミドルウェアは古く、ヘルパーファイルは乱雑だ。

それでも、核となる部分は変わらない。今でもroutes、Eloquent、migrations、そしてBladeを使用している。

Laravelは別のフレームワークになったのではない。同じ理念の成熟したバージョンになったのだ。それは、クリーンなデフォルトを提供し、インフラ周りの調整に追われることなくプロダクトをリリースできるようにすることだ。

技術の進化

Laravel 5は堅実なツールボックスだった。PHPを再び本格的なプラットフォームとして感じさせてくれた。提供されたのは:

  • リクエストフィルタリングのためのMiddleware。
  • バリデーションを整理するためのForm requests。
  • バックグラウンドタスクのためのJobsとqueues。
  • 表現力豊かなデータベースモデルのためのEloquent。

Laravel 6、7、8は、日々の作業をよりスムーズにすることに焦点を当てた。

  • セマンティックバージョニングが安定性をもたらした。
  • Factoriesによってテストデータの作成が容易になった。
  • Blade componentsがコードの重複を防いだ。
  • SanctumがAPI認証を簡素化した。

Laravel 9と10は、モダンなPHPを取り入れた。

  • 型付きプロパティや、より優れた戻り値の型が利用可能になった。
  • テストがワークフローの核心的な一部となった。
  • エコシステムは単なるコードの枠を超えて拡大した。

モダンなLaravelは、完全なワークショップだ。デプロイ、モニタリング、そしてAIを意識したワークフローまで含まれている。

エコシステムこそが真の力

Laravelは単なるフレームワークではない。サービスの都市だ。初日からすべてが必要なわけではないが、それらが存在することを知っておくべきだ:

  • Deployment(デプロイ):Forgeがサーバーを管理する。VaporがAWS上でのサーバーレスのスケーリングを担う。Envoyerがダウンタイムなしのデプロイを実現する。
  • Management(管理):Novaがプレミアムな管理パネルを提供する。
  • Visibility(可視化):HorizonがRedisのキューを監視する。Telescopeがデバッグのアシスタントとして機能する。Pulseがパフォーマンスを追跡する。
  • Real-time(リアルタイム):ReverbがネイティブのWebSocketサポートを提供する。
  • Core Utilities(コアユーティリティ):Cashierが請求を処理する。Scoutが検索を処理する。SanctumがAPI認証を処理する。

フレームワークからエコシステムへの転換

最大の変化は、レバレッジ(活用できる力)のレベルだ。Laravel 5はPHPを整理するのを助けてくれた。モダンなLaravelは、構築、デプロイ、監視、スケーリング、そして検索を助けてくれる。

それは、重いバックパックを背負う状態から、整理された機内持ち込みバッグを使う状態へと移行させるようなものだ。荷物は減るが、能力はすべて維持される。

レガシーアプリをアップグレードするためのアドバイス

アップグレードを「すべてを書き換えるミッション」と考えてはいけない。人が住んでいる家をリノベーションするように扱うべきだ。

  • 一度に1つのメジャーバージョンずつアップグレードする。
  • テストを活用してビジネスロジックを保護する。
  • まずパッケージの依存関係を確認する。
  • リリースノートだけでなく、アップグレードガイドを読む。

退屈なインフラこそが美しい。それは、配線作業ではなく、プロダクトのロジックにエネルギーを注げることを意味するからだ。

出典: https://dev.to/nazar_boyko/laravel-from-version-5-to-today-the-framework-grew-up-with-us-3cil