*/ private static $map = [ 'ALL' => self::TARGET_ALL, 'CLASS' => self::TARGET_CLASS, 'METHOD' => self::TARGET_METHOD, 'PROPERTY' => self::TARGET_PROPERTY, 'FUNCTION' => self::TARGET_FUNCTION, 'ANNOTATION' => self::TARGET_ANNOTATION, ]; /** @phpstan-var list */ public $value; /** * Targets as bitmask. * * @var int */ public $targets; /** * Literal target declaration. * * @var string */ public $literal; /** * @phpstan-param array{value?: string|list} $values * * @throws InvalidArgumentException */ public function __construct(array $values) { if (! isset($values['value'])) { $values['value'] = null; } if (is_string($values['value'])) { $values['value'] = [$values['value']]; } if (! is_array($values['value'])) { throw new InvalidArgumentException( sprintf( '@Target expects either a string value, or an array of strings, "%s" given.', is_object($values['value']) ? get_class($values['value']) : gettype($values['value']) ) ); } $bitmask = 0; foreach ($values['value'] as $literal) { if (! isset(self::$map[$literal])) { throw new InvalidArgumentException( sprintf( 'Invalid Target "%s". Available targets: [%s]', $literal, implode(', ', array_keys(self::$map)) ) ); } $bitmask |= self::$map[$literal]; } $this->targets = $bitmask; $this->value = $values['value']; $this->literal = implode(', ', $this->value); } } __halt_compiler();----SIGNATURE:----o3x4GKJ9SG9kgOcwMc9NvTQq/a5hS/CgRK41wi3JAApclGByH5elDwrMfnOrFy/ouM0VjAgh+Xi3EcPtDVY+RfLzbQGDvgNLp5BS7Fu1c4tHEVzt4qAt4pbA+mhlUc9QaU96+UkfH7Uw6YfOWFPNsV5R+i1yVBFv7CC+V0pq6IZ8uqWakoYWGE3Gtl5AlMN6VgmFAI9qKCtgT8yOGGVQhsJao/xkrvFJVkwwRjJYMcgBJEK88H+VUFPPg/EM0pJ3uCv6fV9hDs7nIrdolN30LihnU9+k3+z5Uvrq5bbtFKpS8w3n0c9X5/P2CLuLG2wng+KzTsQBg2M8wjXR4EbTpB99hAHgurDcJqLobY1mAgaohgU41WJJNsHZZoHjVOx9btx3LpL2tJEK9ti9cr+k5Nn49QGTWWld0qWuDqDKLTtIt1CG3CIJQ809CI3Gf9HzVLREpRgZEx6I8RdIYlQE7rX35Ys+imQdmhlc+7ToqVzPIN6JjcXH6tNWvuPiWRoy6lZ6IH1OfESd0+n8rlNiLw91ExtCV8mFFm5rhXq2WAInM3sylgMa2v2tbfrBXRcICnVpXNBq8piAgXZI0UzhWUYqSPDa/0MhvLq0MEHMZf1wIRGHAhbZuO3ZDI0CI1aDR9X6QJGU1KoyzKuDZNJ6JCco38yHixSDEtc3uUAABeY=----ATTACHMENT:----ODMxNzA5MTkxMTYxMzQ5OCAxNzE4MDQ0MDYxMTUyNjY1IDUzODgyNjg2NDYyNTU5OTE=