Completed
Push — master ( 0845f2...abc4c4 )
by Rob
02:09
created

Strings   A

Complexity

Total Complexity 13

Size/Duplication

Total Lines 94
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 66.67%

Importance

Changes 0
Metric Value
wmc 13
lcom 1
cbo 1
dl 0
loc 94
ccs 24
cts 36
cp 0.6667
rs 10
c 0
b 0
f 0

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A setOptions() 0 4 1
A stringLength() 0 9 3
A getOption() 0 8 2
A hasOption() 0 4 1
A clean() 0 25 5
1
<?php
2
3
namespace devtoolboxuk\soteria\classes;
4
5
use devtoolboxuk\utilitybundle\UtilityService;
6
7
class Strings
8
{
9
10
    private $arrayUtility;
11
12
    private $options = [
13
        'stripslashes' => 1,
14
        'trim' => 1,
15
        'trimControl' => 1,
16
        'striptags' => 1,
17
    ];
18
19
    public function __construct()
20
    {
21
        $utility = new UtilityService();
22
        $this->arrayUtility = $utility->arrays();
23
    }
24
25
    /**
26
     * @param array $options
27
     */
28
    public function setOptions($options = [])
29
    {
30
        $this->options = $this->arrayUtility->arrayMergeRecursiveDistinct($this->options, $options);
31
    }
32
33
    /**
34
     * @param $data
35
     * @param int $length
36
     * @return bool|string
37
     */
38 2
    public function stringLength($data, $length = -1)
39
    {
40 2
        if ($length > 0) {
41
            if (mb_strlen($data) > $length) {
42
                $data = substr($data, 0, $length);
43
            }
44
        }
45 2
        return $data;
46
    }
47
48
    /**
49
     * @param $string
50
     * @return string
51
     */
52 2
    public function clean($string)
53
    {
54
55 2
        $string = implode("", explode("\\", $string));
56
57 2
        if ($this->getOption('stripslashes') == 1) {
58 2
            $string = stripslashes($string);
59 2
        }
60
61
62 2
        if ($this->getOption('trim') == 1) {
63 2
            $string = trim($string);
64 2
        }
65
66 2
        if ($this->getOption('trimControl') == 1) {
67 2
            $characters    = "[[:cntrl:]]";
68 2
            $string =  preg_replace( "/".$characters."]+/" , '' , $string  );
69 2
        }
70
71 2
        if ($this->getOption('striptags') == 1) {
72 2
            $string = strip_tags($string);
73 2
        }
74
75 2
        return $string;
76
    }
77
78
79
    /**
80
     * @param $name
81
     * @return mixed|null
82
     */
83 2
    private function getOption($name)
84
    {
85 2
        if (!$this->hasOption($name)) {
86
            return null;
87
        }
88
89 2
        return $this->options[$name];
90
    }
91
92
    /**
93
     * @param $name
94
     * @return bool
95
     */
96 2
    private function hasOption($name)
97
    {
98 2
        return isset($this->options[$name]);
99
    }
100
}