Documentation

Compound extends Composite
in package

AbstractYes

Extend this class to create a reusable set of constraints.

Tags
author

Maxime Steinhausser maxime.steinhausser@gmail.com

Table of Contents

Constants

CLASS_CONSTRAINT  = 'class'
Marks a constraint that can be put onto classes.
DEFAULT_GROUP  = 'Default'
The name of the group given to all constraints with no explicit group.
PROPERTY_CONSTRAINT  = 'property'
Marks a constraint that can be put onto properties.

Properties

$constraints  : array<string|int, Constraint>
$groups  : array<string|int, string>
The groups that the constraint belongs to.
$payload  : mixed
Domain-specific data attached to a constraint.
$errorNames  : mixed
Maps error codes to the names of their constants.

Methods

__construct()  : mixed
Initializes the constraint with options.
__get()  : mixed
Returns the value of a lazily initialized option.
__isset()  : bool
__set()  : mixed
Sets the value of a lazily initialized option.
addImplicitGroupName()  : mixed
Adds the given group if this constraint is in the Default group.
getDefaultOption()  : string|null
Returns the name of the default option.
getErrorName()  : string
Returns the name of the given error code.
getRequiredOptions()  : array<string|int, string>
Returns the name of the required options.
getTargets()  : string|array<string|int, string>
Returns whether the constraint can be put onto classes, properties or both.
validatedBy()  : string
getCompositeOption()  : string
Returns the name of the property that contains the nested constraints.
getConstraints()  : array<string|int, Constraint>
initializeNestedConstraints()  : mixed
Initializes the nested constraints.
normalizeOptions()  : array<string|int, mixed>

Constants

CLASS_CONSTRAINT

Marks a constraint that can be put onto classes.

public mixed CLASS_CONSTRAINT = 'class'

DEFAULT_GROUP

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

public mixed DEFAULT_GROUP = 'Default'

PROPERTY_CONSTRAINT

Marks a constraint that can be put onto properties.

public mixed PROPERTY_CONSTRAINT = 'property'

Properties

$groups

The groups that the constraint belongs to.

public array<string|int, string> $groups

$payload

Domain-specific data attached to a constraint.

public mixed $payload

$errorNames

Maps error codes to the names of their constants.

protected static mixed $errorNames = []

Methods

__construct()

Initializes the constraint with options.

public __construct([mixed $options = null ]) : mixed

The groups of the composite and its nested constraints are made consistent using the following strategy:

  • If groups are passed explicitly to the composite constraint, but not to the nested constraints, the options of the composite constraint are copied to the nested constraints;

  • If groups are passed explicitly to the nested constraints, but not to the composite constraint, the groups of all nested constraints are merged and used as groups for the composite constraint;

  • If groups are passed explicitly to both the composite and its nested constraints, the groups of the nested constraints must be a subset of the groups of the composite constraint. If not, a is thrown.

All this is done in the constructor, because constraints can then be cached. When constraints are loaded from the cache, no more group checks need to be done.

Parameters
$options : mixed = null

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

__get()

Returns the value of a lazily initialized option.

public __get(string $option) : mixed

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
$option : string
Tags
throws
InvalidOptionsException

If an invalid option name is given

__isset()

public __isset(string $option) : bool
Parameters
$option : string
Return values
bool

__set()

Sets the value of a lazily initialized option.

public __set(string $option, mixed $value) : mixed

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
$option : string
$value : mixed
Tags
throws
InvalidOptionsException

If an invalid option name is given

addImplicitGroupName()

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

public addImplicitGroupName(string $group) : mixed
Parameters
$group : string

getDefaultOption()

Returns the name of the default option.

public getDefaultOption() : string|null

Override this method to define a default option.

Tags
see
__construct()
Return values
string|null

getErrorName()

Returns the name of the given error code.

public static getErrorName(string $errorCode) : string
Parameters
$errorCode : string
Tags
throws
InvalidArgumentException

If the error code does not exist

Return values
string

getRequiredOptions()

Returns the name of the required options.

public getRequiredOptions() : array<string|int, string>

Override this method if you want to define required options.

Tags
see
__construct()
Return values
array<string|int, string>

getTargets()

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

public getTargets() : string|array<string|int, string>

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

Return values
string|array<string|int, string>

One or more constant values

validatedBy()

public final validatedBy() : string
Return values
string

getCompositeOption()

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

protected final getCompositeOption() : string
Return values
string

getConstraints()

protected abstract getConstraints(array<string|int, mixed> $options) : array<string|int, Constraint>
Parameters
$options : array<string|int, mixed>
Return values
array<string|int, Constraint>

initializeNestedConstraints()

Initializes the nested constraints.

protected initializeNestedConstraints() : mixed

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

Tags
see
Collection::initializeNestedConstraints()

normalizeOptions()

protected normalizeOptions(mixed $options) : array<string|int, mixed>
Parameters
$options : mixed
Return values
array<string|int, mixed>

        
On this page

Search results