Skip to content
PHP Ecosystem
Explore

BehaviorMethodsClassReflectionExtension

API reference › PHPStan › method › BehaviorMethodsClassReflectionExtension

final classyii2\extensions\phpstan\method\BehaviorMethodsClassReflectionExtension
ImplementsMethodsClassReflectionExtension
Sourcesrc/method/BehaviorMethodsClassReflectionExtension.php

Resolves methods 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 method, allowing PHPStan to recognize behavior methods as if they were natively declared.

Component for Yii Component class. MethodsClassReflectionExtension for custom methods class reflection extension contract.

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

Creates a new instance of the BehaviorMethodsClassReflectionExtension 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 getMethod(PHPStan\Reflection\ClassReflection $classReflection, string $methodName): PHPStan\Reflection\MethodReflection

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

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

Parameters

ParameterTypeDescription
$classReflectionPHPStan\Reflection\ClassReflectionReflection of the class being analyzed.
$methodNamestringName of the method to resolve.

Returns

PHPStan\Reflection\MethodReflection: Reflection instance for the resolved method.

Throws

  • PHPStan\ShouldNotHappenException: if no attached behavior provides the method.
public function hasMethod(PHPStan\Reflection\ClassReflection $classReflection, string $methodName): bool

Determines whether the specified method exists on the given class, including methods provided by attached behaviors.

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

This enables PHPStan to recognize available methods 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.
$methodNamestringName of the method to check for existence.

Returns

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