Alias   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 0
dl 0
loc 30
c 0
b 0
f 0
ccs 3
cts 3
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A sanitize() 0 5 2
1
<?php
2
namespace Redaxscript\Filter;
3
4
use function iconv;
5
use function preg_replace;
6
use function trim;
7
8
/**
9
 * children class to filter the alias
10
 *
11
 * @since 2.2.0
12
 *
13
 * @package Redaxscript
14
 * @category Filter
15
 * @author Henry Ruhs
16
 */
17
18
class Alias implements FilterInterface
19
{
20
	/**
21
	 * pattern for alias
22
	 *
23
	 * @var array
24
	 */
25
26
	protected $_patternArray =
27
	[
28
		'search' => '[^a-zA-Z0-9]+',
29
		'replace' => '-'
30
	];
31
32
	/**
33
	 * sanitize the alias
34
	 *
35
	 * @since 4.3.0
36
	 *
37
	 * @param string $alias alias to be sanitized
38
	 *
39
	 * @return string
40
	 */
41
42 1
	public function sanitize(string $alias = null) : ?string
43
	{
44 1
		$output = iconv(null, 'ascii//translit', trim($alias));
45 1
		return preg_replace('/' . $this->_patternArray['search'] . '/', $this->_patternArray['replace'], $output) ? : null;
46
	}
47
}
48