PHPStan beberlei/assert extension
Description
The main scope of this extension is to help phpstan to detect the type of object after the Assert\Assertion
validation.
declare(strict_types = 1);
use Assert\Assertion;
function demo(?int $a) {
// ...
Assertion::integer($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:
Assertion::integer
Assertion::integerish
Assertion::string
Assertion::float
Assertion::numeric
Assertion::boolean
Assertion::scalar
Assertion::objectOrClass
Assertion::isResource
Assertion::isCallable
Assertion::isArray
Assertion::isInstanceOf
Assertion::notIsInstanceOf
Assertion::subclassOf
Assertion::true
Assertion::false
Assertion::null
Assertion::notNull
Assertion::same
Assertion::notSame
Assertion::isJsonString
nullOr*
andall*
variants of the above methods
Assert::that
, Assert::thatNullOr
and Assert::thatAll
chaining methods are also supported.
Assert\that
, Assert\thatNullOr
and Assert\thatAll
functions are supported too.
Installation
To use this extension, require it in Composer:
composer require --dev phpstan/phpstan-beberlei-assert
If you also install phpstan/extension-installer then you're all set!
Manual installation
If you don't want to use phpstan/extension-installer
, include extension.neon in your project's PHPStan config:
includes:
- vendor/phpstan/phpstan-beberlei-assert/extension.neon