function DataProviderHelper::parseDataProviderExternalAttribute
*
Return value
array<string, array{(ClassReflection|null), string, int}>|null
1 call to DataProviderHelper::parseDataProviderExternalAttribute()
- DataProviderHelper::getDataProviderMethods in vendor/
phpstan/ phpstan-phpunit/ src/ Rules/ PHPUnit/ DataProviderHelper.php - *
File
-
vendor/
phpstan/ phpstan-phpunit/ src/ Rules/ PHPUnit/ DataProviderHelper.php, line 235
Class
Namespace
PHPStan\Rules\PHPUnitCode
private function parseDataProviderExternalAttribute(Attribute $attribute) : ?array {
if (count($attribute->args) !== 2) {
return null;
}
$methodNameArg = $attribute->args[1]->value;
if (!$methodNameArg instanceof String_) {
return null;
}
$classNameArg = $attribute->args[0]->value;
if ($classNameArg instanceof ClassConstFetch && $classNameArg->class instanceof Name) {
$className = $classNameArg->class
->toString();
}
elseif ($classNameArg instanceof String_) {
$className = $classNameArg->value;
}
else {
return null;
}
$dataProviderClassReflection = null;
if ($this->reflectionProvider
->hasClass($className)) {
$dataProviderClassReflection = $this->reflectionProvider
->getClass($className);
$className = $dataProviderClassReflection->getName();
}
return [
sprintf('%s::%s', $className, $methodNameArg->value) => [
$dataProviderClassReflection,
$methodNameArg->value,
$attribute->getLine(),
],
];
}