![]() 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/framework-message-queue/Publisher/Config/Validator/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\MessageQueue\Publisher\Config\Validator; use Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface; /** * Publisher config data validator. Validates that publisher config has all required fields. */ class Format implements ValidatorInterface { /** * {@inheritdoc} */ public function validate($configData) { $requiredPublisherFields = ['topic', 'disabled', 'connections']; $requiredConnectionFields = ['name', 'disabled', 'exchange']; $errors = []; foreach ($configData as $name => $publisherData) { $diff = array_diff($requiredPublisherFields, array_keys($publisherData)); foreach ($diff as $field) { $errors[] = sprintf('Missing %s field for publisher %s.', $field, $name); } if (!array_key_exists('connections', $publisherData) || !is_array($publisherData['connections'])) { $errors[] = sprintf('Invalid connections format for publisher %s.', $name); continue; } foreach ($publisherData['connections'] as $connectionConfig) { $diff = array_diff($requiredConnectionFields, array_keys($connectionConfig)); foreach ($diff as $field) { $errors[] = sprintf('Missing %s field for publisher %s in connection config.', $field, $name); } } } if (!empty($errors)) { throw new \LogicException(implode(' ', $errors)); } } }