GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.

Oembed   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 73
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 7
lcom 1
cbo 0
dl 0
loc 73
ccs 15
cts 15
cp 1
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getResourceInfo() 0 8 2
A lookup() 0 11 2
A constructUrl() 0 4 2
1
<?php
2
/**
3
 * Oembed.php
4
 *
5
 * @package Embera
6
 * @author Michael Pratt <[email protected]>
7
 * @link   http://www.michael-pratt.com/
8
 *
9
 * For the full copyright and license information, please view the LICENSE
10
 * file that was distributed with this source code.
11
 */
12
13
namespace Embera;
14
15
/**
16
 * This class manages requests and responses
17
 * from an Oembed Endpoint.
18
 *
19
 * TODO: Support xml responses
20
 */
21
class Oembed
22
{
23
    /** @var object Instance of \Embera\HttpRequest */
24
    protected $http;
25
26
    /**
27
     * Construct
28
     *
29
     * @param object $http Instance of \Embera\HttpRequest
30
     * @return void
0 ignored issues
show
Comprehensibility Best Practice introduced by
Adding a @return annotation to constructors is generally not recommended as a constructor does not have a meaningful return value.

Adding a @return annotation to a constructor is not recommended, since a constructor does not have a meaningful return value.

Please refer to the PHP core documentation on constructors.

Loading history...
31
     */
32 391
    public function __construct(\Embera\HttpRequest $http)
33
    {
34 391
        $this->http = $http;
35 391
    }
36
37
    /**
38
     * Gets information about a resource
39
     *
40
     * @param bool $behaviour Wether or not to use fake responses only
41
     * @param string $apiUrl The Url to the Oembed provider
42
     * @param string $url    The original url, we want information from
43
     * @param array $params  An associative array with parameters to be sent to the
44
     *                       Oembed provider.
45
     * @return array
46
     */
47 177
    public function getResourceInfo($behaviour, $apiUrl, $url, array $params = array())
48
    {
49 177
        if ($behaviour === false) {
50 82
            return array();
51
        }
52
53 153
        return $this->lookup($this->constructUrl($apiUrl, array_merge($params, array('url' => $url))));
54
    }
55
56
    /**
57
     * Executes a http request to the given url and
58
     * returns an associative array with the fetched data.
59
     *
60
     * @param string $url
61
     * @return array
62
     *
63
     * @throws Exception From the Http object only if there is no way
64
     *                   to perform the request or if the response from
65
     *                   the server is empty/invalid.
66
     */
67 153
    protected function lookup($url)
68
    {
69 153
        $response = $this->http->fetch($url);
70 153
        $json = json_decode($response, true);
71
72 153
        if ($json) {
73 149
            return array_merge(array('embera_using_fake' => 0), $json);
74
        }
75
76 4
        return array();
77
    }
78
79
    /**
80
     * Builds a valid Oembed query string based on the given parameters,
81
     * Since this method uses the http_build_query function, there is no
82
     * need to pass urlencoded parameters, http_build_query already does
83
     * this for us.
84
     *
85
     * @param string $apiUrl The Url to the Oembed Api
86
     * @param array  $params Parameters for the query string
87
     * @return string
88
     */
89 155
    protected function constructUrl($apiUrl, array $params = array())
90
    {
91 155
        return $apiUrl . ((strpos($apiUrl, '?') === false) ? '?' : '&') . http_build_query(array_filter($params));
92
    }
93
}
94
95
?>
0 ignored issues
show
Best Practice introduced by
It is not recommended to use PHP's closing tag ?> in files other than templates.

Using a closing tag in PHP files that only contain PHP code is not recommended as you might accidentally add whitespace after the closing tag which would then be output by PHP. This can cause severe problems, for example headers cannot be sent anymore.

A simple precaution is to leave off the closing tag as it is not required, and it also has no negative effects whatsoever.

Loading history...
96