Symfony2 API
Class

Symfony\Component\Validator\Mapping\ClassMetadata

class ClassMetadata extends ElementMetadata implements ClassMetadataInterface

Default implementation of {@link ClassMetadataInterface}.

This class supports serialization and cloning.

Properties

Constraint[] $constraints
array $constraintsByGroup
int $cascadingStrategy The strategy for cascading objects.
int $traversalStrategy The strategy for traversing traversable objects.
string $name
string $defaultGroup
MemberMetadata[] $members
PropertyMetadata[] $properties
GetterMetadata[] $getters
array $groupSequence
bool $groupSequenceProvider

Methods

string[] __sleep()

Returns the names of the properties that should be serialized.

__clone()

Clones this object.

from GenericMetadata
GenericMetadata addConstraint(Constraint $constraint)

Adds a constraint.

GenericMetadata addConstraints(array $constraints)

Adds an list of constraints.

from GenericMetadata
Constraint[] getConstraints()

Returns all constraints of this element.

from GenericMetadata
bool hasConstraints()

Returns whether this element has any constraints.

from GenericMetadata
Constraint[] findConstraints(string $group)

Returns all constraints for a given validation group.

from GenericMetadata
int getCascadingStrategy()

Class nodes are never cascaded.

int getTraversalStrategy()

Returns the strategy for traversing traversable objects.

from GenericMetadata
accept(ValidationVisitorInterface $visitor, mixed $value, string|string[] $group, string $propertyPath, $propagatedGroup = null)

Implementation of the Visitor design pattern.

__construct(string $class)

Constructs a metadata for the given class

string getClassName()

Returns the name of the backing PHP class.

string getDefaultGroup()

Returns the name of the default group for this class

ClassMetadata addPropertyConstraint(string $property, Constraint $constraint)

Adds a constraint to the given property.

ClassMetadata addPropertyConstraints(string $property, array $constraints)

ClassMetadata addGetterConstraint(string $property, Constraint $constraint)

Adds a constraint to the getter of the given property.

ClassMetadata addGetterConstraints(string $property, array $constraints)

mergeConstraints(ClassMetadata $source)

Merges the constraints of the given metadata into this object.

bool hasMemberMetadatas(string $property)

Returns true if metadatas of members is present for the given property.

MemberMetadata[] getMemberMetadatas(string $property)

Returns all metadatas of members describing the given property.

bool hasPropertyMetadata(string $property)

Check if there's any metadata attached to the given named property.

PropertyMetadataInterface[] getPropertyMetadata(string $property)

Returns all metadata instances for the given named property.

string[] getConstrainedProperties()

Returns the names of all constrained properties.

ClassMetadata setGroupSequence(array $groupSequence)

Sets the default group sequence for this class.

bool hasGroupSequence()

Returns whether the "Default" group is overridden by a group sequence.

GroupSequence|null getGroupSequence()

Returns the group sequence that overrides the "Default" group for this class.

ReflectionClass getReflectionClass()

Returns a ReflectionClass instance for this class.

setGroupSequenceProvider(bool $active)

Sets whether a group sequence provider should be used.

bool isGroupSequenceProvider()

Returns whether the "Default" group is overridden by a dynamic group sequence obtained by the validated objects.

Details

at line 173
public string[] __sleep()

Returns the names of the properties that should be serialized.

Return Value

string[]

in GenericMetadata at line 97
public __clone()

Clones this object.

at line 222
public GenericMetadata addConstraint(Constraint $constraint)

Adds a constraint.

If the constraint {@link Valid} is added, the cascading strategy will be changed to {@link CascadingStrategy::CASCADE}. Depending on the properties $traverse and $deep of that constraint, the traversal strategy will be set to one of the following:

Parameters

Constraint $constraint The constraint to add

Return Value

GenericMetadata This object

Exceptions

ConstraintDefinitionException When trying to add the {@link Traverse} constraint

in GenericMetadata at line 173
public GenericMetadata addConstraints(array $constraints)

Adds an list of constraints.

Parameters

array $constraints The constraints to add

Return Value

GenericMetadata This object

in GenericMetadata at line 185
public Constraint[] getConstraints()

Returns all constraints of this element.

Return Value

Constraint[] A list of Constraint instances

in GenericMetadata at line 195
public bool hasConstraints()

Returns whether this element has any constraints.

Return Value

bool

in GenericMetadata at line 205
public Constraint[] findConstraints(string $group)

Returns all constraints for a given validation group.

Parameters

string $group The validation group

Return Value

Constraint[] A list of constraint instances

at line 534
public int getCascadingStrategy()

Class nodes are never cascaded.

{@inheritdoc}

Return Value

int The cascading strategy

in GenericMetadata at line 223
public int getTraversalStrategy()

Returns the strategy for traversing traversable objects.

Return Value

int The traversal strategy

at line 134
public accept(ValidationVisitorInterface $visitor, mixed $value, string|string[] $group, string $propertyPath, $propagatedGroup = null)

Implementation of the Visitor design pattern.

Calls {@link ValidationVisitorInterface::visit} and then forwards the accept()-call to all property metadata instances.

Parameters

ValidationVisitorInterface $visitor The visitor implementing the validation logic
mixed $value The value to validate
string|string[] $group The validation group to validate in
string $propertyPath The current property path in the validation graph
$propagatedGroup

at line 118
public __construct(string $class)

Constructs a metadata for the given class

Parameters

string $class

at line 194
public string getClassName()

Returns the name of the backing PHP class.

Return Value

string The name of the backing class.

at line 214
public string getDefaultGroup()

Returns the name of the default group for this class

For each class, the group "Default" is an alias for the group "", where is the non-namespaced name of the class. All constraints implicitly or explicitly assigned to group "Default" belong to both of these groups, unless the class defines a group sequence.

If a class defines a group sequence, validating the class in "Default" will validate the group sequence. The constraints assigned to "Default" can still be validated by validating the class in "".

Return Value

string The name of the default group

at line 266
public ClassMetadata addPropertyConstraint(string $property, Constraint $constraint)

Adds a constraint to the given property.

Parameters

string $property The name of the property
Constraint $constraint The constraint

Return Value

ClassMetadata This object

at line 287
public ClassMetadata addPropertyConstraints(string $property, array $constraints)

Parameters

string $property
array $constraints

Return Value

ClassMetadata

at line 307
public ClassMetadata addGetterConstraint(string $property, Constraint $constraint)

Adds a constraint to the getter of the given property.

The name of the getter is assumed to be the name of the property with an uppercased first letter and either the prefix "get" or "is".

Parameters

string $property The name of the property
Constraint $constraint The constraint

Return Value

ClassMetadata This object

at line 328
public ClassMetadata addGetterConstraints(string $property, array $constraints)

Parameters

string $property
array $constraints

Return Value

ClassMetadata

at line 342
public mergeConstraints(ClassMetadata $source)

Merges the constraints of the given metadata into this object.

Parameters

ClassMetadata $source The source metadata

at line 392
public bool hasMemberMetadatas(string $property)

Returns true if metadatas of members is present for the given property.

Parameters

string $property The name of the property

Return Value

bool

at line 406
public MemberMetadata[] getMemberMetadatas(string $property)

Returns all metadatas of members describing the given property.

Parameters

string $property The name of the property

Return Value

MemberMetadata[] An array of MemberMetadata

at line 414
public bool hasPropertyMetadata(string $property)

Check if there's any metadata attached to the given named property.

Parameters

string $property The property name.

Return Value

bool

at line 422
public PropertyMetadataInterface[] getPropertyMetadata(string $property)

Returns all metadata instances for the given named property.

If your implementation does not support properties, simply throw an exception in this method (for example a BadMethodCallException).

Parameters

string $property The property name.

Return Value

PropertyMetadataInterface[] A list of metadata instances. Empty if no metadata exists for the property.

at line 434
public string[] getConstrainedProperties()

Returns the names of all constrained properties.

Return Value

string[] A list of property names

at line 448
public ClassMetadata setGroupSequence(array $groupSequence)

Sets the default group sequence for this class.

Parameters

array $groupSequence An array of group names

Return Value

ClassMetadata

Exceptions

GroupDefinitionException

at line 474
public bool hasGroupSequence()

Returns whether the "Default" group is overridden by a group sequence.

If it is, you can access the group sequence with {@link getGroupSequence()}.

Return Value

bool Returns true if the "Default" group is overridden

at line 482
public GroupSequence|null getGroupSequence()

Returns the group sequence that overrides the "Default" group for this class.

Return Value

GroupSequence|null The group sequence or null

at line 492
public ReflectionClass getReflectionClass()

Returns a ReflectionClass instance for this class.

Return Value

ReflectionClass

at line 508
public setGroupSequenceProvider(bool $active)

Sets whether a group sequence provider should be used.

Parameters

bool $active

Exceptions

GroupDefinitionException

at line 524
public bool isGroupSequenceProvider()

Returns whether the "Default" group is overridden by a dynamic group sequence obtained by the validated objects.

If this method returns true, the class must implement {@link \Symfony\Component\Validator\GroupSequenceProviderInterface}. This interface will be used to obtain the group sequence when an object of this class is validated.

Return Value

bool Returns true if the "Default" group is overridden by a dynamic group sequence