![]() 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/GraphQl/Query/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\GraphQl\Query; use Magento\Framework\App\State; use Magento\Framework\Exception\AggregateExceptionInterface; use Psr\Log\LoggerInterface; /** * @inheritDoc */ class ErrorHandler implements ErrorHandlerInterface { /** * @var LoggerInterface */ private $logger; /** * @var State */ private $appState; /** * @param LoggerInterface $logger * @param State $appState */ public function __construct( LoggerInterface $logger, State $appState ) { $this->logger = $logger; $this->appState = $appState; } /** * @inheritDoc */ public function handle(array $errors, callable $formatter): array { $formattedErrors = []; // When not in developer mode, only log & report the first error for performance implications if ($this->appState->getMode() !== State::MODE_DEVELOPER) { $errors = array_splice($errors, 0, 1); } foreach ($errors as $error) { $this->logger->error($error); $previousError = $error->getPrevious(); if ($previousError instanceof AggregateExceptionInterface && !empty($previousError->getErrors())) { $aggregatedErrors = $previousError->getErrors(); foreach ($aggregatedErrors as $aggregatedError) { $this->logger->error($aggregatedError); $formattedErrors[] = $formatter($aggregatedError); } } else { $formattedErrors[] = $formatter($error); } } return $formattedErrors; } }