1: | <?php declare(strict_types = 1); |
2: | |
3: | namespace ApiGen\Index; |
4: | |
5: | use ApiGen\Info\ClassInfo; |
6: | use ApiGen\Info\ClassLikeInfo; |
7: | use ApiGen\Info\EnumInfo; |
8: | use ApiGen\Info\FunctionInfo; |
9: | use ApiGen\Info\InterfaceInfo; |
10: | use ApiGen\Info\TraitInfo; |
11: | |
12: | |
13: | class Index |
14: | { |
15: | /** @var FileIndex[] indexed by [filePath] */ |
16: | public array $files = []; |
17: | |
18: | /** @var NamespaceIndex[] indexed by [namespaceName] */ |
19: | public array $namespace = []; |
20: | |
21: | /** @var ClassLikeInfo[] indexed by [classLikeName] */ |
22: | public array $classLike = []; |
23: | |
24: | /** @var ClassInfo[] indexed by [className] */ |
25: | public array $class = []; |
26: | |
27: | /** @var InterfaceInfo[] indexed by [interfaceName] */ |
28: | public array $interface = []; |
29: | |
30: | /** @var TraitInfo[] indexed by [traitName] */ |
31: | public array $trait = []; |
32: | |
33: | /** @var EnumInfo[] indexed by [enumName] */ |
34: | public array $enum = []; |
35: | |
36: | /** @var FunctionInfo[] indexed by [functionName] */ |
37: | public array $function = []; |
38: | |
39: | /** @var ClassInfo[][] indexed by [classLikeName][classLikeName] */ |
40: | public array $classExtends = []; |
41: | |
42: | /** @var ClassInfo[][] indexed by [classLikeName][classLikeName] */ |
43: | public array $classImplements = []; |
44: | |
45: | /** @var ClassInfo[][] indexed by [classLikeName][classLikeName] */ |
46: | public array $classUses = []; |
47: | |
48: | /** @var InterfaceInfo[][] indexed by [classLikeName][classLikeName] */ |
49: | public array $interfaceExtends = []; |
50: | |
51: | /** @var EnumInfo[][] indexed by [classLikeName][classLikeName] */ |
52: | public array $enumImplements = []; |
53: | |
54: | /** @var ClassLikeInfo[][] indexed by [classLikeName][classLikeName] classExtends + classImplements + classUses + interfaceExtends + enumImplements */ |
55: | public array $dag = []; |
56: | |
57: | /** @var ClassLikeInfo[][] indexed by [classLikeName][classLikeName], e.g. ['a']['b'] means that B instance of A */ |
58: | public array $instanceOf = []; |
59: | |
60: | /** @var ClassLikeInfo[][] indexed by [constantName][] */ |
61: | public array $constants = []; |
62: | |
63: | /** @var ClassLikeInfo[][] indexed by [propertyName][] */ |
64: | public array $properties = []; |
65: | |
66: | /** @var ClassLikeInfo[][] indexed by [methodName][] */ |
67: | public array $methods = []; |
68: | |
69: | /** @var ClassLikeInfo[][][] indexed by [classLikeName][methodName], e.g. ['a']['b'] = [C] means method A::b is overriding C::b */ |
70: | public array $methodOverrides = []; |
71: | |
72: | /** @var ClassLikeInfo[][][] indexed by [classLikeName][methodName][], e.g. ['c']['b'] = [A] means method C::b is overridden by A::b */ |
73: | public array $methodOverriddenBy = []; |
74: | |
75: | /** @var ClassLikeInfo[][][] indexed by [classLikeName][methodName], e.g. ['a']['b'] = [C] means method A::b is implementing C::b */ |
76: | public array $methodImplements = []; |
77: | |
78: | /** @var ClassLikeInfo[][][] indexed by [classLikeName][methodName][], e.g. ['c']['b'] = [A] means method C::b is implemented by A::b */ |
79: | public array $methodImplementedBy = []; |
80: | } |
81: |