* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\Constraints; use Symfony\Component\Validator\Attribute\HasNamedArguments; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Exception\ConstraintDefinitionException; /** * Disables auto mapping. * * Using the attribute on a property has higher precedence than using it on a class, * which has higher precedence than any configuration that might be defined outside the class. * * @author Kévin Dunglas */ #[\Attribute(\Attribute::TARGET_PROPERTY | \Attribute::TARGET_METHOD | \Attribute::TARGET_CLASS)] class DisableAutoMapping extends Constraint { /** * @param array|null $options */ #[HasNamedArguments] public function __construct(?array $options = null, mixed $payload = null) { if (\is_array($options)) { trigger_deprecation('symfony/validator', '7.3', 'Passing an array of options to configure the "%s" constraint is deprecated, use named arguments instead.', static::class); } if (\is_array($options) && \array_key_exists('groups', $options)) { throw new ConstraintDefinitionException(\sprintf('The option "groups" is not supported by the constraint "%s".', __CLASS__)); } parent::__construct($options, null, $payload); } public function getTargets(): string|array { return [self::PROPERTY_CONSTRAINT, self::CLASS_CONSTRAINT]; } }