class FunctionParametersCountCheck extends AbstractCallableCheck (View source)

Validates that the number of parameters in stub functions matches reflection.

For each function identified by $entityId the validator:

  1. Looks up the function in reflection data for the given PHP version.
  2. Looks up the function in stubs using version-aware selection (PhpStormStubsElementAvailable from/to on the function itself).
  3. If the stub function is not found it is silently skipped — existence is FunctionExistsCheck's responsibility.
  4. When both sides are found, the stub parameter list is filtered by version (PhpStormStubsElementAvailable from/to on parameters → sinceVersion/removedVersion) and the resulting count is compared with the reflection count.

Parameter version filtering uses inclusive boundaries for removedVersion (<=), consistent with how PhpStormStubsElementAvailable to is interpreted elsewhere (e.g. to: '7.0' means the parameter is still available in PHP 7.0).

Known problems are supported:

  • EntityType::FUNCTION + functionId + 'ParametersCountCheck' → skips the parameter-count check for that specific function.

Properties

protected ReflectionProviderInterface $reflectionProvider from  AbstractReflectionCheck
protected KnownProblemsRegistry $knownProblemsRegistry from  AbstractReflectionCheck
protected EntityLookupService $entityLookup from  AbstractCallableCheck

Methods

__construct(ReflectionProviderInterface|null $reflectionProvider = null, KnownProblemsRegistry|null $knownProblemsRegistry = null, EntityLookupService|null $entityLookup = null)

No description

bool
skipWithKnownProblem(CheckResultSet $results, string $entityType, string $entityId, string $checkName, string $phpVersion)

Records a skipped-success result if a known problem covers this entity, and returns true.

findCallable(StubDataQueryInterface $storage, string $entityId, string $phpVersion)

Find a function or method in the given storage.

bool
supports(string $phpVersion)

No description

run(StubDataQueryInterface $stubs, string $entityId, string $phpVersion)

No description

Details

__construct(ReflectionProviderInterface|null $reflectionProvider = null, KnownProblemsRegistry|null $knownProblemsRegistry = null, EntityLookupService|null $entityLookup = null)

No description

Parameters

ReflectionProviderInterface|null $reflectionProvider
KnownProblemsRegistry|null $knownProblemsRegistry
EntityLookupService|null $entityLookup

protected bool skipWithKnownProblem(CheckResultSet $results, string $entityType, string $entityId, string $checkName, string $phpVersion)

Records a skipped-success result if a known problem covers this entity, and returns true.

Returns false if validation should proceed normally.

Parameters

CheckResultSet $results
string $entityType
string $entityId
string $checkName
string $phpVersion

Return Value

bool

protected PHPFunction|null findCallable(StubDataQueryInterface $storage, string $entityId, string $phpVersion)

Find a function or method in the given storage.

Parameters

StubDataQueryInterface $storage
string $entityId

Format: "functionName" or "ClassName::methodName"

string $phpVersion

Return Value

PHPFunction|null

bool supports(string $phpVersion)

No description

Parameters

string $phpVersion

Return Value

bool

CheckResultSet run(StubDataQueryInterface $stubs, string $entityId, string $phpVersion)

No description

Parameters

StubDataQueryInterface $stubs

Parsed stubs data

string $entityId

Entity identifier to validate

string $phpVersion

PHP version string

Return Value

CheckResultSet