Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ValidatorChain.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
11 use Magento\Framework\Validation\ValidationResultFactory;
12 
17 {
21  private $validationResultFactory;
22 
26  private $validators;
27 
33  public function __construct(
34  ValidationResultFactory $validationResultFactory,
35  array $validators = []
36  ) {
37  $this->validationResultFactory = $validationResultFactory;
38 
39  foreach ($validators as $validator) {
40  if (!$validator instanceof ValidatorInterface) {
41  throw new LocalizedException(
42  __('Row Validator must implement %interface.', ['interface' => ValidatorInterface::class])
43  );
44  }
45  }
46  $this->validators = $validators;
47  }
48 
52  public function validate(array $rowData, int $rowNumber)
53  {
54  /* the inner empty array covers cases when no loops were made */
55  $errors = [[]];
56  foreach ($this->validators as $validator) {
57  $validationResult = $validator->validate($rowData, $rowNumber);
58 
59  if (!$validationResult->isValid()) {
60  $errors[] = $validationResult->getErrors();
61  }
62  }
63 
64  return $this->validationResultFactory->create(['errors' => array_merge(...$errors)]);
65  }
66 }
__()
Definition: __.php:13
__construct(ValidationResultFactory $validationResultFactory, array $validators=[])
$errors
Definition: overview.phtml:9