Passed
Push — master ( f6fd28...c9771d )
by Gareth
02:20
created

MagicMethodsTrait   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 92.86%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 29
ccs 13
cts 14
cp 0.9286
rs 10
wmc 9

3 Methods

Rating   Name   Duplication   Size   Complexity  
A methodExists() 0 3 1
A exists() 0 3 1
B __set() 0 17 7
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: gareth
5
 * Date: 27-8-15
6
 * Time: 10:27
7
 */
8
9
namespace garethp\ews\API;
10
11
use garethp\ews\Caster;
0 ignored issues
show
Bug introduced by
The type garethp\ews\Caster was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
12
13
trait MagicMethodsTrait
14
{
15 44
    public function __set($name, $value)
16
    {
17 44
        if (is_object($value) && !($value instanceof Type) && property_exists($value, "Entry")) {
18 7
            $value = $value->Entry;
19
        }
20
21 44
        if ($this->methodExists("set" . ucfirst($name))) {
22 44
            $convertedValue = TypeConverter::convertValueToExpectedType($this, $value, $name);
23 44
            $this->{"set" . ucfirst($name)}($convertedValue);
24 44
            return;
25
        }
26
27 5
        if (!$this->exists($name) && $this->exists(lcfirst($name))) {
28
            $name = lcfirst($name);
29
        }
30
31 5
        $this->$name = $value;
32
    }
33
34 36
    public function exists($name)
35
    {
36 36
        return property_exists($this, $name);
37
    }
38
39 44
    public function methodExists($name)
40
    {
41 44
        return method_exists($this, $name);
42
    }
43
}
44