ClassConstantsValueCheck
class ClassConstantsValueCheck extends AbstractConstantFlagCheck (View source)
Validates that the values of constants in class stubs match reflection.
Value comparison is intentionally limited to the latest PHP version to avoid false positives from historical value changes across PHP releases.
For each class identified by $entityId the validator:
- Iterates all version-available constants declared directly in the stub.
- Looks up each constant by name in the reflection constant map (which includes all inherited constants).
- If the constant is not found in reflection it is silently skipped — existence is ClassConstantsCheck's responsibility.
- When both sides are found and the PHP version is LATEST, their values are compared and any mismatch is reported as a failure. Either side having a null value skips the check (complex/dynamic expressions cannot be compared).
Known problems are supported at two granularities:
- entity-level: EntityType::CLASS_TYPE + classId + 'ClassConstantsValueCheck' → skips all value checks for the class.
- constant-level: EntityType::CLASS_CONSTANT + '\ClassName::CONST_NAME' + 'ClassConstantsValueCheck' → skips only that specific constant.
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
No description
Records a skipped-success result if a known problem covers this entity, and returns true.
Look up an entity by ID, dispatching to the right lookup method based on config.
Collect version-filtered methods, dispatching based on config.
Collect version-filtered properties, dispatching based on config.
No description
Compare a single attribute on the reflection and stub constant.
Details
__construct(ReflectionProviderInterface|null $reflectionProvider = null, KnownProblemsRegistry|null $knownProblemsRegistry = null, EntityLookupService|null $entityLookup = null, MethodCollectionService|null $methodCollection = null, EntityTypeConfig|null $entityTypeConfig = null)
No description
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.
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.
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.
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.
protected string
getEntityLabel()
No description
protected string
getEntityType()
No description
protected string
getConstantEntityType()
No description
protected PHPClass|null
findClassById(StubDataQueryInterface $storage, string $entityId)
No description
protected PHPEnum|null
findEnumById(StubDataQueryInterface $storage, string $entityId)
No description
protected PHPInterface|null
findInterfaceById(StubDataQueryInterface $storage, string $entityId)
No description
protected string
getCheckName()
No description
protected string|null
describeMismatch(string $constantEntityId, PHPClassConstant $reflConstant, PHPClassConstant $stubConstant, string $phpVersion)
Compare a single attribute on the reflection and stub constant.
Return a descriptive failure message if there is a mismatch, or null if they match.
bool
supports(string $phpVersion)
No description
CheckResultSet
run(StubDataQueryInterface $stubs, string $entityId, string $phpVersion)
No description