vendor/symfony/serializer/Normalizer/ProblemNormalizer.php line 43
<?php/** This file is part of the Symfony package.** (c) Fabien Potencier <fabien@symfony.com>** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*/namespace Symfony\Component\Serializer\Normalizer;use Symfony\Component\ErrorHandler\Exception\FlattenException;use Symfony\Component\Serializer\Exception\InvalidArgumentException;/*** Normalizes errors according to the API Problem spec (RFC 7807).** @see https://tools.ietf.org/html/rfc7807** @author Kévin Dunglas <dunglas@gmail.com>* @author Yonel Ceruto <yonelceruto@gmail.com>*/class ProblemNormalizer implements NormalizerInterface, CacheableSupportsMethodInterface{public const TITLE = 'title';public const TYPE = 'type';public const STATUS = 'status';private $debug;private $defaultContext = [self::TYPE => 'https://tools.ietf.org/html/rfc2616#section-10',self::TITLE => 'An error occurred',];public function __construct(bool $debug = false, array $defaultContext = []){$this->debug = $debug;$this->defaultContext = $defaultContext + $this->defaultContext;}public function normalize(mixed $object, string $format = null, array $context = []): array{if (!$object instanceof FlattenException) {throw new InvalidArgumentException(sprintf('The object must implement "%s".', FlattenException::class));}$context += $this->defaultContext;$debug = $this->debug && ($context['debug'] ?? true);$data = [self::TYPE => $context['type'],self::TITLE => $context['title'],self::STATUS => $context['status'] ?? $object->getStatusCode(),'detail' => $debug ? $object->getMessage() : $object->getStatusText(),];if ($debug) {$data['class'] = $object->getClass();$data['trace'] = $object->getTrace();}return $data;}/*** @param array $context*/public function supportsNormalization(mixed $data, string $format = null /* , array $context = [] */): bool{return $data instanceof FlattenException;}public function hasCacheableSupportsMethod(): bool{return true;}}