manager   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
c 1
b 0
f 0
dl 0
loc 47
rs 10
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A register_similartopics_drivers() 0 7 3
A get_driver() 0 8 2
A __construct() 0 3 1
1
<?php
2
/**
3
 *
4
 * Precise Similar Topics
5
 *
6
 * @copyright (c) 2018 Matt Friedman
7
 * @license GNU General Public License, version 2 (GPL-2.0)
8
 *
9
 */
10
11
namespace vse\similartopics\driver;
12
13
class manager
14
{
15
	/**
16
	 * Array that contains all available similartopics drivers which are passed via the
17
	 * service container
18
	 * @var array
19
	 */
20
	protected $similartopics_drivers;
21
22
	/**
23
	 * Construct a similar topics manager object
24
	 *
25
	 * @param array $similartopics_drivers Avatar drivers passed via the service container
26
	 */
27
	public function __construct($similartopics_drivers)
28
	{
29
		$this->register_similartopics_drivers($similartopics_drivers);
30
	}
31
32
	/**
33
	 * Get the driver object specified by the database sql layer
34
	 *
35
	 * @param string $sql_layer The database sql layer
36
	 * @return \vse\similartopics\driver\driver_interface Similar topics driver
37
	 */
38
	public function get_driver($sql_layer)
39
	{
40
		if (isset($this->similartopics_drivers[$sql_layer]))
41
		{
42
			return $this->similartopics_drivers[$sql_layer];
43
		}
44
45
		return null;
46
	}
47
48
	/**
49
	 * Register similartopics drivers
50
	 *
51
	 * @param array $similartopics_drivers Service collection of similartopics drivers
52
	 */
53
	protected function register_similartopics_drivers($similartopics_drivers)
54
	{
55
		if (!empty($similartopics_drivers))
56
		{
57
			foreach ($similartopics_drivers as $driver)
58
			{
59
				$this->similartopics_drivers[$driver->get_name()] = $driver;
60
			}
61
		}
62
	}
63
}
64