getCompositeOption()])) { throw new ConstraintDefinitionException(\sprintf('You can\'t redefine the "%s" option. Use the "%s::getConstraints()" method instead.', $this->getCompositeOption(), __CLASS__)); } $this->constraints = $this->getConstraints($this->normalizeOptions($options)); parent::__construct($options); } protected final function getCompositeOption() : string { return 'constraints'; } public final function validatedBy() : string { return CompoundValidator::class; } protected abstract function getConstraints(array $options) : array; }