public function Collection::__construct in Plug 7
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 {@link ConstraintDefinitionException} 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.
Overrides Composite::__construct
File
- lib/
Symfony/ validator/ Symfony/ Component/ Validator/ Constraints/ Collection.php, line 43
Class
- Collection
- @Target({"PROPERTY", "METHOD", "ANNOTATION"})
Namespace
Symfony\Component\Validator\ConstraintsCode
public function __construct($options = null) {
// no known options set? $options is the fields array
if (is_array($options) && !array_intersect(array_keys($options), array(
'groups',
'fields',
'allowExtraFields',
'allowMissingFields',
'extraFieldsMessage',
'missingFieldsMessage',
))) {
$options = array(
'fields' => $options,
);
}
parent::__construct($options);
}