/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
src/Illuminate/Http/Client/RequestException.php
123 строки
3 KB
Brett B
[12.x] Correct truncate exceptions at (#59239)
17 мар 2026, 21:15
Не верифицирован
17 мар 2026, 21:15
db024ea
Код
Авторство
О чём код?
<?php namespace Illuminate\Http\Client; use GuzzleHttp\Psr7\Message; class RequestException extends HttpClientException { /** * The response instance. * * @var \Illuminate\Http\Client\Response */ public $response; /** * The current truncation length for the exception message. * * @var int|false|null */ public $truncateExceptionsAt; /** * The global truncation length for the exception message. * * @var int|false */ public static $truncateAt = 120; /** * Whether the response has been summarized in the message. * * @var bool */ public $hasBeenSummarized = false; /** * Create a new exception instance. * * @param \Illuminate\Http\Client\Response $response * @param int|false|null $truncateExceptionsAt */ public function __construct(Response $response, $truncateExceptionsAt = null) { $this->truncateExceptionsAt = $truncateExceptionsAt; $this->response = $response; parent::__construct($this->prepareMessage($response), $response->status()); } /** * Enable truncation of request exception messages. * * @return void */ public static function truncate() { static::$truncateAt = 120; } /** * Set the truncation length for request exception messages. * * @param int $length * @return void */ public static function truncateAt(int $length) { static::$truncateAt = $length; } /** * Disable truncation of request exception messages. * * @return void */ public static function dontTruncate() { static::$truncateAt = false; } /** * Prepare the exception message. * * @return bool */ public function report() { if (! $this->hasBeenSummarized) { $this->message = $this->prepareMessage($this->response); $this->hasBeenSummarized = true; } return false; } /** * Prepare the exception message. * * @param \Illuminate\Http\Client\Response $response * @return string */ protected function prepareMessage(Response $response) { $message = "HTTP request returned status code {$response->status()}"; $truncateExceptionsAt = $this->truncateExceptionsAt ?? static::$truncateAt; $psrResponse = $response->toPsrResponse(); $summary = null; if (is_int($truncateExceptionsAt)) { $summary = Message::bodySummary($psrResponse, $truncateExceptionsAt); } elseif (($body = $psrResponse->getBody())->isSeekable() && $body->isReadable()) { $summary = Message::toString($psrResponse); } return is_null($summary) ? $message : $message.":\n{$summary}\n"; } }