Passed
Push — master ( 1d6f63...bde0a3 )
by Stephen
10:28
created

camelCaseSplit()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
use Sfneal\Helpers\Strings\StringHelpers;
4
5
/**
6
 * Sanitize a file name to remove illegal chars.
7
 *
8
 * @param string $raw
9
 * @return string
10
 */
11
function sanitizeFileName(string $raw): string
12
{
13
    return (new StringHelpers($raw))->sanitizeFileName();
14
}
15
16
/**
17
 * Truncate a string to be no longer than $chars.
18
 *
19
 * @param string $string
20
 * @param int $chars
21
 * @param string $suffix
22
 * @return string
23
 */
24
function truncateString(string $string, int $chars = 100, string $suffix = '...'): string
25
{
26
    return (new StringHelpers($string))->truncate($chars, $suffix);
27
}
28
29
/**
30
 * Covert a camel cased string into a $char separated string.
31
 *
32
 * @param string $string
33
 * @param string $char
34
 * @return string
35
 */
36
function camelCaseConverter(string $string, $char = '-'): string
37
{
38
    return (new StringHelpers($string))->camelCaseConvert($char);
39
}
40
41
/**
42
 * Explode a string using upper case chars as the separator.
43
 *
44
 * @param string $string
45
 * @return array
46
 */
47
function camelCaseSplit(string $string): array
48
{
49
    return (new StringHelpers($string))->camelCaseSplit();
50
}
51
52
/**
53
 * Remove illegal characters from a string to create an ID.
54
 *
55
 * @param $string
56
 * @return string
57
 */
58
function str2id($string): string
59
{
60
    return (new StringHelpers($string))->id();
61
}
62
63
/**
64
 * Remove ' ', '-', '&' characters.
65
 *
66
 * @param $item
67
 * @return string
68
 */
69
function stripString($item): string
70
{
71
    return (new StringHelpers($item))->strip();
72
}
73
74
/**
75
 * Remove spaces and convert string to lowercase chars.
76
 *
77
 * @param $string
78
 * @return string|string[]
79
 */
80
function stringID($string): string
81
{
82
    return (new StringHelpers($string))->id();
83
}
84
85
/**
86
 * Check if a needle string is in a haystack string.
87
 *
88
 * @param string $haystack
89
 * @param string|array $needle
90
 * @param string $boolean
91
 * @return bool
92
 */
93
function inString(string $haystack, $needle, string $boolean = 'and'): bool
94
{
95
    return (new StringHelpers($haystack))->inString($needle, $boolean);
96
}
97
98
/**
99
 * Determine if the $string is a plain text list of values.
100
 *
101
 *  - if $string is a list, an array of values is returned
102
 *  - if $sting is a string, false is returned
103
 *
104
 * @param string $string
105
 * @param array|string[] $separators
106
 * @return bool|false|string[]
107
 */
108
function isListString(string $string, array $separators = [', ', ' '])
109
{
110
    return (new StringHelpers($string))->isListString($separators);
111
}
112
113
/**
114
 * Explode a string using an array of delimiters instead of a single string.
115
 *
116
 * @param string $string
117
 * @param array|string[] $delimiters
118
 * @param string $replacer
119
 * @return array
120
 */
121
function explodeMany(string $string,
122
                     array $delimiters = [',', '&', '/', '-'],
123
                     string $replacer = '***'): array
124
{
125
    return (new StringHelpers($string))->explodeMany($delimiters, $replacer);
126
}
127
128
/**
129
 * Add whitespace padding to a string.
130
 *
131
 * @param string $string
132
 * @param int $amount
133
 * @param string $pad
134
 * @param bool $front add whitespace to 'front' of the string
135
 * @param bool $back add whitespace to the 'back' of the string
136
 * @return string
137
 */
138
function whitespacePad(string $string,
139
                       int $amount = 1,
140
                       string $pad = ' ',
141
                       bool $front = true,
142
                       bool $back = true): string
143
{
144
    return (new StringHelpers($string))->whitespacePad($amount, $pad, $front, $back);
145
}
146
147
/**
148
 * Add whitespace padding to only the 'back' of the string.
149
 *
150
 * @param string $string
151
 * @param int $amount
152
 * @param string $pad
153
 * @return string
154
 */
155
function whitespacePadBack(string $string, int $amount = 1, string $pad = ' '): string
156
{
157
    return (new StringHelpers($string))->whitespacePadBack($amount, $pad);
158
}
159
160
/**
161
 * Add whitespace padding to only the 'back' of the string.
162
 *
163
 * @param string $string
164
 * @param int $amount
165
 * @param string $pad
166
 * @return string
167
 */
168
function whitespacePadFront(string $string, int $amount = 1, string $pad = ' '): string
169
{
170
    return (new StringHelpers($string))->whitespacePadFront($amount, $pad);
171
}
172
173
/**
174
 * Remove all whitespace (spaces) from a string.
175
 *
176
 * @param string $string
177
 * @return string
178
 */
179
function whitespaceRemove(string $string): string
180
{
181
    return (new StringHelpers($string))->whitespaceRemove();
182
}
183
184
/**
185
 * Remove all whitespace (spaces) from a string & replace with another string.
186
 *
187
 * @param string $string
188
 * @param string $replacement defaults to ''
189
 * @return string
190
 */
191
function whitespaceReplace(string $string, string $replacement = ''): string
192
{
193
    return (new StringHelpers($string))->whitespaceReplace($replacement);
194
}
195
196
/**
197
 * Fill a string with whitespace in order to make it a certain length in chars.
198
 *
199
 * @param string $string
200
 * @param int $length length of the string in characters
201
 * @param string $filler string to use to fill the needed whitespace
202
 * @return string
203
 */
204
function fill(string $string, int $length, string $filler = ' '): string
205
{
206
    return (new StringHelpers($string))->fill($length, $filler);
207
}
208
209
/**
210
 * Implode values that are not null.
211
 *
212
 * @param $glue
213
 * @param array $pieces
214
 * @return string|null
215
 */
216
function implodeFiltered($glue, array $pieces): ?string
217
{
218
    return StringHelpers::implodeFiltered($glue, $pieces);
219
}
220
221
/**
222
 * Concatenate directory and file path arrays.
223
 *
224
 * @param mixed ...$paths
225
 * @return string
226
 */
227
function joinPaths(...$paths): string
228
{
229
    return StringHelpers::joinPaths(...$paths);
230
}
231
232
/**
233
 * Retrieve a website domain without prefixes.
234
 *
235
 * @param string $url
236
 * @return string
237
 */
238
function extractWebsiteDomain(string $url): string
239
{
240
    return StringHelpers::extractWebsiteDomain($url);
241
}
242
243
/**
244
 * Retrieve a website domain from an email address.
245
 *
246
 * @param string $email
247
 * @return string
248
 */
249
function extractEmailDomain(string $email): string
250
{
251
    return StringHelpers::extractEmailDomain($email);
252
}
253
254
/**
255
 * Only retrieve an integer value if the $value is greater than zero.
256
 *
257
 * Uses $return as the $return value instead of $value if not null.
258
 * Return original $value or $return if it is greater than zero.
259
 * Return $substitute string if it is less.
260
 *
261
 * @param $value
262
 * @param string $substitute
263
 * @param mixed $return
264
 * @return mixed
265
 */
266
function zero_replace($value, $substitute = '-', $return = null)
267
{
268
    return StringHelpers::zeroReplace($value, $substitute, $return);
269
}
270
271
/**
272
 * Pretty implode an array by using a different glue for the last piece.
273
 *
274
 * Examples:
275
 *  - implodePretty([1, 2, 3]) --> '1, 2 & 3'
276
 *  - implodePretty([A, B, D]) --> 'A, B & D'
277
 *
278
 * @param array $pieces
279
 * @param string $glue
280
 * @param string $and
281
 * @return string
282
 */
283
function implodePretty(array $pieces, string $glue = ',', string $and = '&'): ?string
284
{
285
    return StringHelpers::implodePretty($pieces, $glue, $and);
286
}
287
288
/**
289
 * Generate a random password using uniqueid & md5 functions.
290
 *
291
 * @param int $length
292
 * @param string $prefix
293
 * @param string $hashFunction
294
 * @return string
295
 */
296
function randomPassword(int $length = 8, string $prefix = '', string $hashFunction = 'md5'): string
297
{
298
    return $prefix.truncateString($hashFunction(uniqid()), $length, '');
299
}
300