PHP8.4がリリースされました。セキュリティサポートは2028-12-31までの予定です。
PHP: PHP 8.4.0 Release Announcement
PHP: PHP 8.3.x から PHP 8.4.x への移行 – Manual
これまで通り公式から実行ファイルが提供されています。
PHP: Downloads
PHP For Windows: Binaries and sources Releases
php Tags | Docker Hub#name=8.4
PHP8.4から追加された機能は既に記事にされてる方も多く、次リンク等で読めます。
【PHP8.4】PHP8.4の新機能 #rfc – Qiita
【PHP】PHP8.4で注目してる新機能の紹介│株式会社シーポイントラボ
PHP8.3から制限された機能は少なく、なんとなくスッとバージョンアップできそうな気がします。恐らく非推奨になった暗黙的な nullable パラメータが引っ掛かるでしょうが他は少ないはずです。
暗黙的な nullable パラメータの非推奨は次のようなものです。
<?php // stringのみでは null を受け入れられない。一方でデフォルト値としてnullを受け入れられてしまう。 // この不一致を避けるための非推奨化 function foo(string $a = null) {}
これを次のように直します
<?php function foo(string|null $a = null) {} // あるいは function foo(?string $a = null) {}
ちょっと手間ですが正規表現でfunction\s*[a-zA-Z][a-zA-Z0-9]*.*[(,]\s((?!\$)[a-zA-Z0-9|\s]+)(\s*\$[a-zA-Z][0-9a-zA-Z]+\s*=\s*null)
と検索してプロジェクトの中の型と=nullのデフォルト値を持つ問題が起きそうな関数とメソッドを洗い出し、それぞれつぶすことになりそうです。上記正規表現をもういくらか加工すれば正規表現の置換で全部解決できるかもしれません。正規表現の図示は次ぺージでできるので活用できそうです。
Regexper