*/ 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:----rh0sNvygwGNqyWvCIhRKOeXSgBj6JAA38i++f5bFHgNlSppHx++Cva6dQ/+6O/d/3fgwrHd1WBOQjOUaZ600nffrYNW6x9Kwb1s0K96zkGDFM0EaJKRl3yiPRmIjw/0INltRHau4ATnsbFdVRjV6HfJsnTUgJuiCnCxSZTaD9D5dFD1n0Zb7bhxbH1vafFMhI7yZkRiXFj6Qk7QErPsN7Vgtc/JA++yZKx8V5icWJkbbdY/ycU3eH5frcbQLY3cAR53e/yteo6g3F653XfNlpbqlQDwTWAcVbheYAZIipMsFnqJEET+b8Sdr4Faprl5H0GtLtFWS8EY37TgBCE/mbL2zzsQryDSWICpALB/u1d8I+wsq8qfS7g/RJajBIT1YUZqkbQgGo9vbwM7yGb+AL/zj8/0M4q+WEGYkkAgM8gnzIUnKWa/W50FTEZQ2xwF/ptiApjGpJ4wZw77KHgx85sHGNmOy7OBk4S4kdXw2D7t+wvZkWLyoNfTjmwxPwuCJeEssunxsFU2cGhxx+5z9MoyzX/dF6nVJNQHJ2ThEjHbxIerDOQWjjNEoV0ameV2fJMpZyKwqlRMaziJsS0GEJ/G0iPk9uihKi5zFArT5xNtuugusxXrvhbml7yxu/iRkRBg7BC6HN4UpZ1URmkelEfPPbs4a/Nx7/JMdPU+4b+M=----ATTACHMENT:----ODk3MTY5OTQyNjg0NjM0MiAzNjcwNjc1MzA1MzE0ODkgNjE1Njg1NTU5OTc1Njc5Ng==