Git hooksを使ってphpのバージョンアップ対応までの暫定対応をする
しばらく放置してしまって、久々の更新です。
php5.xが2018年末でEOLということで、仕事でphpのバージョンアップ対応をしているのでそこで行った対応の一部をまとめておきます。
環境
今回更新をしていく環境はざっくり以下のような感じです。
かなーりレガシーな感じの構成ですが、今まで動いてたので放置してました。
これを以下のような構成にバージョンアップしていきます。
PHP-7.1は結局2019年末にEOLなんですが、
メジャーバージョンアップを乗り越えればまあなんとかなるだろうということで、今回は7.1までにしました。
手順
昔からあるコードとか、どこで不具合があるかわからないので、以下のような手順を踏むことにしました。
- php7ccでリスクのあるコードを検出
GitHub - sstalle/php7cc: PHP 7 Compatibility Checker
こいつを使って互換性チェックを行いました。
使い方については以下の記事を参考にしています。
php7ccはすでに開発終了していて後継のツールがあるのですが、
それらはPHP7環境でしか動作しないので環境作成が面倒なため、あえてこれを使いました。
- ユニットテストを回す
幸いなことに、今回対応したシステムはユニットテストのコードカバレッジがそこそこ高かったので、まずはユニットが全部通ることを検証しました。
その過程でカバレッジが低い部分については追加でテストを書いて、コードカバレッジで品質を担保できるようにしました。
- 実際にweb上から操作しつつ、結合テストを実施
実際のユースケース通りに操作して問題ないかをテストしました。
ここまでくるともうほとんどバグは見つからない状況でした。
まとめ
文章ばかりになってしまいましたが・・・
PHP7のバージョンアップではすでに非推奨とされていた使い方ができなくなるなど、いい感じに移行しやすくされていると感じました。
それとユニットテストがちゃんと書いてあることの素晴らしさというか、安心感は感じました。
バージョンアップ対応のような完璧に把握することが難しい作業をするときには、テストがあると本当に便利ですね・・