Test Failed
Push — master ( 3dd85e...34f16b )
by Devin
04:34 queued 10s
created

File   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 7

Importance

Changes 0
Metric Value
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 4
lcom 0
cbo 7

2 Methods

Rating   Name   Duplication   Size   Complexity  
A classUrl() 0 4 1
A create() 0 15 3
1
<?php
2
3
namespace Stripe;
4
5
/**
6
 * Class File
7
 *
8
 * @property string $id
9
 * @property string $object
10
 * @property int $created
11
 * @property string $filename
12
 * @property Collection $links
13
 * @property string $purpose
14
 * @property int $size
15
 * @property string $title
16
 * @property string $type
17
 * @property string $url
18
 *
19
 * @package Stripe
20
 */
21
class File extends ApiResource
22
{
23
    // This resource can have two different object names. In latter API
24
    // versions, only `file` is used, but since stripe-php may be used with
25
    // any API version, we need to support deserializing the older
26
    // `file_upload` object into the same class.
27
    const OBJECT_NAME = "file";
28
    const OBJECT_NAME_ALT = "file_upload";
29
30
    use ApiOperations\All;
31
    use ApiOperations\Create {
32
        create as protected _create;
33
    }
34
    use ApiOperations\Retrieve;
35
36
    public static function classUrl()
37
    {
38
        return '/v1/files';
39
    }
40
41
    /**
42
     * @param array|null $params
43
     * @param array|string|null $options
44
     *
45
     * @return \Stripe\File The created resource.
46
     */
47
    public static function create($params = null, $options = null)
48
    {
49
        $opts = \Stripe\Util\RequestOptions::parse($options);
50
        if (is_null($opts->apiBase)) {
51
            $opts->apiBase = Stripe::$apiUploadBase;
52
        }
53
        // Manually flatten params, otherwise curl's multipart encoder will
54
        // choke on nested arrays.
55
        // TODO: use array_column() once we drop support for PHP 5.4
56
        $flatParams = [];
57
        foreach (\Stripe\Util\Util::flattenParams($params) as $pair) {
0 ignored issues
show
Bug introduced by
It seems like $params defined by parameter $params on line 47 can also be of type null; however, Stripe\Util\Util::flattenParams() does only seem to accept array, maybe add an additional type check?

This check looks at variables that have been passed in as parameters and are passed out again to other methods.

If the outgoing method call has stricter type requirements than the method itself, an issue is raised.

An additional type check may prevent trouble.

Loading history...
58
            $flatParams[$pair[0]] = $pair[1];
59
        }
60
        return static::_create($flatParams, $opts);
0 ignored issues
show
Documentation introduced by
$opts is of type object<Stripe\Util\RequestOptions>, but the function expects a array|string|null.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
61
    }
62
}
63