The main scope of this extension is to help phpstan to detect the type of object after the Assert\Assertion validation.
<?php 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::integerAssertion::integerishAssertion::stringAssertion::floatAssertion::numericAssertion::booleanAssertion::scalarAssertion::objectOrClassAssertion::isResourceAssertion::isCallableAssertion::isArrayAssertion::isInstanceOfAssertion::notIsInstanceOfAssertion::subclassOfAssertion::trueAssertion::falseAssertion::nullAssertion::notNullAssertion::sameAssertion::notSameAssertion::isJsonStringnullOr*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.
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