Completed
Push — master ( e94d62...c695c6 )
by Jean-Christophe
01:45
created

StrUtils   A

Complexity

Total Complexity 29

Size/Duplication

Total Lines 81
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 29
lcom 0
cbo 0
dl 0
loc 81
rs 10
c 1
b 0
f 0

12 Methods

Rating   Name   Duplication   Size   Complexity  
A startswith() 0 3 1
A endswith() 0 3 1
A getBooleanStr() 0 6 2
A isNull() 0 3 3
A isNotNull() 0 3 3
A isBooleanTrue() 0 3 4
A isBooleanFalse() 0 3 4
A isBoolean() 0 3 1
B pluralize() 0 21 5
A firstReplace() 0 8 2
A replaceArray() 0 7 2
A cleanAttribute() 0 4 1
1
<?php
2
3
namespace Ubiquity\utils;
4
5
/**
6
 * String utilities
7
 * @author jc
8
 * @version 1.0.0.1
9
 */
10
class StrUtils {
11
12
	public static function startswith($hay, $needle) {
13
		return \substr($hay, 0, strlen($needle)) === $needle;
14
	}
15
16
	public static function endswith($hay, $needle) {
17
		return \substr($hay, -strlen($needle)) === $needle;
18
	}
19
20
	public static function getBooleanStr($value) {
21
		$ret="false";
22
		if ($value)
23
			$ret="true";
24
		return $ret;
25
	}
26
27
	public static function isNull($s) {
28
		return (!isset($s) || NULL === $s || "" === $s);
29
	}
30
31
	public static function isNotNull($s) {
32
		return (isset($s) && NULL !== $s && "" !== $s);
33
	}
34
35
	public static function isBooleanTrue($s) {
36
		return $s === true || $s === "true" || $s === 1 || $s === "1";
37
	}
38
39
	public static function isBooleanFalse($s) {
40
		return $s === false || $s === "false" || $s === 0 || $s === "0";
41
	}
42
43
	public static function isBoolean($value) {
44
		return \is_bool($value);
45
	}
46
47
	public static function pluralize($count, $caption, $plural=NULL) {
48
		if ($plural == NULL) {
49
			$pluralChar="s";
50
			if (self::endswith($caption, "au")) {
51
				$pluralChar="x";
52
			}
53
			$plural=$caption . $pluralChar;
54
		}
55
		switch($count) {
56
			case 0:
57
				$result="aucun " . $caption;
58
				break;
59
			case 1:
60
				$result=$count . " " . $caption;
61
				break;
62
			default:
63
				$result=$count . " " . $plural;
64
				break;
65
		}
66
		return $result;
67
	}
68
69
	public static function firstReplace($haystack, $needle, $replace) {
70
		$newstring=$haystack;
71
		$pos=strpos($haystack, $needle);
72
		if ($pos !== false) {
73
			$newstring=\substr_replace($haystack, $replace, $pos, strlen($needle));
74
		}
75
		return $newstring;
76
	}
77
78
	public static function replaceArray($haystack, $needle, $replaceArray) {
79
		$result=$haystack;
80
		foreach ( $replaceArray as $replace ) {
81
			$result=self::firstReplace($result, $needle, $replace);
82
		}
83
		return $result;
84
	}
85
86
	public static function cleanAttribute($attr, $replacement="_") {
87
		$result=preg_replace('/[^a-zA-Z0-9\-]/s', $replacement, $attr);
88
		return \str_replace($replacement . $replacement, $replacement, $result);
89
	}
90
}
91
92