ServiceProxy   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Test Coverage

Coverage 69.23%

Importance

Changes 0
Metric Value
eloc 9
dl 0
loc 35
ccs 9
cts 13
cp 0.6923
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A getService() 0 3 1
A getConfig() 0 3 1
A __construct() 0 7 1
A afterCall() 0 4 1
A getNewStaticInstance() 0 6 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Yiisoft\Yii\Debug\Collector;
6
7
use Yiisoft\Proxy\ObjectProxy;
8
9
class ServiceProxy extends ObjectProxy
10
{
11
    use ProxyLogTrait;
12
13
    public function __construct(
14
        private readonly string $service,
15 4
        object $instance,
16
        ContainerProxyConfig $config,
17
    ) {
18
        $this->config = $config;
19
        parent::__construct($instance);
20 4
    }
21 4
22 4
    protected function afterCall(string $methodName, array $arguments, mixed $result, float $timeStart): mixed
23
    {
24
        $this->logProxy($this->service, $this->getInstance(), $methodName, $arguments, $result, $timeStart);
25 1
        return $result;
26
    }
27 1
28 1
    protected function getNewStaticInstance(object $instance): ObjectProxy
29
    {
30
        /**
31
         * @psalm-suppress UnsafeInstantiation Constructor should be consistent to `getNewStaticInstance()`.
32
         */
33
        return new static($this->service, $instance, $this->config);
34
    }
35
36 1
    protected function getService(): string
37
    {
38 1
        return $this->service;
39
    }
40
41
    protected function getConfig(): ContainerProxyConfig
42
    {
43
        return $this->config;
44
    }
45
}
46