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: /** @phpstan-assert-if-true =class-string $className */
13: public function hasClass(string $className): bool;
14:
15: public function getClass(string $className): ClassReflection;
16:
17: public function getClassName(string $className): string;
18:
19: public function getAnonymousClassReflection(
20: Node\Stmt\Class_ $classNode,
21: Scope $scope,
22: ): ClassReflection;
23:
24: /** @return list<string> */
25: public function getUniversalObjectCratesClasses(): array;
26:
27: public function hasFunction(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): bool;
28:
29: public function getFunction(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): FunctionReflection;
30:
31: public function resolveFunctionName(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): ?string;
32:
33: public function hasConstant(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): bool;
34:
35: public function getConstant(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): ConstantReflection;
36:
37: public function resolveConstantName(Node\Name $nameNode, ?NamespaceAnswerer $namespaceAnswerer): ?string;
38:
39: }
40: