Completed
Push — master ( 3b553a...0a5d2e )
by Jean-Christophe
01:30
created

Yuml   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 0
Metric Value
wmc 9
lcom 1
cbo 0
dl 0
loc 52
rs 10
c 0
b 0
f 0

7 Methods

Rating   Name   Duplication   Size   Complexity  
A parseMask() 0 4 1
A parseMaskArray() 0 10 2
A getNamesInMask() 0 6 2
A replaceMaskValues() 0 3 1
A setPropertyVariables() 0 3 1
A setMethodVariables() 0 3 1
A setClassContent() 0 3 1
1
<?php
2
3
namespace micro\utils\yuml;
4
5
class Yuml {
6
	public static $classMask='[{classContent}]';
7
	public static $classSeparator='|';
8
	public static $memberSeparator=';';
9
	public static $parameterSeparator='‚';
10
	public static $parameterTypeSeparator=':';
11
	public static $groupeSeparator=",";
12
	public static $propertyMask='{access}{name}{type}';
13
	public static $methodMask='{access}{name}({parameters}){type}';
14
	public static $public='+';
15
	public static $protected='#';
16
	public static $private='-';
17
18
	public static function parseMask($element,$variable,$value) {
19
		$result=preg_replace('/(\{)'.$variable.'(\})/sim', $value, $element);
20
		return $result;
21
	}
22
23
	public static function parseMaskArray($element,$variables,$values) {
24
		$result=$element;
25
		$countValues=\sizeof($values);
26
		$maxVariables=\sizeof($variables)-1;
27
		for($i=0;$i<$countValues;$i++){
28
			$j=\min($maxVariables,$i);
29
			$result=self::parseMask($result, $variables[$j], $values[$i]);
30
		}
31
		return $result;
32
	}
33
34
	public static function getNamesInMask($mask){
35
		\preg_match_all('@\{(.*?)\}@sim', $mask,$matches);
36
		if(isset($matches[1]))
37
			return $matches[1];
38
		return [];
39
	}
40
41
	private static function replaceMaskValues($mask,$values){
42
		return self::parseMaskArray($mask, self::getNamesInMask($mask), $values);
43
	}
44
45
	public static function setPropertyVariables($values){
46
		return self::replaceMaskValues(self::$propertyMask, $values);
47
	}
48
49
	public static function setMethodVariables($values){
50
		return self::replaceMaskValues(self::$methodMask, $values);
51
	}
52
53
	public static function setClassContent($content){
54
		return self::parseMask(self::$classMask, 'classContent', $content);
55
	}
56
}
57