setHasLegend(true); // Initialisation of the validator $validator = new Validator($parser, Validation::createValidator()); // The first field must contain an email $validator->addFieldConstraint(0, new Email()); // The second field must contain a date $validator->addFieldConstraint(1, new Date()); // Validate the legend $validator->setExceptedLegend(array('foo', 'bar', 'bim')); // An line must contain 3 columns $validator->addDataConstraint(new Callback(function($data, ExecutionContextInterface $context) { if (count($data) !== 6) { // 6 because of the legend (3 fields * 2) $context->addViolation('The line must contain 3 columns'); } })); $validator->validate(); if ($validator->isValid() === false) { foreach ($validator->getErrors() as $error) { $line = $error->getLine(); $column = $error->getColumn(); $message = $error->getViolation()->getMessage(); echo <<
  • Line: $line
  • Column: $column
  • $message

  • EOF; } }