Completed
Pull Request — master (#25)
by Matt
02:10
created

manager::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 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. Drivers
34
	 * will only be loaded for database that support fulltext indexes.
35
	 *
36
	 * @param string $sql_layer The database sql layer
37
	 * @return \vse\similartopics\driver\driver_interface Similar topics driver
38
	 */
39
	public function get_driver($sql_layer)
40
	{
41
		if (isset($this->similartopics_drivers[$sql_layer]) && $this->similartopics_drivers[$sql_layer]->is_supported())
42
		{
43
			return $this->similartopics_drivers[$sql_layer];
44
		}
45
46
		return null;
47
	}
48
49
	/**
50
	 * Register similartopics drivers
51
	 *
52
	 * @param array $similartopics_drivers Service collection of similartopics drivers
53
	 */
54
	protected function register_similartopics_drivers($similartopics_drivers)
55
	{
56
		if (!empty($similartopics_drivers))
57
		{
58
			foreach ($similartopics_drivers as $driver)
59
			{
60
				$this->similartopics_drivers[$driver->get_name()] = $driver;
61
			}
62
		}
63
	}
64
}
65