phpstan-webmozart-assert
phpstan-webmozart-assert copied to clipboard
PHPStan extension for webmozart/assert
PHPStan webmozart/assert extension
Description
The main scope of this extension is to help phpstan to detect the type of object after the Webmozart\Assert
validation.
<?php declare(strict_types = 1);
use Webmozart\Assert;
function demo(?int $a) {
// ...
Assert::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:
-
Assert::integer
-
Assert::positiveInteger
-
Assert::string
-
Assert::stringNotEmpty
-
Assert::float
-
Assert::numeric
-
Assert::natural
-
Assert::integerish
-
Assert::boolean
-
Assert::scalar
-
Assert::object
-
Assert::resource
-
Assert::isCallable
-
Assert::isArray
-
Assert::isTraversable
(deprecated, useisIterable
orisInstanceOf
instead) -
Assert::isIterable
-
Assert::isCountable
-
Assert::isInstanceOf
-
Assert::isInstanceOfAny
-
Assert::notInstanceOf
-
Assert::isAOf
-
Assert::isAnyOf
-
Assert::isNotA
-
Assert::subclassOf
-
Assert::true
-
Assert::false
-
Assert::notFalse
-
Assert::null
-
Assert::notNull
-
Assert::eq
-
Assert::notEq
-
Assert::same
-
Assert::notSame
-
Assert::greaterThan
-
Assert::greaterThanEq
-
Assert::lessThan
-
Assert::lessThanEq
-
Assert::range
-
Assert::implementsInterface
-
Assert::classExists
-
Assert::interfaceExists
-
Assert::keyExists
-
Assert::keyNotExists
-
Assert::validArrayKey
-
Assert::count
-
Assert::minCount
-
Assert::maxCount
-
Assert::countBetween
-
Assert::isList
-
Assert::isNonEmptyList
-
Assert::isMap
-
Assert::isNonEmptyMap
-
Assert::inArray
-
Assert::oneOf
-
Assert::methodExists
-
Assert::propertyExists
-
Assert::isArrayAccessible
-
Assert::length
-
Assert::minLength
-
Assert::maxLength
-
Assert::lengthBetween
-
nullOr*
,all*
andallNullOr*
variants of the above methods
Installation
To use this extension, require it in Composer:
composer require --dev phpstan/phpstan-webmozart-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-webmozart-assert/extension.neon