Strings::getOption()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 2.0625

Importance

Changes 0
Metric Value
dl 0
loc 8
ccs 3
cts 4
cp 0.75
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 2.0625
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
}