1: <?php
2:
3: declare(strict_types=1);
4:
5: namespace PHPStan\BetterReflection\Reflection\Adapter;
6:
7: use PhpParser\Node\Expr;
8: use PHPStan\BetterReflection\Reflection\ReflectionAttribute as BetterReflectionAttribute;
9:
10: final class FakeReflectionAttribute
11: {
12: private BetterReflectionAttribute $betterReflectionAttribute;
13: public function __construct(BetterReflectionAttribute $betterReflectionAttribute)
14: {
15: $this->betterReflectionAttribute = $betterReflectionAttribute;
16: }
17:
18: public function getName(): string
19: {
20: return $this->betterReflectionAttribute->getName();
21: }
22:
23: public function getTarget(): int
24: {
25: return $this->betterReflectionAttribute->getTarget();
26: }
27:
28: public function isRepeated(): bool
29: {
30: return $this->betterReflectionAttribute->isRepeated();
31: }
32:
33: /** @return array<int|string, mixed> */
34: public function getArguments(): array
35: {
36: return $this->betterReflectionAttribute->getArguments();
37: }
38:
39: /** @return array<int|string, Expr> */
40: public function getArgumentsExpressions(): array
41: {
42: return $this->betterReflectionAttribute->getArgumentsExpressions();
43: }
44:
45: public function newInstance(): object
46: {
47: $class = $this->getName();
48:
49: return new $class(...$this->getArguments());
50: }
51:
52: public function __toString(): string
53: {
54: return $this->betterReflectionAttribute->__toString();
55: }
56: }
57: