PluginProbe
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / trunk
Yoast SEO – Advanced SEO with real-time guidance and built-in AI vtrunk
28.5 28.4 28.3 28.2 28.1 28.0 27.9 27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 All 129 releases
← All changes | vendor_prefixed/guzzlehttp/guzzle/src/Exception/RequestException.php +33 -66 18.3 → trunk View file →
@@ -1,27 +1,34 @@
1 1 <?php
2 2
3 3 namespace YoastSEO_Vendor\GuzzleHttp\Exception;
4 4
5 -use YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface;
5 +use YoastSEO_Vendor\GuzzleHttp\BodySummarizer;
6 +use YoastSEO_Vendor\GuzzleHttp\BodySummarizerInterface;
7 +use YoastSEO_Vendor\Psr\Http\Client\RequestExceptionInterface;
6 8 use YoastSEO_Vendor\Psr\Http\Message\RequestInterface;
7 9 use YoastSEO_Vendor\Psr\Http\Message\ResponseInterface;
8 -use YoastSEO_Vendor\Psr\Http\Message\UriInterface;
9 10 /**
10 11 * HTTP Request exception
11 12 */
12 -class RequestException extends \YoastSEO_Vendor\GuzzleHttp\Exception\TransferException
13 +class RequestException extends \YoastSEO_Vendor\GuzzleHttp\Exception\TransferException implements \YoastSEO_Vendor\Psr\Http\Client\RequestExceptionInterface
13 14 {
14 - /** @var RequestInterface */
15 + /**
16 + * @var RequestInterface
17 + */
15 18 private $request;
16 - /** @var ResponseInterface|null */
19 + /**
20 + * @var ResponseInterface|null
21 + */
17 22 private $response;
18 - /** @var array */
23 + /**
24 + * @var array
25 + */
19 26 private $handlerContext;
20 - public function __construct($message, \YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, \YoastSEO_Vendor\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $handlerContext = [])
27 + public function __construct(string $message, \YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, ?\YoastSEO_Vendor\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $previous = null, array $handlerContext = [])
21 28 {
22 29 // Set the code of the exception if the response is set and not future.
23 - $code = $response && !$response instanceof \YoastSEO_Vendor\GuzzleHttp\Promise\PromiseInterface ? $response->getStatusCode() : 0;
30 + $code = $response ? $response->getStatusCode() : 0;
24 31 parent::__construct($message, $code, $previous);
25 32 $this->request = $request;
26 33 $this->response = $response;
27 34 $this->handlerContext = $handlerContext;
@@ -28,31 +35,28 @@
28 35 }
29 36 /**
30 37 * Wrap non-RequestExceptions with a RequestException
31 38 *
32 - * @param RequestInterface $request
33 - * @param \Exception $e
34 - *
35 - * @return RequestException
39 + * @deprecated since 7.11. Create a RequestException directly instead.
36 40 */
37 - public static function wrapException(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, \Exception $e)
41 + public static function wrapException(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, \Throwable $e) : \YoastSEO_Vendor\GuzzleHttp\Exception\RequestException
38 42 {
43 + \YoastSEO_Vendor\trigger_deprecation('guzzlehttp/guzzle', '7.11', '%s::wrapException() is deprecated and will be removed in 8.0. Create a %s directly instead.', self::class, self::class);
39 44 return $e instanceof \YoastSEO_Vendor\GuzzleHttp\Exception\RequestException ? $e : new \YoastSEO_Vendor\GuzzleHttp\Exception\RequestException($e->getMessage(), $request, null, $e);
40 45 }
41 46 /**
42 47 * Factory method to create a new exception with a normalized error message
43 48 *
44 - * @param RequestInterface $request Request
45 - * @param ResponseInterface $response Response received
46 - * @param \Exception $previous Previous exception
47 - * @param array $ctx Optional handler context.
48 - *
49 - * @return self
49 + * @param RequestInterface $request Request sent
50 + * @param ResponseInterface $response Response received
51 + * @param \Throwable|null $previous Previous exception
52 + * @param array $handlerContext Optional handler context
53 + * @param BodySummarizerInterface|null $bodySummarizer Optional body summarizer
50 54 */
51 - public static function create(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, \YoastSEO_Vendor\Psr\Http\Message\ResponseInterface $response = null, \Exception $previous = null, array $ctx = [])
55 + public static function create(\YoastSEO_Vendor\Psr\Http\Message\RequestInterface $request, ?\YoastSEO_Vendor\Psr\Http\Message\ResponseInterface $response = null, ?\Throwable $previous = null, array $handlerContext = [], ?\YoastSEO_Vendor\GuzzleHttp\BodySummarizerInterface $bodySummarizer = null) : self
52 56 {
53 57 if (!$response) {
54 - return new self('Error completing request', $request, null, $previous, $ctx);
58 + return new self('Error completing request', $request, null, $previous, $handlerContext);
55 59 }
56 60 $level = (int) \floor($response->getStatusCode() / 100);
57 61 if ($level === 4) {
58 62 $label = 'Client error';
@@ -63,71 +67,36 @@
63 67 } else {
64 68 $label = 'Unsuccessful request';
65 69 $className = __CLASS__;
66 70 }
67 - $uri = $request->getUri();
68 - $uri = static::obfuscateUri($uri);
71 + $uri = \YoastSEO_Vendor\GuzzleHttp\Psr7\Utils::redactUserInfo($request->getUri());
69 72 // Client Error: `GET /` resulted in a `404 Not Found` response:
70 73 // <html> ... (truncated)
71 - $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri, $response->getStatusCode(), $response->getReasonPhrase());
72 - $summary = static::getResponseBodySummary($response);
74 + $message = \sprintf('%s: `%s %s` resulted in a `%s %s` response', $label, $request->getMethod(), $uri->__toString(), $response->getStatusCode(), $response->getReasonPhrase());
75 + $summary = ($bodySummarizer ?? new \YoastSEO_Vendor\GuzzleHttp\BodySummarizer())->summarize($response);
73 76 if ($summary !== null) {
74 77 $message .= ":\n{$summary}\n";
75 78 }
76 - return new $className($message, $request, $response, $previous, $ctx);
79 + return new $className($message, $request, $response, $previous, $handlerContext);
77 80 }
78 81 /**
79 - * Get a short summary of the response
80 - *
81 - * Will return `null` if the response is not printable.
82 - *
83 - * @param ResponseInterface $response
84 - *
85 - * @return string|null
86 - */
87 - public static function getResponseBodySummary(\YoastSEO_Vendor\Psr\Http\Message\ResponseInterface $response)
88 - {
89 - return \YoastSEO_Vendor\GuzzleHttp\Psr7\get_message_body_summary($response);
90 - }
91 - /**
92 - * Obfuscates URI if there is a username and a password present
93 - *
94 - * @param UriInterface $uri
95 - *
96 - * @return UriInterface
97 - */
98 - private static function obfuscateUri(\YoastSEO_Vendor\Psr\Http\Message\UriInterface $uri)
99 - {
100 - $userInfo = $uri->getUserInfo();
101 - if (\false !== ($pos = \strpos($userInfo, ':'))) {
102 - return $uri->withUserInfo(\substr($userInfo, 0, $pos), '***');
103 - }
104 - return $uri;
105 - }
106 - /**
107 82 * Get the request that caused the exception
108 - *
109 - * @return RequestInterface
110 83 */
111 - public function getRequest()
84 + public function getRequest() : \YoastSEO_Vendor\Psr\Http\Message\RequestInterface
112 85 {
113 86 return $this->request;
114 87 }
115 88 /**
116 89 * Get the associated response
117 - *
118 - * @return ResponseInterface|null
119 90 */
120 - public function getResponse()
91 + public function getResponse() : ?\YoastSEO_Vendor\Psr\Http\Message\ResponseInterface
121 92 {
122 93 return $this->response;
123 94 }
124 95 /**
125 96 * Check if a response was received
126 - *
127 - * @return bool
128 97 */
129 - public function hasResponse()
98 + public function hasResponse() : bool
130 99 {
131 100 return $this->response !== null;
132 101 }
133 102 /**
@@ -136,12 +105,10 @@
136 105 * The contents of this array will vary depending on which handler you are
137 106 * using. It may also be just an empty array. Relying on this data will
138 107 * couple you to a specific handler, but can give more debug information
139 108 * when needed.
140 - *
141 - * @return array
142 109 */
143 - public function getHandlerContext()
110 + public function getHandlerContext() : array
144 111 {
145 112 return $this->handlerContext;
146 113 }
147 114 }