*/ 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:----UpftALDiIxy/NRdK+/2rYP/1ucKNhyvRexrFN81q4mFXG9GXLdzMylsz5YP+ZaKKQSbt85zS3gWuf7o5+a2MqlN9Wc3kHObe6vsaNpPEiynWBrqSVR1LV8dT9hO5ngAOZr7S7KaRU9vpz1vj0p0SN05CFPcclmZu/wmsxS9SulS1NgBGkhjkeRL2sejqlAhqrZm1PCrVUU0YqXyHf3IrhWk0RtFOvQcKABBnw/xDSj1gzr1Ey2g91zZAikSmsDKe4iG8SjdGZtNheki9XoVoivrsy/82qGYRA7/gpVcrxNe5OC2pwlVkobSPbJ2gxLumtoVLz8ylBQb657B4djF0esnSqm4LCeBKohoaI8ynz9rHrvYq+wxTs5EuAoOLRH81/gRBj9pDUhIGUaA25iLVm2k1nI4r27Lsr7OTj5jmXAhwPMUE0tZdx3wxY4yk3g1goYtkDGrPOjBz6udXW/y5PeT9UfUbcSoihRVEIHLYg/AcFTA4VETnRKq5ZfnW3ipqS1WCHhPt6nf6/3FPC6ih4tfpGFZ1rn2h+y9b/B4dQ8tdKLI6OWm5vedc5FExtsdORF05rV2H7vo7dJwGNQZ65LYpbMU40DO1KzyBWI88+jAGm7Qk4Gw+zhg8yz0OHhhXLLaDSi9U51VER0dvGPvmf2+PeFy4cS4FX/L1vwwUdw4=----ATTACHMENT:----ODk0NzY3OTA1NTQ2NTU3MiA3NjI0NDA4Mzc1MTY2NTY3IDY5MDE3MTk3MTE4Nzk1Nzk=