phpstan/phpstan-webmozart-assert

PHPStan webmozart/assert extension

Installs: 2 025 764

Dependents: 411

Suggesters: 0

Security: 0

Stars: 96

Watchers: 3

Forks: 22

Open Issues: 11

Type:phpstan-extension

0.12.15 2021-07-16 15:00 UTC

README

Build Latest Stable Version License

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::string
  • Assert::stringNotEmpty
  • Assert::float
  • Assert::numeric
  • Assert::integerish
  • Assert::boolean
  • Assert::scalar
  • Assert::object
  • Assert::resource
  • Assert::isCallable
  • Assert::isArray
  • Assert::isIterable
  • Assert::isCountable
  • Assert::isInstanceOf
  • Assert::notInstanceOf
  • Assert::subclassOf
  • Assert::true
  • Assert::false
  • Assert::notFalse
  • Assert::null
  • Assert::notNull
  • Assert::same
  • Assert::notSame
  • Assert::implementsInterface
  • Assert::classExists
  • Assert::minCount
  • Assert::inArray
  • Assert::oneOf
  • Assert::methodExists
  • Assert::propertyExists
  • Assert::isArrayAccessible
  • nullOr* and all* 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