Passed
Push — master ( b62f3e...ec4003 )
by Aimeos
02:15
created

Base   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 4
eloc 10
c 1
b 0
f 0
dl 0
loc 37
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A config() 0 14 3
1
<?php
2
3
/**
4
 * @license LGPLv3, https://opensource.org/licenses/LGPL-3.0
5
 * @copyright Aimeos (aimeos.org), 2016-2022
6
 * @package Base
7
 * @subpackage MQueue
8
 */
9
10
11
namespace Aimeos\Base\MQueue;
12
13
14
/**
15
 * Base class for all message queue implementations
16
 *
17
 * @package Base
18
 * @subpackage MQueue
19
 */
20
abstract class Base
21
{
22
	private $config;
23
24
25
	/**
26
	 * Initializes the object
27
	 *
28
	 * @param array $config Multi-dimensional associative list of configuration settings
29
	 */
30
	public function __construct( array $config )
31
	{
32
		$this->config = $config;
33
	}
34
35
36
	/**
37
	 * Returns the configuration setting for the given key
38
	 *
39
	 * @param string $key Configuration key like "host" or "db/host"
40
	 * @param mixed $default Default value if no setting is found
41
	 * @return mixed Configuration setting or default value
42
	 */
43
	protected function config( string $key, $default = null )
44
	{
45
		$config = $this->config;
46
47
		foreach( explode( '/', trim( $key, '/' ) ) as $part )
48
		{
49
			if( isset( $config[$part] ) ) {
50
				$config = $config[$part];
51
			} else {
52
				return $default;
53
			}
54
		}
55
56
		return $config;
57
	}
58
}
59