Total Complexity | 54 |
Total Lines | 761 |
Duplicated Lines | 0 % |
Changes | 0 |
Complex classes like Request often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
While breaking up the class, it is a good idea to analyze how other classes use Request, and based on these observations, apply Extract Interface, too.
1 | <?php |
||
27 | class Request |
||
28 | { |
||
29 | /** |
||
30 | * Request::$curlAutoClose |
||
31 | * |
||
32 | * Flag for automatic close the connection when it has finished processing |
||
33 | * and not be pooled for reuse. |
||
34 | * |
||
35 | * @var bool |
||
36 | */ |
||
37 | public $curlAutoClose = true; |
||
38 | /** |
||
39 | * Request::$uri |
||
40 | * |
||
41 | * Request uri instance. |
||
42 | * |
||
43 | * @var Uri |
||
44 | */ |
||
45 | protected $uri; |
||
46 | |||
47 | /** |
||
48 | * Request::$curlOptions |
||
49 | * |
||
50 | * Request Curl handle options. |
||
51 | * |
||
52 | * @var array |
||
53 | */ |
||
54 | protected $curlOptions; |
||
55 | /** |
||
56 | * Request::$curlHeaders |
||
57 | * |
||
58 | * Request Curl handle headers. |
||
59 | * |
||
60 | * @var array |
||
61 | */ |
||
62 | protected $curlHeaders = []; |
||
63 | |||
64 | // ------------------------------------------------------------------------ |
||
65 | |||
66 | /** |
||
67 | * Request::__construct |
||
68 | * |
||
69 | * @throws \O2System\Spl\Exceptions\Logic\BadFunctionCall\BadPhpExtensionCallException |
||
70 | */ |
||
71 | public function __construct() |
||
100 | } |
||
101 | |||
102 | // ------------------------------------------------------------------------ |
||
103 | |||
104 | /** |
||
105 | * Request::setOptions |
||
106 | * |
||
107 | * Sets curl options. |
||
108 | * |
||
109 | * @see http://php.net/manual/en/function.curl-setopt.php |
||
110 | * |
||
111 | * @param array $options |
||
112 | * |
||
113 | * @return static |
||
114 | */ |
||
115 | public function setOptions(array $options) |
||
116 | { |
||
117 | foreach ($options as $option => $value) { |
||
118 | $this->setOption($option, $value); |
||
119 | } |
||
120 | |||
121 | return $this; |
||
122 | } |
||
123 | |||
124 | // ------------------------------------------------------------------------ |
||
125 | |||
126 | /** |
||
127 | * Request::setOption |
||
128 | * |
||
129 | * Sets custom curl option. |
||
130 | * |
||
131 | * @see http://php.net/manual/en/function.curl-setopt.php |
||
132 | * |
||
133 | * @param int $option The curl option number. |
||
134 | * @param mixed $value The value of curl option. |
||
135 | * |
||
136 | * @return static |
||
137 | */ |
||
138 | public function setOption($option, $value) |
||
139 | { |
||
140 | $this->curlOptions[ $option ] = $value; |
||
141 | |||
142 | return $this; |
||
143 | } |
||
144 | |||
145 | // ------------------------------------------------------------------------ |
||
146 | |||
147 | /** |
||
148 | * Request::setUri |
||
149 | * |
||
150 | * @param \O2System\Psr\Http\Message\UriInterface $uri |
||
151 | * |
||
152 | * @return static |
||
153 | */ |
||
154 | public function setUri(UriInterface $uri) |
||
155 | { |
||
156 | $this->uri = $uri; |
||
|
|||
157 | |||
158 | return $this; |
||
159 | } |
||
160 | |||
161 | // ------------------------------------------------------------------------ |
||
162 | |||
163 | /** |
||
164 | * Request::setHttpVersion |
||
165 | * |
||
166 | * Sets which http version to use (default, lets CURL decide which version to use). |
||
167 | * |
||
168 | * @param int $httpVersion Supported encodings are "CURL_HTTP_VERSION_NONE", "CURL_HTTP_VERSION_1_0", |
||
169 | * "CURL_HTTP_VERSION_1_1", and "CURL_HTTP_VERSION_2". |
||
170 | * |
||
171 | * @return static |
||
172 | */ |
||
173 | public function setHttpVersion($httpVersion) |
||
174 | { |
||
175 | if (in_array($httpVersion, [ |
||
176 | CURL_HTTP_VERSION_NONE, |
||
177 | CURL_HTTP_VERSION_1_0, |
||
178 | CURL_HTTP_VERSION_1_1, |
||
179 | CURL_HTTP_VERSION_2, |
||
180 | ] |
||
181 | )) { |
||
182 | $this->curlOptions[ CURLOPT_HTTP_VERSION ] = $httpVersion; |
||
183 | } |
||
184 | |||
185 | return $this; |
||
186 | } |
||
187 | |||
188 | // ------------------------------------------------------------------------ |
||
189 | |||
190 | /** |
||
191 | * Request::setUserAgent |
||
192 | * |
||
193 | * Sets the contents of the "User-Agent: " header to be used in a HTTP request. |
||
194 | * |
||
195 | * @param string $userAgent |
||
196 | * |
||
197 | * @return static |
||
198 | */ |
||
199 | public function setUserAgent($userAgent) |
||
200 | { |
||
201 | $this->curlOptions[ CURLOPT_USERAGENT ] = trim($userAgent); |
||
202 | |||
203 | return $this; |
||
204 | } |
||
205 | |||
206 | // ------------------------------------------------------------------------ |
||
207 | |||
208 | /** |
||
209 | * Request::setReferer |
||
210 | * |
||
211 | * Sets the contents of the "Referer: " header to be used in a HTTP request. |
||
212 | * |
||
213 | * @param string $referer |
||
214 | * |
||
215 | * @return static |
||
216 | */ |
||
217 | public function setReferer($referer) |
||
218 | { |
||
219 | $this->curlOptions[ CURLOPT_REFERER ] = trim($referer); |
||
220 | |||
221 | return $this; |
||
222 | } |
||
223 | |||
224 | // ------------------------------------------------------------------------ |
||
225 | |||
226 | /** |
||
227 | * Request::setEncoding |
||
228 | * |
||
229 | * Sets the contents of the "Accept-Encoding: " header. This enables decoding of the response. |
||
230 | * Supported encodings are "identity", "deflate", and "gzip". |
||
231 | * If an empty string, "", is set, a header containing all supported encoding types is sent. |
||
232 | * |
||
233 | * @param string $encoding Supported encodings are "identity", "deflate", and "gzip". |
||
234 | * |
||
235 | * @return static |
||
236 | */ |
||
237 | public function setEncoding($encoding) |
||
238 | { |
||
239 | if (in_array($encoding, ['identity', 'deflate', 'gzip'])) { |
||
240 | $this->curlOptions[ CURLOPT_ENCODING ] = $encoding; |
||
241 | } else { |
||
242 | $this->curlOptions[ CURLOPT_ENCODING ] = ''; |
||
243 | } |
||
244 | |||
245 | return $this; |
||
246 | } |
||
247 | |||
248 | // ------------------------------------------------------------------------ |
||
249 | |||
250 | /** |
||
251 | * Request::setTimeout |
||
252 | * |
||
253 | * Sets the maximum number of seconds to allow cURL functions to execute. |
||
254 | * |
||
255 | * @param int $timeout The number of seconds. |
||
256 | * @param bool $isMilliseconds The number units is uses milliseconds format. |
||
257 | * |
||
258 | * @return static |
||
259 | */ |
||
260 | public function setTimeout($timeout, $isMilliseconds = false) |
||
261 | { |
||
262 | if ($isMilliseconds) { |
||
263 | $this->curlOptions[ CURLOPT_TIMEOUT_MS ] = (int)$timeout; |
||
264 | } else { |
||
265 | $this->curlOptions[ CURLOPT_TIMEOUT ] = (int)$timeout; |
||
266 | } |
||
267 | |||
268 | return $this; |
||
269 | } |
||
270 | |||
271 | // ------------------------------------------------------------------------ |
||
272 | |||
273 | /** |
||
274 | * Request::setConnectionTimeout |
||
275 | * |
||
276 | * Sets the number of seconds to wait while trying to connect. Use 0 to wait indefinitely. |
||
277 | * |
||
278 | * @param int $timeout The number of seconds. |
||
279 | * @param bool $isMilliseconds The number units is uses milliseconds format. |
||
280 | * |
||
281 | * @return static |
||
282 | */ |
||
283 | public function setConnectionTimeout($timeout, $isMilliseconds = false) |
||
284 | { |
||
285 | if ($isMilliseconds) { |
||
286 | $this->curlOptions[ CURLOPT_CONNECTTIMEOUT_MS ] = (int)$timeout; |
||
287 | } else { |
||
288 | $this->curlOptions[ CURLOPT_CONNECTTIMEOUT ] = (int)$timeout; |
||
289 | } |
||
290 | |||
291 | return $this; |
||
292 | } |
||
293 | |||
294 | // ------------------------------------------------------------------------ |
||
295 | |||
296 | /** |
||
297 | * Request::setMaximumRedirects |
||
298 | * |
||
299 | * Sets the maximum amount of HTTP redirections to follow. Use this option alongside CURLOPT_FOLLOWLOCATION. |
||
300 | * |
||
301 | * @param string $maximum The numbers of maximum redirections. |
||
302 | * |
||
303 | * @return static |
||
304 | */ |
||
305 | public function setMaximumRedirects($maximum) |
||
306 | { |
||
307 | $this->curlOptions[ CURLOPT_MAXREDIRS ] = (int)$maximum; |
||
308 | $this->curlOptions[ CURLOPT_FOLLOWLOCATION ] = true; |
||
309 | |||
310 | return $this; |
||
311 | } |
||
312 | |||
313 | // ------------------------------------------------------------------------ |
||
314 | |||
315 | /** |
||
316 | * Request::setSslCaInfo |
||
317 | * |
||
318 | * Sets the name of a file holding one or more certificates to verify the peer with. |
||
319 | * It's also set the curl options: |
||
320 | * 1. CURLOPT_SSL_VERIFYPEER value into TRUE. |
||
321 | * 2. CURLOPT_SSL_VERIFYHOST value into 2 to check the existence of a common name and also verify that it matches |
||
322 | * the hostname provided. |
||
323 | * 3. CURLOPT_SSL_VERIFYSTATUS value into TRUE to verify the certificate status. |
||
324 | * |
||
325 | * @param string $caInfoFilePath Path to ssl certificate file. |
||
326 | * |
||
327 | * @return static |
||
328 | */ |
||
329 | public function setSslCaInfo($caInfoFilePath) |
||
330 | { |
||
331 | if (is_file($caInfoFilePath)) { |
||
332 | $this->setSslVerify(2, true); |
||
333 | $this->curlOptions[ CURLOPT_CAINFO ] = pathinfo($caInfoFilePath, PATHINFO_BASENAME); |
||
334 | $this->curlOptions[ CURLOPT_CAPATH ] = dirname($caInfoFilePath); |
||
335 | } |
||
336 | |||
337 | return $this; |
||
338 | } |
||
339 | |||
340 | // ------------------------------------------------------------------------ |
||
341 | |||
342 | /** |
||
343 | * Request::setSslVerify |
||
344 | * |
||
345 | * Sets the SSL Verify Peer into TRUE. |
||
346 | * |
||
347 | * @param int $verifyHost 0. To not check the names. In production environments the value of this option should |
||
348 | * be kept at 2 (default value). |
||
349 | * 1. To check the existence of a common name in the SSL peer certificate. |
||
350 | * 2. To check the existence of a common name and also verify that it matches the |
||
351 | * hostname provided. |
||
352 | * @param bool $verifyStatus TRUE to verify the certificate's status. |
||
353 | * |
||
354 | * @return static |
||
355 | */ |
||
356 | public function setSslVerify($verifyHost, $verifyStatus = false) |
||
357 | { |
||
358 | $this->curlOptions[ CURLOPT_SSL_VERIFYPEER ] = true; |
||
359 | |||
360 | $verifyHost = in_array($verifyHost, range(0, 3)) ? $verifyHost : 0; |
||
361 | $this->curlOptions[ CURLOPT_SSL_VERIFYHOST ] = (int)$verifyHost; |
||
362 | $this->curlOptions[ CURLOPT_SSL_VERIFYSTATUS ] = (bool)$verifyStatus; |
||
363 | |||
364 | return $this; |
||
365 | } |
||
366 | |||
367 | // ------------------------------------------------------------------------ |
||
368 | |||
369 | /** |
||
370 | * Request::setAuthentication |
||
371 | * |
||
372 | * Sets the HTTP authentication method(s) to use. |
||
373 | * |
||
374 | * @param string $username The HTTP authentication username. |
||
375 | * @param string $password The HTTP authentication password. |
||
376 | * @param int|string $method The HTTP authentication method. The options are: |
||
377 | * 1. CURLAUTH_BASIC |
||
378 | * 2. CURLAUTH_DIGEST |
||
379 | * 3. CURLAUTH_GSSNEGOTIATE |
||
380 | * 4. CURLAUTH_NTLM |
||
381 | * 5. CURLAUTH_ANY (default) |
||
382 | * 6. CURLAUTH_ANYSAFE |
||
383 | * |
||
384 | * @return static |
||
385 | */ |
||
386 | public function setAuthentication($username = '', $password = '', $method = CURLAUTH_ANY) |
||
387 | { |
||
388 | if (defined('CURLOPT_USERNAME')) { |
||
389 | $this->curlOptions[ CURLOPT_USERNAME ] = $username; |
||
390 | } |
||
391 | |||
392 | $this->curlOptions[ CURLOPT_USERPWD ] = "$username:$password"; |
||
393 | $this->curlOptions[ CURLOPT_HTTPAUTH ] = CURLAUTH_ANY; |
||
394 | |||
395 | if (in_array($method, [ |
||
396 | CURLAUTH_BASIC, |
||
397 | CURLAUTH_DIGEST, |
||
398 | CURLAUTH_GSSNEGOTIATE, |
||
399 | CURLAUTH_NTLM, |
||
400 | CURLAUTH_ANY, |
||
401 | CURLAUTH_ANYSAFE, |
||
402 | ])) { |
||
403 | $this->curlOptions[ CURLOPT_HTTPAUTH ] = $method; |
||
404 | } |
||
405 | |||
406 | return $this; |
||
407 | } |
||
408 | |||
409 | // ------------------------------------------------------------------------ |
||
410 | |||
411 | /** |
||
412 | * Request::setProxy |
||
413 | * |
||
414 | * Set the HTTP proxy to tunnel requests through. |
||
415 | * |
||
416 | * @param string $address The HTTP proxy address. |
||
417 | * @param int|string $port The HTTP proxy port. |
||
418 | * @param int|string $type The HTTP proxy type, available options: |
||
419 | * 1. CURLPROXY_HTTP |
||
420 | * 2. CURLPROXY_HTTP_1_0 |
||
421 | * 3. CURLPROXY_SOCKS4 |
||
422 | * 4. CURLPROXY_SOCKS5 |
||
423 | * 5. CURLPROXY_SOCKS4A |
||
424 | * 6. CURLPROXY_SOCKS5_HOSTNAME |
||
425 | * |
||
426 | * @return static |
||
427 | */ |
||
428 | public function setProxy($address, $port = 1080, $type = CURLPROXY_HTTP) |
||
429 | { |
||
430 | $this->curlOptions[ CURLOPT_PROXY ] = $address; |
||
431 | $this->curlOptions[ CURLOPT_PROXYPORT ] = $port; |
||
432 | $this->curlOptions[ CURLOPT_PROXYTYPE ] = $type; |
||
433 | $this->curlOptions[ CURLOPT_HTTPPROXYTUNNEL ] = true; |
||
434 | |||
435 | return $this; |
||
436 | } |
||
437 | |||
438 | // ------------------------------------------------------------------------ |
||
439 | |||
440 | /** |
||
441 | * Request::setProxyAuthentication |
||
442 | * |
||
443 | * Sets the username and password to use for the connection to the proxy. |
||
444 | * |
||
445 | * @param string $username The HTTP Proxy authentication username. |
||
446 | * @param string $password The HTTP Proxy authentication password. |
||
447 | * @param int|string $method The HTTP Proxy authentication method. The options are: |
||
448 | * 1. CURLAUTH_BASIC |
||
449 | * 2. CURLAUTH_NTLM |
||
450 | * |
||
451 | * @return static |
||
452 | */ |
||
453 | public function setProxyAuthentication($username, $password, $method = CURLAUTH_BASIC) |
||
469 | } |
||
470 | |||
471 | // ------------------------------------------------------------------------ |
||
472 | |||
473 | /** |
||
474 | * Request::setHeaders |
||
475 | * |
||
476 | * Sets curl request with headers. |
||
477 | * |
||
478 | * @param array $headers |
||
479 | * |
||
480 | * @return static |
||
481 | */ |
||
482 | public function setHeaders(array $headers) |
||
483 | { |
||
484 | foreach ($headers as $name => $value) { |
||
485 | $this->addHeader($name, $value); |
||
486 | } |
||
487 | |||
488 | return $this; |
||
489 | } |
||
490 | |||
491 | // ------------------------------------------------------------------------ |
||
492 | |||
493 | /** |
||
494 | * Request::addHeader |
||
495 | * |
||
496 | * Add curl request header. |
||
497 | * |
||
498 | * @param string $name Case-insensitive header field name. |
||
499 | * @param string|string[] $value Header value(s). |
||
500 | * |
||
501 | * @return static |
||
502 | */ |
||
503 | public function addHeader($name, $value) |
||
504 | { |
||
505 | $this->curlHeaders[ $name ] = $value; |
||
506 | |||
507 | return $this; |
||
508 | } |
||
509 | |||
510 | // ------------------------------------------------------------------------ |
||
511 | |||
512 | /** |
||
513 | * Request::setCookie |
||
514 | * |
||
515 | * Sets the cookie contents to be used in the HTTP request. |
||
516 | * |
||
517 | * @param string $cookieFile The contents of the "Cookie: " header to be used in the HTTP request. |
||
518 | * Note that multiple cookies are separated with a semicolon followed by a space |
||
519 | * (e.g., "fruit=apple; colour=red") |
||
520 | * |
||
521 | * @return static |
||
522 | */ |
||
523 | public function setCookie($cookie) |
||
524 | { |
||
525 | $this->curlOptions[ CURLOPT_COOKIE ] = $cookie; |
||
526 | |||
527 | return $this; |
||
528 | } |
||
529 | |||
530 | // ------------------------------------------------------------------------ |
||
531 | |||
532 | /** |
||
533 | * Request::setCookieFile |
||
534 | * |
||
535 | * Sets the cookie file to be used in the HTTP request. |
||
536 | * |
||
537 | * @param string $cookieFile The name of the file containing the cookie data. |
||
538 | * @param string|null $cookieJar The name of a file to save all internal cookies to when the handle is closed, |
||
539 | * e.g. after a call to curl_close. |
||
540 | * |
||
541 | * @return static |
||
542 | */ |
||
543 | public function setCookieFile($cookieFile, $cookieJar = null) |
||
544 | { |
||
545 | if (is_file($cookieFile)) { |
||
546 | $cookieJar = empty($cookieJar) ? $cookieFile : $cookieJar; |
||
547 | $this->curlOptions[ CURLOPT_COOKIEFILE ] = $cookieFile; |
||
548 | $this->curlOptions[ CURLOPT_COOKIEJAR ] = $cookieJar; |
||
549 | } |
||
550 | |||
551 | return $this; |
||
552 | } |
||
553 | |||
554 | // ------------------------------------------------------------------------ |
||
555 | |||
556 | /** |
||
557 | * Request::get |
||
558 | * |
||
559 | * Get response use HTTP GET request method. |
||
560 | * |
||
561 | * @param array $query Additional HTTP GET query. |
||
562 | * |
||
563 | * @return bool|\O2System\Curl\Response |
||
564 | */ |
||
565 | public function get(array $query = []) |
||
566 | { |
||
567 | $this->uri = $this->uri->withQuery($query); |
||
568 | |||
569 | $this->curlOptions[ CURLOPT_HTTPGET ] = true; |
||
570 | |||
571 | return $this->getResponse(); |
||
572 | } |
||
573 | |||
574 | // ------------------------------------------------------------------------ |
||
575 | |||
576 | /** |
||
577 | * Request::getResponse |
||
578 | * |
||
579 | * Get curl response. |
||
580 | * |
||
581 | * @return Response|bool |
||
582 | */ |
||
583 | public function getResponse() |
||
613 | } |
||
614 | |||
615 | // ------------------------------------------------------------------------ |
||
616 | |||
617 | /** |
||
618 | * Request::post |
||
619 | * |
||
620 | * Get response use HTTP POST request method. |
||
621 | * |
||
622 | * @param array $fields Additional HTTP POST fields. |
||
623 | * |
||
624 | * @return bool|\O2System\Curl\Response |
||
625 | */ |
||
626 | public function post(array $fields = [], $json = false) |
||
627 | { |
||
628 | $this->curlOptions[ CURLOPT_POST ] = true; |
||
629 | |||
630 | if ($json === true) { |
||
631 | $this->curlOptions[ CURLOPT_POSTFIELDS ] = json_encode($fields); |
||
632 | $this->addHeader('Content-Type', 'application/json'); |
||
633 | $this->addHeader('Content-Length', strlen($this->curlOptions[ CURLOPT_POSTFIELDS ])); |
||
634 | } else { |
||
635 | $this->curlOptions[ CURLOPT_POSTFIELDS ] = http_build_query($fields, null, '&', PHP_QUERY_RFC3986); |
||
636 | } |
||
637 | |||
638 | return $this->getResponse(); |
||
639 | } |
||
640 | |||
641 | // ------------------------------------------------------------------------ |
||
642 | |||
643 | /** |
||
644 | * Request::delete |
||
645 | * |
||
646 | * Get response use custom HTTP DELETE request method. |
||
647 | * |
||
648 | * @param array $fields Additional HTTP POST fields. |
||
649 | * |
||
650 | * @return bool|\O2System\Curl\Response |
||
651 | */ |
||
652 | public function delete(array $fields = []) |
||
653 | { |
||
654 | $this->curlOptions[ CURLOPT_CUSTOMREQUEST ] = 'DELETE'; |
||
655 | |||
656 | if (count($fields)) { |
||
657 | $this->curlOptions[ CURLOPT_POST ] = true; |
||
658 | $this->curlOptions[ CURLOPT_POSTFIELDS ] = http_build_query($fields, null, '&', PHP_QUERY_RFC3986); |
||
659 | } |
||
660 | |||
661 | return $this->getResponse(); |
||
662 | } |
||
663 | |||
664 | // ------------------------------------------------------------------------ |
||
665 | |||
666 | /** |
||
667 | * Request::head |
||
668 | * |
||
669 | * Get response use custom HTTP HEAD request method. |
||
670 | * |
||
671 | * @return bool|\O2System\Curl\Response |
||
672 | */ |
||
673 | public function head() |
||
674 | { |
||
675 | $this->curlOptions[ CURLOPT_CUSTOMREQUEST ] = 'HEAD'; |
||
676 | $this->curlOptions[ CURLOPT_HTTPGET ] = true; |
||
677 | $this->curlOptions[ CURLOPT_HEADER ] = true; |
||
678 | $this->curlOptions[ CURLOPT_NOBODY ] = true; |
||
679 | |||
680 | return $this->getResponse(); |
||
681 | } |
||
682 | |||
683 | // ------------------------------------------------------------------------ |
||
684 | |||
685 | /** |
||
686 | * Request::trace |
||
687 | * |
||
688 | * Get response use custom HTTP TRACE request method. |
||
689 | * |
||
690 | * @return bool|\O2System\Curl\Response |
||
691 | */ |
||
692 | public function trace() |
||
693 | { |
||
694 | $this->curlOptions[ CURLOPT_CUSTOMREQUEST ] = 'TRACE'; |
||
695 | |||
696 | return $this->getResponse(); |
||
697 | } |
||
698 | |||
699 | // ------------------------------------------------------------------------ |
||
700 | |||
701 | /** |
||
702 | * Request::trace |
||
703 | * |
||
704 | * Get response use custom HTTP OPTIONS request method. |
||
705 | * |
||
706 | * @return bool|\O2System\Curl\Response |
||
707 | */ |
||
708 | public function options() |
||
713 | } |
||
714 | |||
715 | // ------------------------------------------------------------------------ |
||
716 | |||
717 | /** |
||
718 | * Request::patch |
||
719 | * |
||
720 | * Get response use custom HTTP PATCH request method. |
||
721 | * |
||
722 | * @return bool|\O2System\Curl\Response |
||
723 | */ |
||
724 | public function patch() |
||
725 | { |
||
726 | $this->curlOptions[ CURLOPT_CUSTOMREQUEST ] = 'PATCH'; |
||
727 | |||
728 | return $this->getResponse(); |
||
729 | } |
||
730 | |||
731 | // ------------------------------------------------------------------------ |
||
732 | |||
733 | /** |
||
734 | * Request::connect |
||
735 | * |
||
736 | * Get response use custom HTTP CONNECT request method. |
||
737 | * |
||
738 | * @return bool|\O2System\Curl\Response |
||
739 | */ |
||
740 | public function connect() |
||
745 | } |
||
746 | |||
747 | // ------------------------------------------------------------------------ |
||
748 | |||
749 | /** |
||
750 | * Request::download |
||
751 | * |
||
752 | * Get response use custom HTTP DOWNLOAD request method. |
||
753 | * |
||
754 | * @return bool|\O2System\Curl\Response |
||
755 | */ |
||
756 | public function download() |
||
763 | } |
||
764 | |||
765 | // ------------------------------------------------------------------------ |
||
766 | |||
767 | /** |
||
768 | * Request::getHandle |
||
769 | * |
||
770 | * Gets curl handle resource. |
||
771 | * |
||
772 | * @return resource |
||
773 | */ |
||
774 | public function getHandle() |
||
788 | } |
||
789 | } |
Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a given class or a super-class is assigned to a property that is type hinted more strictly.
Either this assignment is in error or an instanceof check should be added for that assignment.