• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ludovicm67 / php-request / 15322362453

29 May 2025 11:00AM UTC coverage: 90.977% (-2.5%) from 93.478%
15322362453

push

github

ludovicm67
ci: use php 8.4

121 of 133 relevant lines covered (90.98%)

7.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

62.5
/src/Request.php
1
<?php
2

3
namespace ludovicm67\Request;
4

5
use ludovicm67\Request\Exception\RequestException;
6

7
class Request {
8

9
  private $content;
10
  private $infos;
11
  private $empty = true;
12

13
  public function __construct(RequestBuilder $request) {
4✔
14
    if (!filter_var($request->getUrl(), FILTER_VALIDATE_URL)) {
4✔
15
      throw new RequestException('Please use a valid URL!');
1✔
16
    }
17

18
    if (!$request->allowedUnsecure()) {
3✔
19
      $parsedUrl = parse_url($request->getUrl());
3✔
20
      if (!isset($parsedUrl['scheme'])
3✔
21
        || (!in_array($parsedUrl['scheme'], ['http', 'https']))
3✔
22
      ) {
23
        throw new RequestException('Request not allowed!');
1✔
24
      }
25
    }
26

27
    $this->runRequest($request);
2✔
28
  }
29

30
  private function runRequest(RequestBuilder $request) {
2✔
31
    $ch = curl_init($request->getUrl());
2✔
32
    curl_setopt_array($ch, $request->getCurlOptions());
2✔
33
    $this->content = curl_exec($ch);
2✔
34
    if ($this->content === false) {
2✔
35
      $this->content = '';
1✔
36
    } else {
37
      $this->empty = false;
1✔
38
    }
39
    $this->infos = curl_getinfo($ch);
2✔
40
    curl_close($ch);
2✔
41
  }
42

43
  public function getContent() {
×
44
    return $this->content;
×
45
  }
46

47
  public function getInfo($key) {
×
48
    return $this->infos[$key];
×
49
  }
50

51
  public function getInfos() {
×
52
    return $this->infos;
×
53
  }
54

55
  public function isEmpty() {
2✔
56
    return $this->empty;
2✔
57
  }
58

59
  public static function fetch(RequestBuilder $request) {
×
60
    return (new Request($request))->getContent();
×
61
  }
62

63
  public static function fetchContent(RequestBuilder $request) {
×
64
    return self::fetch($request);
×
65
  }
66

67
  public static function fetchAll(RequestBuilder $request) {
×
68
    return new Request($request);
×
69
  }
70

71
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc