Passed
Push — master ( 59c1b9...1f2705 )
by Paul
04:56
created

Field   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 0
Metric Value
dl 0
loc 44
ccs 0
cts 21
cp 0
rs 10
c 0
b 0
f 0
wmc 5

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A mergeFieldArgs() 0 5 1
A defaults() 0 3 1
A build() 0 3 1
A required() 0 3 1
1
<?php
2
3
namespace GeminiLabs\SiteReviews\Modules\Html\Fields;
4
5
use GeminiLabs\SiteReviews\Modules\Html\Builder;
6
7
abstract class Field
8
{
9
	/**
10
	 * @var Builder
11
	 */
12
	protected $builder;
13
14
	public function __construct( Builder $builder )
15
	{
16
		$this->builder = $builder;
17
	}
18
19
	/**
20
	 * @return string|void
21
	 */
22
	public function build()
23
	{
24
		glsr_log()->error( 'Build method is not implemented for '.__CLASS__ );
25
	}
26
27
	/**
28
	 * @return array
29
	 */
30
	public static function defaults()
31
	{
32
		return [];
33
	}
34
35
	/**
36
	 * @return array
37
	 */
38
	public static function required()
39
	{
40
		return [];
41
	}
42
43
	/**
44
	 * @return void
45
	 */
46
	protected function mergeFieldArgs()
47
	{
48
		$this->builder->args = array_merge(
49
			wp_parse_args( $this->builder->args, static::defaults() ),
50
			static::required()
51
		);
52
	}
53
}
54