Skip to content
PHP Ecosystem
Explore

BehaviorPropertiesClassReflectionExtension

API reference › PHPStan › property › BehaviorPropertiesClassReflectionExtension

final classyii2\extensions\phpstan\property\BehaviorPropertiesClassReflectionExtension
ImplementsPropertiesClassReflectionExtension
Sourcesrc/property/BehaviorPropertiesClassReflectionExtension.php

Resolves properties provided by behaviors attached to Component subclasses for PHPStan analysis.

Inspects the behaviors attached to a given class via the ServiceMap and determines whether any provide the requested property, allowing PHPStan to recognize behavior properties as if they were natively declared.

Component for Yii Component class. PropertiesClassReflectionExtension for custom properties class reflection extension contract.

MethodDescriptionDefined by
__construct()Creates a new instance of the BehaviorPropertiesClassReflectionExtension class.BehaviorPropertiesClassReflectionExtension
getProperty()Retrieves the reflection of a property provided by a behavior attached to the given class.BehaviorPropertiesClassReflectionExtension
hasProperty()Determines whether the specified property exists on the given class, including properties provided by attached behaviors.BehaviorPropertiesClassReflectionExtension
public function __construct(PHPStan\Reflection\ReflectionProvider $reflectionProvider, yii2\extensions\phpstan\ServiceMap $serviceMap, PHPStan\Analyser\DeclarationDependencyTracker $dependencyTracker)

Creates a new instance of the BehaviorPropertiesClassReflectionExtension class.

Parameters

ParameterTypeDescription
$reflectionProviderPHPStan\Reflection\ReflectionProviderReflection provider for class and property lookups.
$serviceMapyii2\extensions\phpstan\ServiceMapService and component map for Yii Application static analysis.
$dependencyTrackerPHPStan\Analyser\DeclarationDependencyTrackerRecords the configuration values each class declaration depends on.
public function getProperty(PHPStan\Reflection\ClassReflection $classReflection, string $propertyName): PHPStan\Reflection\PropertyReflection

Retrieves the reflection of a property provided by a behavior attached to the given class.

PHPStan calls this method only after hasProperty() returned true for the same class and property name.

Parameters

ParameterTypeDescription
$classReflectionPHPStan\Reflection\ClassReflectionReflection of the class being analyzed.
$propertyNamestringName of the property to resolve.

Returns

PropertyReflection: Reflection instance for the resolved property.

Throws

  • PHPStan\ShouldNotHappenException: if no attached behavior provides the property.
public function hasProperty(PHPStan\Reflection\ClassReflection $classReflection, string $propertyName): bool

Determines whether the specified property exists on the given class, including properties provided by attached behaviors.

Checks if the class is a subclass of Component and doesn’t already declare the property natively. If so, inspect all behaviors attached to the class to determine if any provide the requested property.

This enables PHPStan to recognize available properties from behaviors as if they were natively declared on the component class, supporting accurate static analysis and autocompletion.

Parameters

ParameterTypeDescription
$classReflectionPHPStan\Reflection\ClassReflectionReflection of the class being analyzed.
$propertyNamestringName of the property to resolve.

Returns

bool: true if the property exists on the class via an attached behavior; false otherwise.