1: <?php declare(strict_types = 1);
2:
3: namespace PHPStan\Reflection;
4:
5: use PhpParser\Node;
6: use PHPStan\Analyser\Scope;
7:
8: /** @api */
9: interface ReflectionProvider
10: {
11:
12: public function hasClass(string $className): bool;
13:
14: public function getClass(string $className): ClassReflection;
15:
16: public function getClassName(string $className): string;
17:
18: public function supportsAnonymousClasses(): bool;
19:
20: public function getAnonymousClassReflection(
21: Node\Stmt\Class_ $classNode,
22: Scope $scope,
23: ): ClassReflection;
24:
25: public function hasFunction(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): bool;
26:
27: public function getFunction(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): FunctionReflection;
28:
29: public function resolveFunctionName(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): ?string;
30:
31: public function hasConstant(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): bool;
32:
33: public function getConstant(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): GlobalConstantReflection;
34:
35: public function resolveConstantName(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): ?string;
36:
37: }
38: