abstract class Composite extends Constraint

A constraint that is composed of other constraints.

You should never use the nested constraint instances anywhere else, because their groups are adapted when passed to the constructor of this class.

If you want to create your own composite constraint, extend this class and let {@link getCompositeOption()} return the name of the property which contains the nested constraints.

Constants

DEFAULT_GROUP

The name of the group given to all constraints with no explicit group.

CLASS_CONSTRAINT

Marks a constraint that can be put onto classes.

PROPERTY_CONSTRAINT

Marks a constraint that can be put onto properties.

Properties

static protected $errorNames Maps error codes to the names of their constants. from Constraint
mixed $payload Domain-specific data attached to a constraint. from Constraint
array $groups The groups that the constraint belongs to from Constraint

Methods

static string
getErrorName(string $errorCode)

Returns the name of the given error code.

__construct(mixed $options = null)

Initializes the constraint with options.

__set(string $option, mixed $value)

Sets the value of a lazily initialized option.

mixed
__get(string $option)

Returns the value of a lazily initialized option.

bool
__isset(string $option)

No description

addImplicitGroupName(string $group)

Adds the given group if this constraint is in the Default group.

string
getDefaultOption()

Returns the name of the default option.

array
getRequiredOptions()

Returns the name of the required options.

string
validatedBy()

Returns the name of the class that validates this constraint.

string|array
getTargets()

Returns whether the constraint can be put onto classes, properties or both.

array
__sleep()

Optimizes the serialized value to minimize storage space.

string
getCompositeOption()

Returns the name of the property that contains the nested constraints.

initializeNestedConstraints()

Initializes the nested constraints.

Details

static string getErrorName(string $errorCode)

Returns the name of the given error code.

Parameters

string $errorCode The error code

Return Value

string The name of the error code

Exceptions

InvalidArgumentException If the error code does not exist

__construct(mixed $options = null)

Initializes the constraint with options.

You should pass an associative array. The keys should be the names of existing properties in this class. The values should be the value for these properties.

Alternatively you can override the method getDefaultOption() to return the name of an existing property. If no associative array is passed, this property is set instead.

You can force that certain options are set by overriding getRequiredOptions() to return the names of these options. If any option is not set here, an exception is thrown.

Parameters

mixed $options The options (as associative array) or the value for the default option (any other type)

Exceptions

InvalidOptionsException When you pass the names of non-existing options
MissingOptionsException When you don't pass any of the options returned by getRequiredOptions()
ConstraintDefinitionException When you don't pass an associative array, but getDefaultOption() returns null

__set(string $option, mixed $value)

Sets the value of a lazily initialized option.

Corresponding properties are added to the object on first access. Hence this method will be called at most once per constraint instance and option name.

Parameters

string $option The option name
mixed $value The value to set

Exceptions

InvalidOptionsException If an invalid option name is given

mixed __get(string $option)

Returns the value of a lazily initialized option.

Corresponding properties are added to the object on first access. Hence this method will be called at most once per constraint instance and option name.

Parameters

string $option The option name

Return Value

mixed The value of the option

Exceptions

InvalidOptionsException If an invalid option name is given

bool __isset(string $option)

Parameters

string $option The option name

Return Value

bool

addImplicitGroupName(string $group)

Adds the given group if this constraint is in the Default group.

Parameters

string $group

string getDefaultOption()

Returns the name of the default option.

Override this method to define a default option.

Return Value

string

See also

array getRequiredOptions()

Returns the name of the required options.

Override this method if you want to define required options.

Return Value

array

See also

string validatedBy()

Returns the name of the class that validates this constraint.

By default, this is the fully qualified name of the constraint class suffixed with "Validator". You can override this method to change that behaviour.

Return Value

string

string|array getTargets()

Returns whether the constraint can be put onto classes, properties or both.

This method should return one or more of the constants Constraint::CLASS_CONSTRAINT and Constraint::PROPERTY_CONSTRAINT.

Return Value

string|array One or more constant values

array __sleep()

Optimizes the serialized value to minimize storage space.

Return Value

array The properties to serialize

abstract protected string getCompositeOption()

Returns the name of the property that contains the nested constraints.

Return Value

string The property name

protected initializeNestedConstraints()

Initializes the nested constraints.

This method can be overwritten in subclasses to clean up the nested constraints passed to the constructor.

See also