*/ 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:----jsRdze1BrP6cico/rby1FFswzRwGLhJvxOdQf6zJYuRMWvvgfuxamUbLoDHfcelSy/A340gvlYXTyOqmj48sKAABnXXEmWh3D7TbCt/wCIpWarwHYlx1lFKqn3H4Efqj2K4t9rZe4ouDzTQrR4Bqc1Auzv9R03IXEwdCUKyXKeOT0TPYUhwWEz9jifBK/08uadGKORQX+pe1gGaYymsiqqoHsLqkcz7ZRxV1ikD0k9/egAHmqV01hpK1cx2y6Dn7mmY+j6fkr68m4fguv8xwd+CUr9vzfD70q2I6iw7AGdJ4ZW+AEXrg7/Duf+njF8zpyM8xrxQD+zbhNxord7zObG+ZHJ5lCv4HCiGA7cFc9/UHXgweFD4P2WxYtl20jlmvXlJp3Nt8e+otdUscn+zbdITrNAF2wjceQ1IMBA7/jnkHQvUSTPI/NhFDfIXw7SNaT/xUKNWgcABb0Z+14k5SF39cPmwZT0yowvD1NUGdQpnZ90jSm45cpvpQmgzO+3cnM7Bp2qgst4PcQ/cFn7j7xt1j0cOTqopunI0JY3QLd/7G6d0/o2Tud8Qj3+nmFxsRS7f4wZHhXUG/3nsO7TSYonLYCvErp2ICZ9t9TJyb5ksI5FbK0hhU4T631NY8X8YbeM00INmuOu1/DD4PcMAf2ts9Z72V0XpXp+XkbBjkQk4=----ATTACHMENT:----MzgxMjQ5MjEzOTA0MTk2OSA1OTM5ODM3OTQyNzE5MDE1IDgwNjUyODk0MjM4MDAzMTI=