nepada / phpstan-nette-tester
PHPStan nette/tester extension
Installs: 268 559
Dependents: 27
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 1
Open Issues: 0
Type:phpstan-extension
Requires
- php: >=7.4 <8.4
- nikic/php-parser: ^4.13.2 || ^v5.0.2
- phpstan/phpstan: ^1.8.11
Requires (Dev)
- nepada/coding-standard: 7.14.0
- nette/tester: ^2.4
- php-parallel-lint/php-parallel-lint: 1.4.0
- phpstan/phpstan-phpunit: 1.3.16
- phpstan/phpstan-strict-rules: 1.5.2
- phpunit/phpunit: ^9.6.19
- shipmonk/phpstan-rules: 2.11.3
- spaze/phpstan-disallowed-calls: 3.1.2
README
This extension was heavily inspired by phpstan/phpstan/phpstan-webmozart-assert developed by Ondřej Mirtes.
It was originally developed and published under damejidlo organization.
Description
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()
Installation
To use this extension, require it in Composer:
composer require --dev nepada/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\.~'
Manual installation
If you don't want to use phpstan/extension-installer
, include extension.neon in your project's PHPStan config:
includes:
- vendor/nepada/phpstan-nette-tester/extension.neon