Windows環境におけるPHP複数バージョン導入は比較的簡単です。例えばCドライブ配下に複数のPHPをzip展開、php.iniの設定を行うだけでOKです。
c:\php\php56\php.exe
c:\php\php70\php.exe
c:\php\php71\php.exe
実際に使う際はこの中からデフォルトとして使うバージョンに環境変数を通しておきます。
c:\php\php56\php.exe
c:\php\php70\php.exe ←環境変数を通してデフォルトで使われるPHPにしておく。
c:\php\php71\php.exe
例えばPHPのビルトインWebサーバーを使う際、デフォルトで使うバージョン以外を使いたいプロジェクトではフルパスで別パスのphpを起動してやればいいです。
c:\php\php71\php.exe -S localhost:8080
ここで、Composerが問題になってきます。WindowsにインストールしたComposerは環境変数に設定されたデフォルトのPHPで実行されるので、PHP 7.1を使っているプロジェクトでPHP 7.1を求めるライブラリを導入したい場合などに、ComposerのチェックでPHPのバージョンが足りないと言われエラーになってしまいます。また、適切にcomposer.jsonが設定されていなければPHP 5.6のプロジェクトで7.0が必須のライブラリをインストールしてしまうかもしれません。
このComposerコマンドの実行ファイルは実際にはバッチファイルになっています。このファイルはインストール時に設定を変えていなければ
C:\ProgramData\ComposerSetup\bin
にインストールされています。
(コマンドプロンプトであれば where コマンドでコマンドのインストール先が分かります)
中に記載されているのは
@ECHO OFF
php “%~dp0composer.phar” %*
だけですので、このファイルを複製し
@ECHO OFF
c:\php\php71\php.exe “%~dp0composer.phar” %*
のようにしてあげれば、PHP 7.1で起動するComposerコマンドを作る事が出来ます。
PHP 7.1のプロジェクト上でComposerコマンドを利用する際はcomposerコマンドではなく
composer_php71.bat install
のように利用すればOKです。
なお、Composerがプロジェクトごとではなくグローバルにインストールするパッケージについては全てのプロジェクトに影響が及びますので、その点はご注意ください。
ちなみに phpunit コマンドも同様にバッチファイルになっているので、同様に複数PHPバージョンのバージョンを用意しておくことができます。