shipmonk/phpstan-dev
Utilities for developing PHPStan rules: write expected errors directly in fixture files using // error: comments and avoid brittle line-number assertions. Includes an autofix mode to generate/update inline error comments during rule development.
Inplace fixture asserts and autofix for PHPStan rules. No more manual line adjustments in tests when new code is added to rule fixtures.
composer require --dev shipmonk/phpstan-dev
<?php declare(strict_types = 1);
use PHPStan\Rules\Rule;
/**
* @extends RuleTestCase<YourRule>
*/
class YourRuleTest extends \ShipMonk\PHPStanDev\RuleTestCase
{
public function testRule(): void
{
$this->analyzeFiles([__DIR__ . '/Data/code.php']);
}
}
Create test fixture at code.php:
<?php
$valid = 'This is valid code';
$invalid = something(); // error: Rule error message
// error:Mark expected errors directly in test files via PHP comments:
<?php
$validCode = 'No error expected here';
$invalidCode = forbidden(); // error: Rule error message
$alsoInvalid = another(); // error: Rule error message // error: Same-line multi errors
Automatically generate inplace error comments during development:
public function testRule(): void
{
$this->analyzeFiles([...], autofix: true);
}
⚠️ Important: Remove autofix: true before committing - tests will fail if autofix is enabled.
composer checkcomposer fix:csMIT
How can I help you explore Laravel packages today?