public function __construct(array
$mutatorPrefixes = null, array
$accessorPrefixes = null, array
$arrayMutatorPrefixes = null
) { if (!
class_exists(ContextFactory::
class)) { throw new \
LogicException(sprintf('Unable to use the "%s" class as the "phpdocumentor/type-resolver" package is not installed. Try running composer require "phpdocumentor/type-resolver".', __CLASS__
));
} if (!
class_exists(PhpDocParser::
class)) { throw new \
LogicException(sprintf('Unable to use the "%s" class as the "phpstan/phpdoc-parser" package is not installed. Try running composer require "phpstan/phpdoc-parser".', __CLASS__
));
} $this->phpStanTypeHelper =
new PhpStanTypeHelper();
$this->mutatorPrefixes =
$mutatorPrefixes ?? ReflectionExtractor::
$defaultMutatorPrefixes;
$this->accessorPrefixes =
$accessorPrefixes ?? ReflectionExtractor::
$defaultAccessorPrefixes;
$this->arrayMutatorPrefixes =
$arrayMutatorPrefixes ?? ReflectionExtractor::
$defaultArrayMutatorPrefixes;
$this->phpDocParser =
new PhpDocParser(new TypeParser(new ConstExprParser()),
new ConstExprParser());
$this->lexer =
new Lexer();
$this->nameScopeFactory =
new NameScopeFactory();
} public function getTypes(string
$class, string
$property, array
$context =
[]): ?array
{