*/ 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:----g9BIFFZ4U722Epee7+VHuOlS9yyU2rVIJfkToHx+/z4M1NpHsXe8JG1M52p+uNy91w/uceG6FRdrlatCwtCcPKTahp/cvtJl7VUSEgJSpL7OsG7r7W5CL73k2Z8InCZNuT0khRsP7RGGiPunZPldYtIMJyT+7Frqy6hNm7nzdbLsPzUEsuoP3028hZAfWiejicHWf282XyyT6wFvvHcmQvYlWwxtG6HgA2OsWtZeUX1Su+e6Xg/Ctj0tMDahL+6KOEM6k2JsNNYT3ZQTEZGIWuKPhrvdwGLzrbt7vOxsmTO/HQ0+lSwcgv3hOGtNl2tt8ksl76CcPJ4YqGnLyDfqbOxJde7Gxbmk3X0WchOfLCW9zV3ztETqmKPcLgqHa3CtSK31wQ/4BnqPJVR8xOM7vavylBO2XgaKBwMLxu2evMy4q70aRkOJjJ21dX/99Oc68MB/0tVOwYBnZYM0KWQvgvjF4W3Thj8eyJl2t/sw4TDpCWkYFrq2GVciVS28COGNO6Uo0R3Wu6l9dLqaLBCA5is4YIhpMeLrgq8bNV9BM3SFOQaJrH0EV49lEiA9MqZO+nCgUq4vbrMqTtUa2EUcdqxIAbjR8SSulxqzb0RJWt+mkPutgNs/0O3mkqs+kk6LMDQSMNpTuQTCO3m4QbnHwYitxmM8ppUWxV0Zb/Zq6aQ=----ATTACHMENT:----NjczNzUxNjU4NTM2MjkwIDgyMTkwNzE4ODgwNjM5ODYgOTIzMTg3MjQyMzM2ODYzNQ==