Laravel
から逃げるな。
最近 TypeScript
に逃げてたけど、やっぱり Laravel
だなぁと帰ってきました。
ただ Laravel12
はあんまり大きい変更は無いみたい。
なので重要そうなところをピックアップしてみました。
サポート期間
まずはサポート期間。
今の Laravel12
は 2027年の2月までとのこと。
それよりも Laravel10
はもうサポート外なのに驚愕。
Laravel のアップデートはそこまで難しくないので、早めに対応しよう。
PHP
のバージョン範囲は変わってなさそう。
スターターキット
Laravel のスターターキットに Inertia2
や shadcn/ui
が採用されたみたい。
初回構築がよりしやすくなるね。
Inertia 2
Inertia
は Laravel 上で SPA を作成するためのアダプターのようなもの。
API の作成を必要としないので、爆速の開発が可能となる。
いわゆる モダンモノリス
。
(一方若干密結合になるので、開発方針は決めておく必要がある。)
そんな Inertia が 2024年12月 にメジャーアップデートをしていたみたい。
- Vue2 の廃止
- ルーティングの改善(replace, prefetch)
- 履歴の暗号化
など、使いやすい機能を増やしてくれたみたい。
流れを見るに、今後 Laravel の中核になってくると感じるので、プロダクションへの採用も問題なさそうな所感がある。
やろうと思えば Next.js
や Nuxt.js
への移行はそこまで苦ではない。
Carbon 3
Laravel12
から Carbon2 のサポートが削除された。
diffIn*
メソッドが浮動小数点数を返すようになったらしいので、そこだけ要注意。
長期間維持するシステムには、自動テストを書いておこう...。
Validation ルールの仕様変更
image
ルールから SVG
が除外されたみたい。
確かに jpeg / png のファイルの中に svg を放り込まれたら困るので、正しい判断かと。
必要であればルールを改良する必要がある。
また、mergeIfMissing
で dot形式 にて初期値を流し込めるらしい。
これは便利かもしれない。
dot形式
は神。
$request->mergeIfMissing([
'user.last_name' => 'Otwell',
]);
浮動小数点のマイグレーションの仕様変更
float
は float 相当、double
は double 相当の絡む定義になるみたい。
以前は特に区別されなかった場合もあったりしたから、それを厳格化したみたいね。
デフォルト値を利用している場合は要注意。
個人的には float
double
は問題になることが多いから decimal
を使うことをお勧めする。
メモリ無尽蔵、高性能CPUの時代に浮動小数点は扱いたくないのが本音。
Doctrine DBALの削除
個人的にびっくりした項目。
v5 くらいからDB操作に必須だったので、もう依存していないのかぁと。
ソフトウェアの維持を考えると外部への依存性は少ない方が良いよね。
ちょっとさびしい。
おわりに
他にもいろいろあるが、気になったのはこのへん。
デフォルトで用意されているファイル群が減ったり、Kernel の仕様が変わったりしてるけど、そのへんは過去のままで大丈夫だしね。
ドキュメントもしっかりしてるし、やっぱり Laravel だね。
適当さと堅牢さがちょうどいい。