StringHelpers   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 128
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
dl 0
loc 128
rs 10
c 0
b 0
f 0
wmc 11
lcom 0
cbo 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A camelCaseToKebap() 0 4 1
A trimStrip() 0 7 2
A splitCamelCase() 0 11 1
A kebapCaseToCamelCase() 0 8 2
A removePrefix() 0 7 2
A startsWith() 0 4 1
A endsWith() 0 9 2
1
<?php
2
3
namespace Flynt\Utils;
4
5
class StringHelpers
6
{
7
    /**
8
     * Converts a string from camel case to kebap case.
9
     *
10
     * @since 0.1.0
11
     *
12
     * @param string $str The string to convert.
13
     *
14
     * @return string
15
     */
16
    public static function camelCaseToKebap($str)
17
    {
18
        return strtolower(preg_replace('/([a-zA-Z])(?=[A-Z])/', '$1-', $str));
19
    }
20
21
    /**
22
     * Strips all HTML tags including script and style,
23
     * and trims text to a certain number of words.
24
     *
25
     * @since 0.1.0
26
     *
27
     * @param string $str    The string to trim and strip.
28
     * @param number $length The string length to return.
29
     *
30
     * @return string
31
     */
32
    public static function trimStrip($str, $length = 25)
33
    {
34
        if (isset($str)) {
35
            return wp_trim_words(wp_strip_all_tags($str), $length, '&hellip;');
36
        }
37
        return $str;
38
    }
39
40
    /**
41
     * Splits a camel case string.
42
     *
43
     * @since 0.1.0
44
     *
45
     * @param string $str The string to split.
46
     *
47
     * @return string
48
     */
49
    public static function splitCamelCase($str)
50
    {
51
        $a = preg_split(
52
            '/(^[^A-Z]+|[A-Z][^A-Z]+)/',
53
            $str,
54
            -1, // no limit for replacement count
55
            PREG_SPLIT_NO_EMPTY // don't return empty elements
56
            | PREG_SPLIT_DELIM_CAPTURE // don't strip anything from output array
57
        );
58
        return implode($a, ' ');
59
    }
60
61
    /**
62
     * Converts a string from kebap case to camel case.
63
     *
64
     * @since 0.1.0
65
     *
66
     * @param string $str                        The string to convert.
67
     * @param boolean $capitalizeFirstCharacter  Sets if the first character should be capitalized.
68
     *
69
     * @return string
70
     */
71
    public static function kebapCaseToCamelCase($str, $capitalizeFirstCharacter = false)
72
    {
73
        $str = str_replace(' ', '', ucwords(str_replace('-', ' ', $str)));
74
        if (false === $capitalizeFirstCharacter) {
75
            $str[0] = strtolower($str[0]);
76
        }
77
        return $str;
78
    }
79
80
    /**
81
     * Removes a prefix from a string.
82
     *
83
     * @since 0.1.0
84
     *
85
     * @param string $prefix The prefix to be removed.
86
     * @param string $str    The string to manipulate.
87
     *
88
     * @return string
89
     */
90
    public static function removePrefix($prefix, $str)
91
    {
92
        if (substr($str, 0, strlen($prefix)) == $prefix) {
93
            return substr($str, strlen($prefix));
94
        }
95
        return $str;
96
    }
97
98
    /**
99
     * Checks if a string starts with a certain string.
100
     *
101
     * @since 0.1.0
102
     *
103
     * @param string $search   The string to search for.
104
     * @param string $subject  The string to look into.
105
     *
106
     * @return boolean Returns true if the subject string starts with the search string.
107
     */
108
    public static function startsWith($search, $subject)
109
    {
110
        return substr($subject, 0, strlen($search)) === $search;
111
    }
112
113
    /**
114
     * Checks if a string ends with a certain string.
115
     *
116
     * @since 0.1.0
117
     *
118
     * @param string $search   The string to search for.
119
     * @param string $subject  The string to look into.
120
     *
121
     * @return boolean Returns true if the subject string ends with the search string.
122
     */
123
    public static function endsWith($search, $subject)
124
    {
125
        $searchLength = strlen($search);
126
        $subjectLength = strlen($subject);
127
        if ($searchLength > $subjectLength) {
128
            return false;
129
        }
130
        return substr_compare($subject, $search, $subjectLength - $searchLength, $searchLength) === 0;
131
    }
132
}
133