*/ 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:----PcbdNJ4vTvBDf6ALaoT5dQ3cka5BIfGOjlL7cykAkweUbZ3fUVX1w+9UzxMFIO5VHNvu4bE84lBRPpR6pRbi0vyxle3gVc6YLVs9u/IlWXO3XTiaI6jZ9BoLRViBKTWSwEtyBXDWP2tjkzO/6Oh9kKVNw0iagUhmdMfqzibgNOVBynKacw9VCFgoaCWcf0Z7RNJMbOboeYJFA3k8ghdXap3t/0fDTWZQllIvhuyjyBbam6Qgskj5RWl8dl8urOj2eThAr08yRmW/2ua4Kf0Anpe5nZ8L8Re8/Yp6JURzcmGwSUYrTWCE1N7ao0IPtkPxDdzUJR7TWTmhe+ZVTKR2IUIeXfO6kIRl6SisnlNn+qCdWasXeVhf7xwPgggo9SDLqNSbq4kk3540u/bvN0+SGfsFL8ujTEi/TDoNyIx+eUw8BN8ds58XuMR6EimWFoq5CPJCGQsjdMT+Aoz40g7FaEJRivExXKA0qg9js7HAo8q3zVDrbfJ6HpPAuRg17Kx0zDw3dRHkr+tmmuyb0Lkyqkc7f6l9fM3wJ+qS9d70w2HhYjCfPcxLY9vm/MLcceK+zHpcFGe9xf2zHbhn8wYmOIpDjjpZZ02A8vj6HVuvDfvewkCHDj4n9vRFXAJFcmMsOpm88EGpv1+28ULzm6UXeBIQPIUvMb0ba3aEd38XsxM=----ATTACHMENT:----NzEyNjI1MTcwODUyOTE5MSAyNDIzNzA3MzU1MTI5MzA1IDQ4NzUwMDkxNjY5MTA4ODA=