HasAdaptersTrait   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 72.72%

Importance

Changes 0
Metric Value
wmc 5
eloc 11
dl 0
loc 38
ccs 8
cts 11
cp 0.7272
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A createFileDriver() 0 7 2
A createDriver() 0 7 2
A getDefaultDriver() 0 3 1
1
<?php
2
3
namespace Nip\Cache\CacheManager;
4
5
use InvalidArgumentException;
6
use Nip\Cache\Adapters\FileAdapter\FileAdapter;
0 ignored issues
show
Bug introduced by
The type Nip\Cache\Adapters\FileAdapter\FileAdapter 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...
7
use Symfony\Component\Cache\Adapter\AbstractAdapter;
8
use Symfony\Component\Cache\Adapter\FilesystemAdapter;
9
10
/**
11
 * Trait HasDriversTrait
12
 * @package Nip\Cache\Traits
13
 */
14
trait HasAdaptersTrait
15
{
16
    /**
17
     * @return string
18
     */
19
    public function getDefaultDriver()
20
    {
21
        return 'file';
22
    }
23
24
    /**
25
     * @param $name
26
     * @param $config
27
     * @return AbstractAdapter
28
     */
29
    public function createDriver($name, $config = [])
30 3
    {
31
        $driverMethod = 'create' . ucfirst($name) . 'Driver';
32 3
        if (method_exists($this, $driverMethod)) {
33 3
            return $this->{$driverMethod}($config);
34 3
        } else {
35
            throw new InvalidArgumentException("Driver [{$name}] is not supported.");
36
        }
37
    }
38
39
    /**
40
     * Create an instance of the php file cache driver.
41
     *
42
     * @param array $config
43
     * @return FilesystemAdapter
44
     */
45
    protected function createFileDriver(array $config)
46 3
    {
47
        $namespace = '';
48 3
        $defaultLifetime = 0;
49 3
        $directory = isset($config['path']) ? $config['path'] : cache_path();
50 3
51
        return new FilesystemAdapter($namespace, $defaultLifetime, $directory);
52 3
    }
53
}
54