![]() 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/Topology/Config/Validator/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\MessageQueue\Topology\Config\Validator; use Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface; /** * Topology config data validator. */ class Format implements ValidatorInterface { /** * {@inheritdoc} */ public function validate($configData) { $requiredFields = ['name', 'type', 'connection', 'durable', 'autoDelete', 'internal', 'bindings', 'arguments']; $requiredBindingFields = ['id', 'destinationType', 'destination', 'disabled', 'topic', 'arguments']; $errors = []; foreach ($configData as $name => $data) { $diff = array_diff($requiredFields, array_keys($data)); foreach ($diff as $field) { $errors[] = sprintf('Missing [%s] field for exchange %s.', $field, $name); } if (!array_key_exists('bindings', $data) || !is_array($data['bindings'])) { $errors[] = sprintf('Invalid bindings format for exchange %s.', $name); continue; } foreach ($data['bindings'] as $bindingConfig) { $diff = array_diff($requiredBindingFields, array_keys($bindingConfig)); foreach ($diff as $field) { $errors[] = sprintf('Missing [%s] field for binding %s in exchange config.', $field, $name); } } } if (!empty($errors)) { throw new \LogicException(implode(PHP_EOL, $errors)); } } }