Closed yi1306c12 closed 1 month ago
phpstan-strict-rules
入れると、Laravelのもともとのコードに対しても指摘が飛ぶようになる。
------ -----------------------------------------------------------------------
Line tests/Unit/ExampleTest.php
------ -----------------------------------------------------------------------
:14 Dynamic call to static method PHPUnit\Framework\Assert::assertTrue().
------ -----------------------------------------------------------------------
こういうのは、Issueにもある通り、ignore patternに追加することで対応しましょう。
ignoreErrors: - '#Dynamic call to static method PHPUnit\\Framework\\.*#'
とあるが、多分元ネタのissueはこれで、そこにあるようにself
から呼ぶほうが回避方法としては妥当な気がする。
<?php
namespace Tests\Unit;
use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*/
public function test_that_true_is_true(): void
{
- $this->assertTrue(true);
+ self::assertTrue(true);
}
}
phpunit公式もこう言っておられるので…
The short answer is: there is no right way. And there is no wrong way, either. It is a matter of personal preference. 1. Assertions — PHPUnit 11.3 Manual
こういうのもあるけど、存在していても使わないので削除した。
------ ------------------------------------------------
Line routes/console.php
------ ------------------------------------------------
:6 Dynamic call to static method
Illuminate\Console\Scheduling\Event::hourly().
:7 Undefined variable: $this
------ ------------------------------------------------
やっぱり必要だったかも…
意義
LarastanでLaravelプロジェクトを静的解析しよう! #PHP - Qiita
気になる点
laravel/.githubでは.github/workflows/static-analysis.ymlが定義されているが、
vendor/bin/phpstan
をオプション無しで実行しているため、phpstanのレベルのデフォルトである0で解析されている