Completed
Push — master ( de9ece...1b5216 )
by Gabriel
05:03
created

AbstractModel::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
ccs 0
cts 3
cp 0
rs 10
cc 1
eloc 2
nc 1
nop 1
crap 2
1
<?php
2
3
namespace Sportic\Timing\RaceTecClient\Models;
4
5
use Sportic\Timing\RaceTecClient\Helper;
6
7
/**
8
 * Class AbstractModel
9
 * @package Sportic\Timing\RaceTecClient\Models
10
 */
11
abstract class AbstractModel
12
{
13
    /**
14
     * AbstractModel constructor.
15
     *
16
     * @param array $parameters
17
     */
18
    public function __construct($parameters = [])
19
    {
20
        $this->setParameters($parameters);
21
    }
22
23
    /**
24
     * @param array $parameters
25
     */
26
    public function setParameters($parameters)
27
    {
28
        if (is_array($parameters)) {
29
            foreach ($parameters as $name => $value) {
30
                $method = 'set' . ucfirst(Helper::camelCase($name));
31
                if (method_exists($this, $method)) {
32
                    $this->$method($value);
33
                } elseif (property_exists($this, $name)) {
34
                    $this->{$name} = $value;
35
                }
36
            }
37
        }
38
    }
39
40
    /**
41
     * @return mixed
42
     */
43 1
    public function __toArray()
44
    {
45 1
        return call_user_func('get_object_vars', $this);
46
    }
47
}
48