Completed
Push — master ( 492ae6...2f0c4d )
by Jean-Christophe
01:53
created

UString   A

Complexity

Total Complexity 30

Size/Duplication

Total Lines 89
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

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

14 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 isBooleanFalse() 0 3 4
A isBoolean() 0 3 1
A isBooleanTrue() 0 3 1
A isBooleanStr() 0 3 4
A pluralize() 0 11 3
A firstReplace() 0 8 2
A replaceArray() 0 7 2
A doubleBackSlashes() 0 5 2
A cleanAttribute() 0 4 1
1
<?php
2
3
namespace Ubiquity\utils\base;
4
5
/**
6
 * String utilities
7
 * @author jc
8
 * @version 1.0.0.2
9
 */
10
class UString {
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 filter_var($s, FILTER_VALIDATE_BOOLEAN)===true;
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 isBooleanStr($value) {
48
		return \is_bool($value) || $value===0 || $value===1 || $value==="on";
49
	}
50
51
	/**
52
	 * Pluralize an expression
53
	 * @param int $count the count of elements
54
	 * @param string $zero value to return if count==0, can contains {count} mask
55
	 * @param string $one value to return if count==1, can contains {count} mask
56
	 * @param string $other value to return if count>1, can contains {count} mask
57
	 * @return string the pluralized expression
58
	 */
59
	public static function pluralize($count, $zero, $one,$other) {
60
		$result="";
0 ignored issues
show
Unused Code introduced by
$result is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
61
		if($count===0){
62
			$result=$zero;
63
		}elseif($count===1){
64
			$result=$one;
65
		}else{
66
			$result=$other;
67
		}
68
		return \str_replace('{count}', $count, $result);
69
	}
70
71
	public static function firstReplace($haystack, $needle, $replace) {
72
		$newstring=$haystack;
73
		$pos=strpos($haystack, $needle);
74
		if ($pos !== false) {
75
			$newstring=\substr_replace($haystack, $replace, $pos, strlen($needle));
76
		}
77
		return $newstring;
78
	}
79
80
	public static function replaceArray($haystack, $needle, $replaceArray) {
81
		$result=$haystack;
82
		foreach ( $replaceArray as $replace ) {
83
			$result=self::firstReplace($result, $needle, $replace);
84
		}
85
		return $result;
86
	}
87
	
88
	public static function doubleBackSlashes($value){
89
		if(is_string($value))
90
			return str_replace("\\", "\\\\", $value);
91
		return $value;
92
	}
93
94
	public static function cleanAttribute($attr, $replacement="_") {
95
		$result=preg_replace('/[^a-zA-Z0-9\-]/s', $replacement, $attr);
96
		return \str_replace($replacement . $replacement, $replacement, $result);
97
	}
98
}
99
100