Passed
Push — develop ( 8daac1...a2b8ae )
by Mykola
04:44
created

Proxy   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 15
dl 0
loc 32
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __get() 0 3 1
A __call() 0 20 4
A __set() 0 3 1
1
<?php
2
/* 	Divine CMS - Open source CMS for widespread use.
3
    Copyright (c) 2019 Mykola Burakov ([email protected])
4
5
    See SOURCE.txt for other and additional information.
6
7
    This file is part of Divine CMS.
8
9
    This program is free software: you can redistribute it and/or modify
10
    it under the terms of the GNU General Public License as published by
11
    the Free Software Foundation, either version 3 of the License, or
12
    (at your option) any later version.
13
14
    This program is distributed in the hope that it will be useful,
15
    but WITHOUT ANY WARRANTY; without even the implied warranty of
16
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
    GNU General Public License for more details.
18
19
    You should have received a copy of the GNU General Public License
20
    along with this program. If not, see <http://www.gnu.org/licenses/>. */
21
22
namespace Divine\Engine\Core;
23
24
class Proxy
25
{
26
    public function __get($key)
0 ignored issues
show
Coding Style introduced by
Expected 2 blank lines before function; 0 found
Loading history...
27
    {
28
        return $this->{$key};
29
    }
30
31
    public function __set($key, $value)
32
    {
33
        $this->{$key} = $value;
34
    }
35
36
    public function __call($key, $args)
37
    {
38
        $arg_data = array();
39
40
        $args = func_get_args();
41
42
        foreach ($args as $arg) {
43
            if ($arg instanceof Ref) {
0 ignored issues
show
Bug introduced by
The type Divine\Engine\Core\Ref 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...
44
                $arg_data[] = &$arg->getRef();
45
            } else {
46
                $arg_data[] = &$arg;
47
            }
48
        }
49
50
        if (isset($this->{$key})) {
51
            return call_user_func_array($this->{$key}, $arg_data);
52
        } else {
53
            $trace = debug_backtrace();
54
55
            exit('<b>Notice</b>:  Undefined property: Proxy::' . $key . ' in <b>' . $trace[1]['file'] . '</b> on line <b>' . $trace[1]['line'] . '</b>');
0 ignored issues
show
Best Practice introduced by
Using exit here is not recommended.

In general, usage of exit should be done with care and only when running in a scripting context like a CLI script.

Loading history...
56
        }
57
    }
58
}
59