Laravel11変更点まとめ:ミドルウェアや搭載されそうな新機能をまとめ

Laravelバージョンアップ・ニュース

Laravel11は2024年に出る予定になっています。Laravel9とLaravel10は、ともに2月にリリースされているので、もうそろそろかな、という感じです。

いちはやくLaravel11を試した見ましたが、感想をひとことでまとめると「ファイルが減って、すっきりした!」です。Laravel10からの変更点をお見せしていきますね。

「Laravel11の内容をいち早く知りたい!」と思ったら、参考にしてください。

なお、変更内容は変わる可能性があります。この点、ご了承ください。

以前もLaravelリリース前に予告されていた機能と、リリース後の内容が変わったりしました。開発者の皆さん、色々大変そうですね。

Laravel11インストール方法

Laravel11をいち早く試したい!という方は、下記コマンドでLaravel11のプロジェクトをインストールできます。なお、Laravel11からは、PHPは8.2以上が必要になります。

ちなみに、Laravel10では、PHPは8.1以上でOKでした。

Laravel11で搭載されそうな新機能をまとめ

ここから、Laravel11での変更点・搭載されそうな機能をご紹介していきます。わたしが「これはインパクト大きい!」と感じた順番にお伝えしていきますね。

Laravel11ではミドルウェアが消えた!!

まずインパクト大きそうなのは、デフォルトでミドルウェアがなくなった点です。

【app/Http】

これまでapp/Http/Middlewareには、デフォルトで9個のmiddlewareファイルがありました。Laravel11では、フォルダごと、ごっそりmiddlewareが消えています。

でも、安心してください。はいていますよ!

ではなく。。。安心してください。ミドルウェアは使えますよ!

ミドルウェアファイルは、単に、デフォルトで表示されていないだけで、これまでどおり使えます。

なぜミドルウェアを非表示にしたのか。Taylorさん(Laravelの作成者)の言葉をまとめると、次のとおりです。

多くのデフォルトのミドルウェア、たとえば、クッキーをencryptするmiddlewareなどは、ユーザーが手をくわえることはほとんどない。それなら、必要な時だけ簡単にカスタマイズできるようにできれば良い。

たしかに、デフォルトのミドルウェアをカスタマイズする必要性って、少ないですよね。非表示にしたほうがスッキリします。

なお、ミドルウェアはこれまでどおり、下記コマンドで作成可能です。作成後は、これまでどおり、app/Http/Middlewareの中にミドルウェアファイルができます。

Laravel11では、ミドルウェアを登録する場所が変わる

Laravel11では、ミドルウェアと共に、ミドルウェア登録に使ったkernel.phpファイルも消えています。

今後は、作成したミドルウェアの登録場所は、bootstrap/app.phpになるようです。これまで、あまり使う機会がなかった場所ですね。

【bootstrap/app.php】

routesからapiとconsoleが消えている

なお、上記のbootstrap/app.phpファイルを見ると、routes/api.phpとroutes/channels.phpがコメントアウトされています。

こちらも、すべてのユーザーが使うわけではないため、デフォルトではコメントアウトされているようです。routesフォルダの中にも、api.phpとchannels.phpファイルがなくなっていました。

【routes】

configフォルダの中身も空っぽ

さらに、configフォルダの中身も空っぽです。こちらも、デフォルトで変更することが少ないためだと推測されます。

なお、編集が必要なときは、vendor:publishコマンドを実行して、configファイルを作れます。

パブリッシュしたconfigファイルを編集する際には、更新が必要な箇所のみ残しておけば良いようです。特に記載がない場合には、デフォルト値が使われるとのこと。

コードの量を少なくしておけますね。

モデルのcastsが静的プロパティからメソッドに変更

castsは、これまで静的プロパティだったのが、メソッドとなるようです。Laravel10では、Userモデルファイルには、デフォルトで下記のようにcastsが入っていました。

【User.php(Laravel10)】

Laravel11では、次のようにcastsが入っています。

【User.php(Laravel11)】

関数になることで、処理の追加などが可能になり、自由度が上がりそうですね。

マイグレーションファイルもコンパクトに

Laravel11では、マイグレーションファイルもコンパクトになっています。

Laravel10では、usersテーブルなど、デフォルトで4個のマイグレーションファイルが入っていました。

Laravel11では、ひとつのファイル2つのテーブル作成用のコードが入っています。デフォルトで作成されるテーブルも少し変わっています。

【Laravel11のデフォルトのdatabase/migrations】

Consoleもない

もはや驚きませんが、app/Consoleもデフォルトではなくなっていました。こちらは、コマンド処理などの際に使いますが、使わないケースも多いため、デフォルトでは非表示になったのだと考えられます。

 

本記事の主な参考元

今回の記事は、2023年7月19日のLaravelのカンファレンス(Laracon)におけるTaylor Otwellさん(Laravelの生みの親)による講演の動画を参考にしています。元の動画は、下記をご覧ください。

Taylor Otwell "Laravel Herd, Laravel 11, Laravel Folio, Laravel Volt" – Laracon US 2023 Nashville

動画を参考に、実際にリリース前のLaravel11でプロジェクトを作り、検証しています。

なお動画では、Laravel FolioやLaravel Voltといった新しいライブラリの紹介もありました。Laravel Folioについては、こちらご覧ください。ルーティングが不要になる機能です。

Laravel Voltについてはこちらをご覧ください。Vue.jsのように、Livewireのコードを1つのファイルに集約できます。

使ってみましたが、両方とも、コードやファイルの量を減らせる便利な機能です。

さいごに

Laravel11は、ひとことでいうと、「スッキリ★スリム化」が実現されたなぁ、という印象です。

デフォルトの設定を変える機会が少ないファイルは非表示になり、見やすくなった気がします。

リリース時には、また変更があるかもしれません。Laravelの公式アナウンスに沿って、随時更新していきます。

Laravel11の動向が気になったら、また見に来てくださいね^^

Laravelバージョンアップ・ニュース

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel10版テキストに加え、Laravel8版・Laravel9版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる

Laravelの本を書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravel10対応

Laravelの使い方を分かりやすく解説した書籍を出版しました。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる


Laravelの教科書限定コミュニティ【Laravelの教科書ラボ】はじめました。
セミナーで、StripeやChatGPT連携、デバックなど実践スキルを分かりやすく学べます。

ラボの案内を見てみる

Twitter始めました。
40代からプログラミング!

コメント

  1. 黒澤勝 より:

    Laravel11、色々と非表示になったんですね。むしろLaravelを使う人ってミドルウェアだったり、apiだったりを使う人じゃないのかな?と感じてしまいます。なんとなくブログ作るとかなら、Laravelではなく、安直にWordPressでいいのではないかと思ったりです。PHP教育のためにたまに読んでいるので記事ありがとうございます。

    • Junko Junko より:

      そうですよね。
      分かりやすさと、カスタマイズのしやすさ、両方のバランスをとるのは難しそうですが。
      コメントありがとうございます^^

タイトルとURLをコピーしました