PHP5系からPHP7へのバージョンアップすると動かなくなるコードの修正について

なんだかんだでWeb制作の職についている期間も長くなってきて、特に不便もないので使いまわしているコードも増えてきました。

JavaScriptに関してはブラウザごとの差異もだいぶ吸収されてきたし古くなっても挙動がおかしくなるということはあまり無いのですが、今回サーバー側の言語であるPHPの方で古いコードが動かなくなってしまいました。

この記事ではサーバーのPHPのバージョンを5系から7へバージョンアップした際に行った対応をメモしておこうと思います。

まずどのコードの記述が古いのか調べる

今回は、特に何も考えずポートフォリオサイトのPHPバージョンを「そういえば最新にしとくかー」と変更したら動かなくなってしまったので最初は何がまずいのかよくわかりませんでした。

PHPのバージョンだと気づいてからも自力でバージョンアップにおける変更点を探して直すのは非常に面倒だったので自動で探せる手段を探したところ以下の記事を発見。

こちらを参考にさせていただき対応したらうまく行きました。
PHP5.6からPHP7系にするときに修正した点まとめ

読んでみるとComposerでphp7ccを入れて古い記述を調べるとのことだったのでまずはComposerのインストールから始めました。
Composer

※細かい説明は抜きに、自分がやったことだけ書いていきます。

curlコマンドでインストールしました。

curl -sS https://getcomposer.org/installer | php

pathの通った場所に移動して、

mv composer.phar /usr/local/bin/composer

インストールが正常に完了してるか確認します。成功していればアスキーアートでComposerの文字が出てきます。

composer

これでPHP7への移行箇所を調べるためのツールを使うための準備が出来ました。

PHP 7 Compatibility Checker(php7cc)

こちらコマンドひとつでPHP7の変更箇所がすぐにわかる便利極まりないツールです。
※公式のGitHubはこちらになります。

まずグローバル環境にインストールします。

composer global require sstalle/php7cc

そしてpathを通します。

export PATH="$PATH:$HOME/.config/composer/vendor/bin"

ここまで出来たら下記のように調べたいPHPファイルを入力して問題の箇所を調べます。php7ccのあとは手で打つの面倒なのでファイルをドラッグした方が楽かと思います。

php7cc 調べたいPHPファイルかディレクトリ

コマンドを実行すると、ターミナルに問題のある行数と何が問題化がざっくり出てくるのでそれを直していけばOKです。
問題がわかればどう直せばいいかはググれば大抵出てくるので、さくさくと解決していけるかと思います。

ちょっとしたプログラムでも目視で調べていくのは非効率で時間がかかるので、こういう便利なツールはどんどん使っていきたいですね。