This extension was heavily inspired by phpstan/phpstan/phpstan-webmozart-assert developed by Ondřej Mirtes.
The main scope of this extension is to help phpstan to detect the type of object after the Tester\Assert
validation.
<?php
declare(strict_types = 1);
use Tester\Assert;
function runTest(?int $a) {
// ...
Assert::notNull($a);
// phpstan is now aware that $a can no longer be `null` at this point
return ($a === 10);
}
This extension specifies types of values passed to:
Assert::null()
Assert::notNull()
Assert::true()
Assert::false()
Assert::truthy()
Assert::falsey()
Assert::nan()
Assert::same()
Assert::notSame()
Assert::type()
Assert::count()
To use this extension, require it in Composer:
composer require --dev damejidlo/phpstan-nette-tester
If you also install phpstan/extension-installer then you're all set!
If you have enabled checkAlwaysTrueCheckTypeFunctionCall: true
, you will need to add some ignored errors:
parameters:
ignoreErrors:
- '~Call to static method Tester\\Assert::(type|count|same|notSame)\(\) with .* and .* will always evaluate to true\.~'
- '~Call to static method Tester\\Assert::(null|notNull|true|false|truthy|falsey|nan)\(\) with .* will always evaluate to true\.~'
If you don't want to use phpstan/extension-installer
, include extension.neon in your project's PHPStan config:
includes:
- vendor/damejidlo/phpstan-nette-tester/extension.neon