class ClassMethodsExistCheck extends AbstractClassCheck (View source)

Validates that all methods present in reflection also exist in stubs.

The check is performed per-class: for each class entity ID the validator

  1. collects all methods from the reflection class (including private),
  2. collects all version-appropriate methods from the stub class and its full ancestor chain in stubs,
  3. reports any reflection method that is absent from the stub method set.

Version filtering for stub methods uses sinceVersion/removedVersion stored on each PHPMethod (populated from @since/@removed tags and PhpStormStubsElementAvailable attributes during stub parsing). A stub method is considered available for a given PHP version if:

  • sinceVersion is null OR phpVersion >= sinceVersion
  • AND removedVersion is null OR phpVersion <= removedVersion

Known problems are supported at two granularities:

  • class-level: EntityType::CLASS_TYPE + classId + 'ClassMethodsExistCheck' → skips all method checks for the class.
  • method-level: EntityType::METHOD + '\ClassName::methodName' + 'ClassMethodsExistCheck' → skips only that specific missing-method failure.

Properties

protected ReflectionProviderInterface $reflectionProvider from  AbstractReflectionCheck
protected KnownProblemsRegistry $knownProblemsRegistry from  AbstractReflectionCheck
protected EntityLookupService $entityLookup from  AbstractClassCheck
protected MethodCollectionService $methodCollection from  AbstractClassCheck
protected EntityTypeConfig|null $entityTypeConfig from  AbstractClassCheck

Methods

__construct(ReflectionProviderInterface|null $reflectionProvider = null, KnownProblemsRegistry|null $knownProblemsRegistry = null, EntityLookupService|null $entityLookup = null, MethodCollectionService|null $methodCollection = null, EntityTypeConfig|null $entityTypeConfig = 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.

lookupEntityById(StubDataQueryInterface $storage, string $entityId)

Look up an entity by ID, dispatching to the right lookup method based on config.

array
collectEntityMethodsByConfig(PHPClassLikeObject $entity, string $phpVersion)

Collect version-filtered methods, dispatching based on config.

array
collectEntityPropertiesByConfig(PHPClassLikeObject $entity, string $phpVersion)

Collect version-filtered properties, dispatching based on config.

string
getEntityLabel()

No description

string
getEntityType()

No description

string
getConstantEntityType()

No description

PHPClass|null
findClassById(StubDataQueryInterface $storage, string $entityId)

No description

PHPEnum|null
findEnumById(StubDataQueryInterface $storage, string $entityId)

No description

findInterfaceById(StubDataQueryInterface $storage, string $entityId)

No description

string
getCheckName()

No description

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, MethodCollectionService|null $methodCollection = null, EntityTypeConfig|null $entityTypeConfig = null)

No description

Parameters

ReflectionProviderInterface|null $reflectionProvider
KnownProblemsRegistry|null $knownProblemsRegistry
EntityLookupService|null $entityLookup
MethodCollectionService|null $methodCollection
EntityTypeConfig|null $entityTypeConfig

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 PHPClassLikeObject|null lookupEntityById(StubDataQueryInterface $storage, string $entityId)

Look up an entity by ID, dispatching to the right lookup method based on config.

Defaults to class lookup when no config is set.

Parameters

StubDataQueryInterface $storage
string $entityId

Return Value

PHPClassLikeObject|null

protected array collectEntityMethodsByConfig(PHPClassLikeObject $entity, string $phpVersion)

Collect version-filtered methods, dispatching based on config.

Defaults to class hierarchy traversal when no config is set.

Parameters

PHPClassLikeObject $entity
string $phpVersion

Return Value

array

protected array collectEntityPropertiesByConfig(PHPClassLikeObject $entity, string $phpVersion)

Collect version-filtered properties, dispatching based on config.

Only classes have properties; returns empty array for enum/interface.

Parameters

PHPClassLikeObject $entity
string $phpVersion

Return Value

array

protected string getEntityLabel()

No description

Return Value

string

protected string getEntityType()

No description

Return Value

string

protected string getConstantEntityType()

No description

Return Value

string

protected PHPClass|null findClassById(StubDataQueryInterface $storage, string $entityId)

No description

Parameters

StubDataQueryInterface $storage
string $entityId

Return Value

PHPClass|null

protected PHPEnum|null findEnumById(StubDataQueryInterface $storage, string $entityId)

No description

Parameters

StubDataQueryInterface $storage
string $entityId

Return Value

PHPEnum|null

protected PHPInterface|null findInterfaceById(StubDataQueryInterface $storage, string $entityId)

No description

Parameters

StubDataQueryInterface $storage
string $entityId

Return Value

PHPInterface|null

protected string getCheckName()

No description

Return Value

string

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