
PHPCompatibility は2019年にリリースされた v9.3.5 で止まっていて,今まで PHP 8.x の非互換を検出する場合は dev-develop ブランチを使う必要があった.
リリース自体は止まってしまったのかな?と思っていたら,2025年10月に突然 v10.0.0-alpha1 が Pre-release で登場していた❗️なんと6年振り⌛️もう少ししたら正式に v10 がリリースされる可能性がある.
👾 index.php
たとえば以下のようなサンプルコードがあるとする.
<?php $name = "kakakakakku"; echo "Hello ${name}!";
PHP 8.2 で ${var} 形式のまま文字列と結合する実装が非推奨になっている🚨
👾 composer.json (PHPCompatibility v9.3.5)
まずは PHPCompatibility v9.3.5 をセットアップする.
{ "name": "kakakakakku/php-compatibility-v10", "require-dev": { "phpcompatibility/php-compatibility": "9.3.5" }, "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } } }
実行すると非推奨になったコードを検出できなかった.
$ ./vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion 8.2 src/index.php
👾 composer.json (PHPCompatibility v10.0.0-alpha1)
今度は PHPCompatibility v10.0.0-alpha1 をセットアップする.
{ "name": "kakakakakku/php-compatibility-v10", "require-dev": { "phpcompatibility/php-compatibility": "10.0.0-alpha1" }, "config": { "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } } }
実行すると非推奨になったコードを検出できた❗️
$ ./vendor/bin/phpcs --standard=PHPCompatibility --runtime-set testVersion 8.2 src/index.php ------------------------------------------------------------------------------------------------------- FOUND 0 ERRORS AND 1 WARNING AFFECTING 1 LINE ------------------------------------------------------------------------------------------------------- 4 | WARNING | Using ${var} in strings is deprecated since PHP 8.2, use {$var} instead. Found: ${name} -------------------------------------------------------------------------------------------------------
関連情報
アップデートガイドもある📝