PHPUnitとPHPのバージョン対応表

投稿日:

そこにペチパー(PHPer)が100人いたら97人はPHPUnitでテストを書く。
と言われている位(適当です)、PHPでは珍しくデファクトとなっているPHPUnit。

なにそうなのか!?と、いざ導入しようとしてwget https://phar.phpunit.de/phpunit.pharから入れたらPHPのバージョンが合っていなくて挫けそうになった経験。あると思います。

何故なら、PHPUnitの最新バージョンはPHP5.6PHP 7以上を求めているからです。
※ 上記のwget 〜 では最新のPHPUnitが取得されます

そして恐らく、みんながみんなPHPのバージョンは最新では無いはずです。
(一番マシなのが5.5系でヘタすれば未だに5.3系なんてとこも??5.2系使っていたら頭おかしい)

え、じゃあ僕は5.5系使っているんだけど、どうしたらいいの?私は5.4系よ、どうしたらいいの?という事になりますが結論を先に書くと、


PHP5.6以上の人 => PHPUnitは 最新 のものでOK (今のところ)
PHP5.5以下の人 => PHPUnitは 4.8系 を使う (pharファイルはphpunit-4.8.35.phar)

PHP7.0以上の人 => PHPUnitは 最新 のものでOK (今のところ)
PHP5.6の人 => PHPUnitは 5.7系 のものでOK (pharファイルはphpunit-5.7.21.phar)
PHP5.5以下の人 => PHPUnitは 4.8系 を使う (pharファイルはphpunit-4.8.36.phar)

という事になります。
※ 最新の PHPUnit (6.0.0) から PHP5.6 のサポートを止めたようです
Release Announcement for PHPUnit 6.0.0 · sebastianbergmann/phpunit Wiki · GitHub

つまり、それぞれこんな感じでインストールすればOKです。

  • PHP5.5以下 ( >= ) の人はこんな感じでバージョン指定する
$ wget https://phar.phpunit.de/phpunit-4.8.27.phar
$ chmod +x phpunit-4.8.27.phar
$ sudo mv phpunit-4.8.27.phar /usr/local/bin/phpunit
  • Chefだとこんな感じ(上のバージョン指定)

execute "wget phpunit" do
  command <<-EOH
    curl https://phar.phpunit.de/phpunit-4.8.27.phar > phpunit-4.8.27.phar
    chmod +x phpunit-4.8.27.phar
    mv phpunit-4.8.27.phar /usr/local/bin/phpunit
EOH
  not_if "test -e /usr/local/bin/phpunit"
end
  • 通常(最新版)はこんな感じでインストール
$ wget https://phar.phpunit.de/phpunit.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit

PHPUnitとPHPのバージョン対応表

上記を調べる過程で、PHPUnitとPHPのバージョン対応表を書きました。
※ pharファイルのリンクをクリックするとダウンロードします
※ pharファイルはビルドバージョンが一番最新のものを選択しています
※ pharファイルは https://phar.phpunit.de/ 参照

それぞれのバージョンの違いは、上記表の各docへのリンクから確認するか、各pharファイルをダウンロード/インストールして確認してみてください。
いやぁ、それにしても4系から5系への移行、敷居高いっすなぁ。

2017-06-02 追記

上記PHPUnitのマニュアル(ja)には

PHPUnit 6.0 は PHP 5.6 以降のバージョンで動作しますが、
PHPUnit 6.1 は PHP 5.6 以降のバージョンで動作しますが、

と記載されておりますが、実際に試す(PHP5.6.30で)と

$ phpunit
PHPUnit 6.1.4 by Sebastian Bergmann and contributors.

This version of PHPUnit is supported on PHP 7.0 and PHP 7.1.
You are using PHP 5.6.30 (/usr/bin/php).

こんな感じで怒られるので注意が必要です。

p.s 英語のマニュアルはOKでした

PHPUnit 6.0 requires PHP 7; using the latest version of PHP is highly recommended.
PHPUnit 6.1 requires PHP 7; using the latest version of PHP is highly recommended.

Pocket

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です