Completed
Push — master ( 89deac...cf3c32 )
by Bas
02:49
created

Document::set()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 2
dl 0
loc 3
rs 10
c 1
b 0
f 0
1
<?php
2
3
namespace LaravelFreelancerNL\Aranguent;
4
5
/**
6
 * Class Document
7
 * Loosely based on ArangoDBClient\Document;
8
 * Laravel typecasts input data to an array which causes issues with protected variables (\0*\0 is prepended).
9
 * Thus we are using a very minimum version to gather data from ArangoDB through their PHP driver
10
 *
11
 * @package LaravelFreelancerNL\Aranguent
12
 */
13
14
class Document
15
{
16
17
    public static function createFromArray($values, array $options = [])
18
    {
19
        $document = new static($options);
0 ignored issues
show
Unused Code introduced by
The call to LaravelFreelancerNL\Aran...Document::__construct() has too many arguments starting with $options. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

19
        $document = /** @scrutinizer ignore-call */ new static($options);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
20
        foreach ($values as $key => $value) {
21
            $document->set($key, $value);
22
        }
23
        return $document;
24
    }
25
26
    /**
27
     * Set a document attribute
28
     *
29
     * The key (attribute name) must be a string.
30
     * This will validate the value of the attribute and might throw an
31
     * exception if the value is invalid.
32
     *
33
     *
34
     * @param string $key   - attribute name
35
     * @param mixed  $value - value for attribute
36
     *
37
     * @return void
38
     */
39
    public function set($key, $value)
40
    {
41
        $this->$key = $value;
42
    }
43
44
}
45