Strings   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 93
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 65.71%

Importance

Changes 0
Metric Value
wmc 13
lcom 1
cbo 1
dl 0
loc 93
ccs 23
cts 35
cp 0.6571
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 clean() 0 24 5
A getOption() 0 8 2
A hasOption() 0 4 1
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 4
    public function stringLength($data, $length = -1)
39
    {
40 4
        if ($length > 0) {
41
            if (mb_strlen($data) > $length) {
42
                $data = substr($data, 0, $length);
43
            }
44
        }
45 4
        return $data;
46
    }
47
48
    /**
49
     * @param $string
50
     * @return string
51
     */
52 4
    public function clean($string)
53
    {
54
55 4
        $string = implode("", explode("\\", $string));
56
57 4
        if ($this->getOption('stripslashes') == 1) {
58 4
            $string = stripslashes($string);
59 4
        }
60
61
62 4
        if ($this->getOption('trim') == 1) {
63 4
            $string = trim($string);
64 4
        }
65
66 4
        if ($this->getOption('trimControl') == 1) {
67 4
            $string =  preg_replace( '/[[:cntrl:]]/', '',$string);
68 4
        }
69
70 4
        if ($this->getOption('striptags') == 1) {
71 4
            $string = strip_tags($string);
72 4
        }
73
74 4
        return $string;
75
    }
76
77
78
    /**
79
     * @param $name
80
     * @return mixed|null
81
     */
82 4
    private function getOption($name)
83
    {
84 4
        if (!$this->hasOption($name)) {
85
            return null;
86
        }
87
88 4
        return $this->options[$name];
89
    }
90
91
    /**
92
     * @param $name
93
     * @return bool
94
     */
95 4
    private function hasOption($name)
96
    {
97 4
        return isset($this->options[$name]);
98
    }
99
}