😑

PHP Code Snifferでコミットできない問題

2021/04/18に公開約1,000字

事象

  • phpcs(PHP Code Sniffer)でコードをコミット前にチェックするように環境構築
  • Sourcetree(Git管理ツール)でコミットする際にコードチェックする
  • 急にphpcsによってコミットできなくなった(エラーメッセージを読んでも原因不明)
  • それまではコミットできていた
  • 他のメンバーは問題なくコミットできている

エラーメッセージ

PHP Fatal error: Uncaught PHP_CodeSniffer\Exceptions\RuntimeException: Undefined index: scope_closer in [プロジェクト依存のパス]

↓Sourcetreeの画面

開発環境

OS:Windows 10
動作環境:Docker
使用言語:PHP7.4 (CakePHP4)
Git管理ツール:Sourcetree

Sourcetreeでコミット前にコードチェックするように設定していた。

原因

ヒアドキュメント構文とPHPのバージョンが原因であった。

過去にヒアドキュメント構文が使用されていると、phpcsが正しく処理できない問題があったようで
修正済みであったが、その修正はphpバージョン7.3 以降で有効となっていた。

動作環境であるDockerコンテナのPHPのバージョンは7.4であったが
私のPCのPHPのバージョンは7.2となっていたため、上記のエラーが発生したようだ。

ヒアドキュメント構文

↓のような構文

$name = 'torao';

$heredocs = <<< EOM
<p>
    私の名前は{$name}です。<br>
    よろしくお願いいたします。
</p>
EOM;

echo $heredocs;

/*
私の名前はtoraoです。
よろしくお願いいたします。
*/

結果

PCのPHPのバージョンを7.4にすることで解決することができた。

Discussion

ログインするとコメントできます