phpstan / phpstan-beberlei-assert
PHPStan beberlei/assert extension
Installs: 2 402 679
Dependents: 98
Suggesters: 2
Security: 0
Stars: 34
Watchers: 4
Forks: 12
Open Issues: 5
Type:phpstan-extension
Requires
- php: ^7.2 || ^8.0
- phpstan/phpstan: ^1.10
Requires (Dev)
- beberlei/assert: ^3.3.0
- nikic/php-parser: ^4.13.0
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/phpstan-phpunit: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- phpunit/phpunit: ^9.5
README
Description
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::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