猫でもわかるWeb開発・プログラミング

本業エンジニアリングマネージャー。副業Webエンジニア。Web開発のヒントや、副業、日常生活のことを書きます。

PHPStan 1.11 からエラー識別子で @phpstan-ignore できるようになっていた

PHPStan のエラーを無視したい時があると思います。

例えば、局所的に使われる private メソッドについて PHPDoc を書くコストが高いので避けたい場合です。

もちろん、可能な限り ignore しないのが理想です。これが public メソッドの場合、複雑な形式の array を返すのではなく、レスポンスのクラスを定義するべきです。

また、本当は ignore したくないエラーまで巻き込まれて ignore されてしまい、見逃してしまうこともあります。

PHPStan のドキュメントの Ignoring Errors を見ると、エラーを ignore する方法についていくつか書いてあります。

@phpstan-ignore-line

<?php
echo $foo; // @phpstan-ignore-line

@phpstan-ignore-next-line

<?php
// @phpstan-ignore-next-line
echo $foo;

@phpstan-ignore [error identifier]

<?php
// @phpstan-ignore variable.undefined
echo $foo;

echo $foo; // @phpstan-ignore variable.undefined

エラー識別子 (error identifier) の確認方法

PHPStan 1.11 以降、 phpstan analyze -v のように -v オプションを付与すると、結果にエラー識別子が表示されるようになっています。

------ --------------------------------------------------------------------------------------
  Line   SampleRepository.php
 ------ --------------------------------------------------------------------------------------
  88     Access to an undefined property object::$something.
         🪪  property.notFound
         💡 Learn more: https://phpstan.org/blog/solving-phpstan-access-to-undefined-property
 ------ --------------------------------------------------------------------------------------

この場合 property.notFound が識別子です

参考

phpstan.org

www.phper.ninja