![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-payment/Gateway/Validator/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Payment\Gateway\Validator; use Magento\Framework\ObjectManager\TMap; use Magento\Framework\ObjectManager\TMapFactory; use Magento\Payment\Gateway\Validator\ResultInterfaceFactory; /** * Compiles a result using the results of multiple validators * * @api * @since 100.0.2 */ class ValidatorComposite extends AbstractValidator { /** * @var ValidatorInterface[] | TMap */ private $validators; /** * @var array */ private $chainBreakingValidators; /** * @param ResultInterfaceFactory $resultFactory * @param TMapFactory $tmapFactory * @param array $validators * @param array $chainBreakingValidators */ public function __construct( ResultInterfaceFactory $resultFactory, TMapFactory $tmapFactory, array $validators = [], array $chainBreakingValidators = [] ) { $this->validators = $tmapFactory->create( [ 'array' => $validators, 'type' => ValidatorInterface::class ] ); $this->chainBreakingValidators = $chainBreakingValidators; parent::__construct($resultFactory); } /** * Performs domain level validation for business object * * @param array $validationSubject * @return ResultInterface */ public function validate(array $validationSubject) { $isValid = true; $failsDescriptionAggregate = []; $errorCodesAggregate = []; foreach ($this->validators as $key => $validator) { $result = $validator->validate($validationSubject); if (!$result->isValid()) { $isValid = false; $failsDescriptionAggregate[] = $result->getFailsDescription(); $errorCodesAggregate[] = $result->getErrorCodes(); if (!empty($this->chainBreakingValidators[$key])) { break; } } } return $this->createResult( $isValid, array_merge([], ...$failsDescriptionAggregate), array_merge([], ...$errorCodesAggregate) ); } }