*/ 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:----K2GlrJnoerfv5CDDBR4in5J62r+7xoYx7cC6IZ93QuW0rcW48gqe2AkSv+8bWU5qb4wYg63DNai1eR+PeQky7vPm1nJH4129CQIFHbxg0cTIijmubdUhbLFZef/UcUc4/SUfJjXqqvednoZlwPR/EkiOOlDn5ckQjGRsPP6TBPJsMAdUofVF5LFtXdV6UDDTRhcfEm8vNxqYepnRqiU/S4PB/rgDzDra38k6BnopT/LP+QynIb03CjLgGGOD1HajMv77aBdxAAx5v4/kp0mHrnXIhYx0CwTZ9fa86O1GlZqWrlFuEEWLExf9m6G9hw1BO9H32NfImJoS+JhjRsIfZr4f+WgBSH4sy3gk5awljpSEBFHpgsF0PbMmSmBw7NOm7uK6Twyie8stqKD/TwprZ5CCFfVAzR0l84I2tDl2cFakzSJxA8ZVO8PfHORSbBsUPUW2ECyUI29f735fpYTFwNh/gXxNFWNfPlEReJkMDorVUBTEtUB7xIjHdP3wfLlSj2YAYvK/5a0g0w9OdDa/8Tta7lxZIbanaqL/ydmUoWO8EDJJ/lYcU4s3UZnuLGGFNAPOY15Y4w1F8MfxZIs5HQrXyykm9bnQdQ4FbjMOaK4xQ35bDfFwoc4Zc9Sr0/Ye/MwWPBht45iwnWNFnp9xa+3siJ6Kw3AWQrzVUNYR/nI=----ATTACHMENT:----NTg5ODU5OTkzNTM2MjAyMyA4NjM0OTcyMzIxNDYwMDEgMjg0MDIwMjczNzk5NzY3NQ==