Passed
Pull Request — master (#27)
by Wanderson
01:48
created

Str::lower()   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
namespace Win\Utils;
4
5
/**
6
 * Utilitário de Strings
7
 */
8
abstract class Str
9
{
10
	const TRUNCATE_BEFORE = 0;
11
	const TRUNCATE_AFTER = 1;
12
13
	/**
14
	 * @param string $string
15
	 * @return string
16
	 */
17
	public static function toUrl($string)
18
	{
19
		$url = iconv('UTF-8', 'ASCII//TRANSLIT', $string);
20
		$url = preg_replace("/[^a-zA-Z0-9\/_| -]/", '', $url);
21
		$url = ltrim(strtolower(preg_replace('/[A-Z]([A-Z](?![a-z]))*/', '_$0', $url)), '_');
22
		$url = preg_replace("/[\/_| -]+/", '-', $url);
23
		$url = strtolower(trim($url, '-'));
24
25
		return $url;
26
	}
27
28
	/**
29
	 * @param string $string
30
	 * @return int
31
	 */
32
	public static function length($string)
33
	{
34
		return mb_strlen($string);
35
	}
36
37
	/**
38
	 * @param string $string
39
	 * @return string
40
	 */
41
	public static function lower($string)
42
	{
43
		return mb_strtolower($string);
44
	}
45
46
	/**
47
	 * @param string $string
48
	 * @return string
49
	 */
50
	public static function upper($string)
51
	{
52
		return mb_strtoupper($string);
53
	}
54
55
	/**
56
	 * @param string $string
57
	 * @return string
58
	 */
59
	public static function lowerCamel($string)
60
	{
61
		preg_match('/^_*/', $string, $begin);
62
63
		return $begin[0] . lcfirst(static::camel($string));
64
	}
65
66
	/**
67
	 * @param string $string
68
	 * @return string
69
	 */
70
	public static function camel($string)
71
	{
72
		$string = ucwords(mb_strtolower(trim(str_replace(['-', '_'], ' ', $string))));
73
74
		return preg_replace('/[^a-zA-Z0-9]/', '', $string);
75
	}
76
77
	/**
78
	 * Retorna a string resumida, sem cortar a última palavra
79
	 * @param string $string
80
	 * @param int $limit tamanho máximo
81
	 * @param int $mode TRUNCATE_BEFORE | TRUNCATE_AFTER
82
	 * @return string
83
	 */
84
	public static function truncate($string, $limit, $mode = self::TRUNCATE_BEFORE)
85
	{
86
		$string = strip_tags($string);
87
		if (mb_strlen($string) <= $limit) {
88
			return $string;
89
		}
90
		if ($mode === static::TRUNCATE_BEFORE) {
91
			$limit = mb_strrpos(mb_substr($string, 0, $limit + 1), ' ');
92
		} elseif ($mode === static::TRUNCATE_AFTER) {
93
			$limit = mb_strpos(mb_substr($string, $limit), ' ') + $limit;
94
		}
95
		return rtrim(mb_substr($string, 0, $limit), ' ,.!?') . '...';
96
	}
97
98
	/**
99
	 * Limpa a string, retirando espaços e tags html
100
	 * @param string $string
101
	 * @return string
102
	 */
103
	public static function strip($string)
104
	{
105
		return trim(strip_tags($string));
106
	}
107
}
108