PHP5.3 -> PHP8.1 のアップデートで行ったこと
php5.3からPHP8系へアップデートを実施した記録。
※ 結果として、最初に見積もりで想定できる内容ではなかった。かなり余裕をもった工数にすることが望ましい。
想定していた内容
mysql → mysqli
mysql関数 が削除されたためmysqliへ変更
split → explode
非推奨から削除されたため
classの__constructの宣言
クラス名と同じ関数ではなく、__constructへ
追加で修正した内容
0除算
WARNINGからDivisionByZeroErrorエラーをthrow
計算部分で割り算をおこなっている部分を見直し
連想配列の宣言されていないkeyへのアクセス
NOTICEからWARNINGに変更
エラーが出るたびにarray_key_existsかissetでチェック
undefined variable
変数宣言がない場合のエラーがNotice -> Warning
最初に宣言するように修正
mysqliのエラー時の挙動
throwになる挙動をエラー関数で取得に変更
// MySQLiのエラーレポートモードを設定 mysqli_report(MYSQLI_REPORT_OFF );
ただの関数内の$this削除
関数内で$thisを使用していたがclassでないため不要 7.1以降使えないため削除
@エラー抑制
完全に抑制できない。
try-catchやエラーにならないプログラムに修正
mb_convert_encording
適切な文字でない場合、WARNING から ValueErrorエラーをthrow
float から int への暗黙の変換は推奨されなくなりました
エラーがでたら修正
行わなかった対応
文字コードの対応をする必要がなかったが、php5.3あたりはEUC-JPだったりする。
DBの文字コードアップデートやソースコードの文字コード対応も入ると大変なアップデートになる。
想定の3倍ぐらい修正したので、記録。